XWorm 是远程访问木马群体中相对较新的代表,它已经成为全球最持久的威胁之一。
自 2022 年研究人员首次观察到它以来,它经历了多次重大更新,显着增强了其功能并巩固了其持久力。
ANY.RUN的分析团队发现了该恶意软件的最新版本,因此无法拒绝将其拆开以检查 XWorm 机制配置的机会。以下是他们的做法和发现。
XWorm 样本的来源#
有问题的样本是在 ANY 中发现的。RUN 的恶意软件数据库是一个存储库,其中包含沙箱用户在公共模式下上传的所有文件和链接的详细分析报告。
快速查看分析结果表明,该样本最初是通过文件托管服务 MediaFire 分发的。该恶意软件打包在 RAR 存档中并受密码保护。
|
图 1:包含存档下载链接的 MediaFire 页面。 |
执行后,Suricata 规则立即检测到该威胁,并将其识别为 XWorm。
|
图 2:XWorm 的流量被沙箱标记为恶意。 |
XWorm 的策略、技术和程序 (TTP)#
沙箱报告强调了该样本使用的几种技术:
|
图 3:XWorm 在受感染系统上的活动。 |
MITRE T1547.001:XWorm 将其快捷方式添加到启动目录。
MITRE T1053.005:它使用任务计划程序以提升的权限重新启动自身,如“/RL HIGHEST”参数所示。
MITRE T1074.001:该软件安装在 Public 目录中。
MITRE T1571:恶意软件尝试连接到远程服务器,但未收到响应。
XWorm 尝试逃避沙箱分析失败#
由于初始分析报告已经发布了几天,因此团队决定再次通过沙箱运行样本以检查新活动。
然而,在启动后,该恶意软件几乎立即崩溃了。一项简短的调查表明,该样本现在查询一个特殊服务以确定它是否在虚拟沙箱中运行。
从本质上讲,XWorm 开发人员实施了一种规避技术,该技术导致恶意软件在感知到虚拟化环境后立即关闭。
为了克服这个问题,团队在沙箱设置中启用了住宅代理。此功能将虚拟机的数据中心 IP 地址替换为来自实际 ISP 的 IP 地址,使恶意软件认为它正在真实用户的计算机上运行。
|
图 4:住宅代理提供来自众多网络的 IP 地址 |
在启用住宅代理的情况下重新运行示例后,XWorm 成功执行并开始其活动。
最重要的是,借助 MITM 代理功能,可以提取 XWorm 传输到 Telegram 的信息(MITRE T1102)。这些数据包括:恶意软件的版本(XWorm V3.1)、计算机的用户名、操作系统版本,以及可能的受害者的哈希值。
|
图 5:XWorm 收集的系统信息 (MITRE T1082)。 |
XWorm新变种的静态分析#
在收集了沙箱提供的所有关键信息后,分析师开始了研究的静态分析阶段。第一步是将样本加载到 Detect it Easy (DIE) 中,这是初始恶意软件分析的行业标准。该程序很快确定这是 XWorm 的 .NET 变体。
|
图 6:DIE 提供了对恶意软件编译器的深入了解。 |
从那时起,团队唯一合乎逻辑的步骤是在 dnSpy(一个 .NET 调试器)中打开该文件,它立即显示该二进制文件受到了严重的混淆。然而,即使使用启发式扫描,DIE 也无法识别加壳程序。
|
图 7:XWorm 的代码被混淆了 (MITRE T1027)。 |
使用 .NET 反混淆器和解包器 de4dot 也没有任何效果。
更多 XWorm 的规避和持久技术#
对恶意二进制文件的进一步调查使团队发现了更多谜题。具体来说,我们发现了该恶意软件利用的一些额外机制:
虚拟化检测: XWorm 使用 WMI 查询“Select * from Win32_ComputerSystem”来检查 VmWare 或 VirtualBox 环境。
|
图 8:恶意软件利用 Windows Management Instrumentation (MITRE T1047)。 |
调试器检测:它还运行 CheckRemoteDebuggerPresent API 函数来查看它是否正在被调试。
|
图 9:Xworm 试图逃避调试器分析。 |
沙箱检测:二进制文件扫描系统以查看是否加载了 SbieDll.dll 库。
图 10:SbieDll.dll 与 Sandboxie(一个基于沙箱的隔离程序)关联。 |
数据中心 IP 检查: Xworm 查询计算机以确定其是否托管在数据中心中。
|
图 11:恶意软件的 IP 扫描解释了其最初崩溃的原因。 |
持久性: XWorm 使用注册表和任务调度程序在系统上建立持久存在。
|
图 12:代码揭示了恶意软件修改注册表的能力。 |
提取 XWorm 的配置#
接下来,分析人员发现了一个看起来像包含设置的块的构造函数。他们使用一个函数来重新分配它的一些字段。恶意软件首先根据假定设置部分中的值计算 MD5 哈希值。
然后,它将获得的值复制两次到临时数组中,但由于差一错误,MD5 并未完全复制两次。该团队使用获得的数组作为密钥,在 ECB 模式下使用 AES 解密传入的 Base64 字符串。
他们还发现使用的字段是互斥体。整个过程在 ANY.RUN 的博客文章“ XWorm:新恶意软件版本的技术分析”中有详细描述。
XWorm的配置#
XWorm新变种的完整配置如下:
主持人 | 6[.]tcp.eu.ngrok[.]io |
港口 | 13394 |
AES 密钥 | 奴隶!-.;!2Swezy999!(xxx |
分路器 | Xwormmm |
睡觉时间 | 3 |
USB 删除文件 | USB.exe |
互斥体 | Lz8qftMH08V7f1rq |
日志档案 | %temp%\Log.tmp |
电报令牌 | 6674821695:AAExQsr6_hmXk6hz7CN4kMSi9cs9y86daYM |
电报聊天 ID | 5865520781 |
结论#
获取最新恶意软件的配置至关重要,但非常耗时。为了提高效率,您可以通过 ANY.RUN 沙箱运行示例,以便在几秒钟内访问必要的信息。
原文始发于微信公众号(祺印说信安):新 XWorm 变种的代码内部
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论