Jester Stealer: An Emerging Info Stealer
背景
Cyble研究实验室积极地监控各种窃取器最近,我们遇到了一个恶意软件样本,原来是Jester Stealer。Jester Stealer是一个信息窃取者,它窃取您的敏感信息,如登录凭证、cookies、信用卡详细信息等。,并将过滤后的数据发送给威胁参与者(ta)。图1显示了TAs使用的一个广告。
图1:Jester stealter广告
Jester Stealer于2021年7月出现在网络犯罪论坛上。图2显示了TA在网络犯罪论坛上发布的帖子。
图2:网络犯罪论坛上的Jester Stealer帖子
根据TA的声明,Jester Stealer具有以下特性:
- 连接使用AES-CBC-256算法加密
- 服务器可以位于tor网络中
- 所有的日志都会被转发到你的电报机器人
- Swift日志收集在内存中没有写入任何数据到磁盘
图3:Jester stealter特性
在我们的调查中,我们发现Jester Stealer已经获得了7次更新,并试图通过每次更新来增加其功能。除了上面提到的特性,我们发现Stealer还有反沙箱和反VM的特性。
该窃取程序能够从各种应用程序中窃取数据,例如浏览器、VPN客户端、密码管理器、聊天工具、电子邮件客户端、加密钱包和游戏软件。
泄露的数据以日志的形式通过TOR传输到Telegram Bot。
此外,如果由于某种原因,日志没有到达电报机器人,它将转到匿名文件(匿名文件共享平台)。
图4:Jester stealter功能
Jester Stealer的开发者还提供了一个构建器,可以创建定制的恶意软件二进制文件。当前构建器提供了隐藏。exe文件,使用txt、jar、ps1、bat、png、doc、xls、pdf、mp3、mp4和ppt等扩展名。
图5:Jester stealter电报通道
技术分析
在我们的静态分析中,我们发现Jester Stealer是一个基于. Net的恶意软件。该恶意软件还有一个开源代码库链接到它的配置文件. 图6显示了文件信息。在感染的后期,恶意软件使用GitHub存储库下载tor代理。
图6:文件信息
Jester Stealer使用自定义解密函数,如图 7 所示。该函数用于解密用于窃取目的的信息,例如 Onion URL、TA 名称、注册表项等:
图7:自定义解密函数
该恶意软件有几个内置检查,防止恶意软件在虚拟化环境中执行它,如图8所示。
图8:反沙箱和反虚拟机检查
- 首先,恶意软件将字符串“–debug”与运行示例的命令行参数进行比较。如果匹配,恶意软件识别出自己正在被调试,并终止其执行。
- 该恶意软件会检查虚拟化应用程序(如 Virtulbox、vmbox、VMware 等)的存在,如果识别出它们在系统中主动运行,则终止其执行。
- 该恶意软件专门检查沙盒 dll “SbieDll.dll”,如果它存在于受感染的机器中,则终止其执行。
- 最后,它使用反重复技术来确保恶意软件执行一次。在执行时,恶意软件创建一个注册表键值“state”并将其设置为1。当恶意软件下一次在同一台机器上执行时,它会从注册表中检查状态,如果已经设置了值,就会终止。图8显示了为实现防重复而添加的新注册表项。
图9:添加的注册表项
恶意软件在窃取信息后生成报告,如图10所示。
图10:窃取数据
该恶意软件会创建AutoFill.txt、Cookies.txt、Tokens.txt、Account.txt、Credman.txt、Passwords.txt、Wallets.txt、Networks.txt、Autofill.txt、Vault.txt、Servers.txt、Bookmarks.txt和CreditCards.txt等文本文件来保存被盗数据。
该恶意软件还从受感染的机器上收集信息,如图11所示。该恶意软件在执行期间将所有窃取的数据存储在内存中,并将其压缩以用于渗透目的。
图11:样本导出数据
TOR代理从开源代码库存储库,并通过端口9050对其进行配置以进行过滤,然后将数据发送到TOR上托管的服务器。图12显示了负责下载TOR代理的代码。
图12:下载tor代理
恶意软件使用以下解密的onion URL来过滤数据:
hxxp://jesterdcuxzbey4xvlwwheoecpltru5be2mzuk4w7a7nrhckdjjhrbyd.onion
如果恶意软件无法将数据发送到TOR服务器,它会尝试将数据上传到一个公共文件托管服务器AnonFiles,如图13所示。
被盗信息的zip文件名具有以下格式:
- AttackerName_username_systemname.zip
图13:上传到anonfiles的文件
成功渗透后,恶意软件会从受感染的机器上自行删除,如图14所示。
图14:自删除
结论
窃取器正在演变为令人担忧的威胁之一。对 TA 而言,利用安全态势中的人为缺陷比利用复杂的漏洞更容易。
这些攻击者(也称为“初始访问代理”)倾向于使用网络钓鱼活动来分发此类窃取恶意软件并收集用户凭据、系统信息,甚至是来自受害者的屏幕截图或数据。此外,窃取者还可用于执行各种攻击,例如横向移动和勒索软件攻击。
使用受损凭据进行攻击是犯罪分子躲在雷达下并避免触发任何安全监控规则或触发蓝队事件响应的好方法。
建议
- 避免从warez/torrent 网站下载盗版软件。YouTube、torrent(种子网站)等网站上出现的“黑客工具”主要包含此类恶意软件。
- 尽可能使用强密码并实施多因素身份验证。
- 在您的计算机、移动设备和其他连接的设备上打开自动软件更新功能。
- 在您连接的设备(包括 PC、笔记本电脑和移动设备)上使用知名的防病毒和互联网安全软件包。
- 请勿在未验证其真实性的情况下打开不受信任的链接和电子邮件附件。
- 教育员工保护自己免受网络钓鱼/不受信任的 URL 等威胁。
- 阻止可用于传播恶意软件的 URL,例如 Torrent/Warez。
- 在网络级别监控信标,以阻止恶意软件或 TA 泄露数据。
- 在员工系统上启用数据丢失防护 (DLP) 解决方案。
MITRE ATT&CK® 技术
| 战略 | 技术ID | 技术名称 | | —- | —- | —- | | 初始访问 | T1566 | 网络钓鱼 | | 执行 | T1204 | 用户执行 | | 防御规避 | T1497.001 | 虚拟化/沙盒规避:系统检查 | | 凭证访问 | T1555 | 密码存储中的凭据 | | | T1539 | 窃取Web会话Cookie | | | T1552 | 不安全的凭据 | | | T1528 | 窃取应用程序访问令牌 | | 收藏 | T1113 | 屏幕捕获 | | 发现 | T1087 | 帐户发现 | | | T1518 | 软件发现 | | | T1057 | 过程发现 | | | T1124 | 系统时间发现 | | | T1007 | 系统服务发现 | | | T1614 | 系统位置发现 | | 指挥和控制 | T1095 | 非应用层协议 | | 漏出 | T1041 | 通过 C2 通道 | | | T1567 | Web服务上的渗透 |
IoCs
描述 | 指标类型 | 指标 |
---|---|---|
C2 网址 | 网址 | hxxp[:]//jesterdcuxzbey4xvlwwheoecpltru5be2mzuk4w7a7nrhckdjjhrbyd[.]onion |
窃取者有效载荷 | MD5 | 8879ae061540ce3de496adec3683b0fe |
窃取者有效载荷 | MD5 | a30d170412986b90ce293b5a8ff7dfd8 |
窃取者有效载荷 | MD5 | 9196e0e3234ef664e828eba9628f468d |
窃取者有效载荷 | MD5 | c73c7c93101d4d741c79127a37d13d3a |
窃取者有效载荷 | MD5 | 7989d8fb3ec96482016acd52d56ea7f8 |
窃取者有效载荷 | MD5 | 3986844f88921ccaba28a173a843c27a |
窃取者有效载荷 | MD5 | 26e71a30d1e8b43be1f16d3483d1d44c |
窃取者有效载荷 | MD5 | 9378111ed1b30ad23d37d7d7c33345d1 |
窃取者有效载荷 | MD5 | 952cd4334dc6b9c1a3e0d0ab64d5afb2 |
窃取者有效载荷 | MD5 | 90257b4f1de0e70235b2ff7419803afa |
窃取者有效载荷 | MD5 | 2cd2390f2138b725f4176343784c7705 |
YARA Rule
rule Jester_Stealer
{
meta:
Title = "Jester Stealer: An Emerging Info Stealer"
Date = "22.02.24"
Link = "https://blog.cyble.com/2022/02/24/jester-stealer-an-emerging-info-stealer/"
strings:
$s1 = "github.com/L1ghtM4n" ascii fullword
$s2 = "Jester" ascii fullword
$s3 = "BitcoinCore" wide fullword
$s4 = "[AnonFile]" wide fullword
$s5 = ".onion" wide fullword
condition:
uint16(0) == 0x5A4D and all of ($s*)
}