APT 组织Silver Fox 利用ValleyRAT木马攻击 Org 的会计部门

介绍
本文探讨了 ValleyRAT 更广泛的执行过程和更新的交付技术。在调查此威胁时,我们观察到该行为者今年更新了他们的策略、技术和程序 (TTP)。有趣的是,该行为者在其攻击的旧版本和新版本中重复使用了相同的 URL。
根据我们之前对该威胁行为者行动的研究,该组织使用多种分发渠道传播远程访问木马 (RAT)。这些渠道包括钓鱼电子邮件、恶意网站和即时通讯平台。该威胁行为者越来越多地将目标对准组织内的关键职位,尤其是财务、会计和销售部门,重点关注能够访问敏感数据和系统的高价值职位。
在 2024 年末观察到的先前攻击中,攻击者依赖 .bat 和 .ps1 脚本进行攻击(有关更多详细信息,请参阅 GhostRAT Plays Effective Hide and Seek博客文章),其中安装 程序文件的命名模仿流行软件,例如:7ZSfxMod_x86.exe
、、、。line_setups_vvindow_64.12.10.32.exe``GPTChromX64.exe``IconWorkshop.exe
为了注入有效载荷,攻击者滥用了合法签名的可执行文件,这些文件容易受到 DLL 搜索顺序劫持。示例包括:ShellExperienceHosts.exe、kwpswnsserver.exe(WPS Office)、Firefox Setup 132.0.2.exe、Update.exe(腾讯)。在最近的攻击中,攻击者创建了一个域名和网站,旨在冒充一家名为“Karlos”的中国电信公司。有效载荷名为“ 短信国际通道
”(翻译为“SMS 国际频道”)。
对于有效载荷注入,攻击者再次使用了 DLL 劫持,但这次他们的目标是来自 Steam 的二进制文件(由不同游戏发行商编译的二进制文件)。有趣的是,这些二进制文件与游戏《求生之路 2》和《杀戮空间 2》有关。
ValleyRAT 感染链
当用户从 下载假冒的 Chrome 浏览器时,感染链就开始启动https://anizom[.]com/
。请参阅下面的网站和翻译文本。
攻击者还使用了另一个钓鱼网站,伪造了一个合法的中国短信提供商,网址为https://karlost[.]club/
。右图为合法网站 www.karlos[.]com.cn,左图为钓鱼网站https://karlost[.]club/
。
接下来,用户从钓鱼网站下载包含文件 Setup.exe 的 Setup.zip 并执行它。
ValleyRAT Payload下载器
该**setup.exe
**文件(原名为 fotuy.exe)是用 .NET 编写的,在执行时会验证是否具有 管理员权限。如果没有,它将继续使用“runas”请求必要的权限。
接下来,它会检查操作系统类型以下载其他文件,然后继续下载四个文件:
sscronet.dll
douyin.exe
mpclient.dat
tier0.dll
这些文件保存在目录中:C:\\Program Files (x86)\\Common Files\\System\\
。
随后,安装程序**sscronet.dll
使用 将文件加载到内存中LoadLibrary
。加载 DLL 后,它会调用两个导出函数:Cronet_UrlRequest_Start
和Cronet_UrlRequest_Read
。最终,它会执行douyin.exe
**。
系统注册表编辑器
sscronet.dll
似乎故意使用听起来合法的标识符来命名,以避免引起怀疑。此外,虽然 DLL 导出了许多函数(其中大多数是空的或未使用的),但只有两个函数被积极使用:Cronet_UrlRequest_Start
和Cronet_UrlRequest_Read
。
The **Cronet_UrlRequest_Start**
svchost.exe
export 函数使用CreateToolhelp32Snapshot
、Process32FirstW
和来搜索名为 的进程Process32NextW
。找到进程后,它会在其中分配内存并将数据写入分配的空间。CreateThreadpoolWait
最后,它使用和函数执行 DLL 文件ZwAssociateWaitCompletionPacket
。- 导出函数
**Cronet_UrlRequest_Read**
负责通过在注册表中“Software\\Microsoft\\Windows\\CurrentVersion\\Run
”处添加名称下的条目来实现持久性**MyPythonApp
**。
进程管理器
由于其行为,我们将此文件称为**“监视器”。其目的是确保预定义列表中排除的任何进程均未运行。安装程序将DLL注入其中SVCHOST.exe
**,它在其中充当监视机制。如果它检测到排除列表中的任何进程,它会立即终止它。这允许攻击者在自己的代码保持活动状态的同时阻止特定应用程序运行。
进程列表概述:
抖音
Douyin.exe
是抖音( TikTok的中文版)的可执行文件。攻击者可以使用 DLL 侧载技术来利用此文件。在此方法中,恶意 DLL 被放置在与Douyin.exe
Tier0.dll
Tier0.dll
****是Valve 的 Source Engine及其相关工具中使用的核心动态链接库。当线程开始执行时,它会检查nslookup进程是否已在系统上运行。此进程可充当互斥锁-如果发现nslookup正在运行,则终止它;否则,将创建一个新的nslookup实例。
通常,攻击者会创建处于挂起状态的进程,以便使用APC 注入或进程挖空等技术,这会引起怀疑。但是,在这种情况下,攻击者使用了一种更具创造性的方法来避免被发现。他们没有采用传统方法,而是选择了一个预定义的进程,该进程自然接受输入并保持空闲状态(休眠),直到发生用户交互。这种策略可帮助攻击者执行恶意代码,同时最大限度地降低被发现的机会。
nslookup.exe
等待输入的示例:
然后,它读取位于的文件**C:\Program Files (x86)\Common Files\System\mpclient.dat
**,其中包含 dount shellcode 和加密的 PE 文件。
读取文件后,它会将内容复制到 nslookup 的内存中,然后生成一个远程进程。
ValleyRAT 作为有效载荷
mpclient.dat
该文件包含 Donut shellcode 和加密的 PE 文件。shellcode 的作用是解密内存中的 PE 文件并执行它,使其无需写入磁盘即可运行。
此外,它还挂钩函数AmsiScanString
、AmsiScanBuffer
和EtwEventWrite
来绕过 AMSI(反恶意软件扫描接口)和 ETW(Windows 事件跟踪)等安全机制,帮助逃避检测。
ValleyRAT 是一个用 C++ 编写的 RAT,用中文编译,并演示了典型基本 RAT 的功能。
968b976167b453c15097667b8f4fa9e311b6c7fc5a648293b4abd75d80b15562
捕获输入并注入操作
攻击者尝试访问处理屏幕、键盘和鼠标的****Windows 工作站 。通过使用和,该进程获得与用户桌面的交互并抑制错误对话框以避免被发现。winsta0
OpenWindowStationW
****SetProcessWindowStation
SetErrorMode(1u)
“交互式窗口站是唯一可以显示用户界面或接收用户输入的窗口站。它被分配给交互式用户的登录会话,并包含键盘、鼠标和显示设备。它始终被命名为“ WinSta0
”。
屏幕监控
代码使用枚举所有连接的显示器**EnumDisplayMonitors
,并通过回调函数处理它们的信息fnEnum
。它使用检索屏幕坐标和显示属性等详细信息GetMonitorInfoW
**,然后将这些数据存储在内存中以供进一步处理,例如屏幕捕获或与显示相关的操作。
键盘记录器
当攻击者在样本中嵌入的预定义配置文件中配置键盘记录器时,键盘记录器的功能就会被激活。此外,攻击者还可以设置注册表项以启用动态配置,而不是依赖固定配置。
如果一切设置正确,攻击者会sys.key
在“ ProgramData
”目录中创建一个名为“ ”的文件,并将记录的击键存储在其中。
持久性
攻击者选择通过创建一个名为“ GFIRestart64.exe
”的文件来实现持久性,这种方式不会引起怀疑。
反 VMware
该代码通过查找**“** “目录和特定的 VMware 进程(“ “、“ “、“ “ )来检查它是否在****VMware 虚拟机中运行。它还会验证系统是否属于**“** “的一部分,检查总物理内存是否低于1,173,624,064 字节,并确保硬盘大小超过110GB。如果这些检查表明是 VMware 环境,则可能会更改或终止执行以逃避检测。C:\Program Files\VMware\VMware Tools
VMwareService.exe
VMwareTray.exe
VMwareUser.exe
WORKGROUP
如果恶意软件没有检测到它正在虚拟机(VM)内运行,它会尝试建立与****www.baidu.com的连接作为其网络通信检查的一部分。
C2 通信
作为该恶意软件安装过程的一部分,ValleyRAT 在其代码中初始化 C2 IP 地址和端口。
命令 | 描述 |
---|---|
0x00 | 插件清理并获取系统的进程列表。客户端使用 STRUCT_PACKET_PROCESS_LIST 结构回复。 |
0x01 | 使用 STRUCT_PACKET_0x02 结构回复,其中包含最初发送给客户端的确切数据。这可能是作为反机器人验证或 PING→PONG 数据包实现的。 |
0x02 | 释放并执行 DLL |
0x04 | 释放并执行 DLL(第二种方法) |
0x05 | 插件清理使用 STRUCT_PACKET_0x05 结构重放。 |
0x06 | 获取系统的进程列表。客户端以 STRUCT_PACKET_PROCESS_LIST 结构回复。 |
0x07 | 释放并执行任意类型的文件(文档、图像等) |
0x08 | 下载并执行可执行文件。 |
0x09 | 将客户端设置为在系统启动时启动。 |
0x0A | 设置“BEIZHU”(“备注”)或“FENZU”(“子组”)注册表项。 |
0x64 | 停止客户端,但不终止进程。 |
0x65 | 启动客户端 |
攻击指标 (IOC)
C2
- 149.115.250.19
- 149.115.052.91
- 8.217.244.40
- 154.82.85.79
- 149.115.250.19
- 118.107.44.219
- 43.250.172.42
- 202.146.222.208
- 103.183.3.10
- https://anizom[.]com/
- https://karlost[.]club/
从setup.exe文件下载的文件:
wwwget11111-1328031368[.]cos.ap-chengdu.myqcloud.com/win7/amdhsail64.dll | 修复了 amdhsail64.dll |
---|---|
get22222222asfas-1328031368[.]cos.ap-chengdu.myqcloud.com/sscronet.dll | sscronet.dll |
get22222222asfas-1328031368[.]cos.ap-chengdu.myqcloud.com/douyin.exe | 抖音应用程序 |
www40sada-1328031368[.]cos.ap-guangzhou.myqcloud.com/mpclient.dat | 客户端文件 |
get22222222asfas-1328031368[.]cos.ap-chengdu.myqcloud.com/tier0.dll | tier0.dll |
哈希:
53A6735CE1ECA68908C0367152A1F8F3CA62B801788CD104F53D037811284D71 | 安装.zip |
---|---|
6ED466A2A6EEB83D1FF32BA44180352CF0A9CCC72B47E5BD55C1750157C8DC4C | 安装程序.exe (.Net) |
311f2d4ef2598e4a193609c3cd47bf4ff5fb88907026946ecffe6b960d43d5b2 | TradingView.exe (.Net) |
a87745682da20ddfd6eac7ff2d27fec73ff56c6e9b4438121dcb6ba699c5cb3c | 客户端文件 |
1db77692eaf4777f69ddf78c52424d81834572f1539ccea263d86a46f28e0cea | sscronet.dll |
3989f7fa8d1d59ebc6adea90e3958a892b47d94268bf9d5c9c96811f3fb65b00 | 抖音应用程序 |
7c2a1b09617566ff9e94d0b1c15505213589f7fd3b445b334051d9574e52e0f5 | 修复了 amdhsail64.dll |
bb89e401560ba763d1c5860dd51667ba17768c04d00270bf34abebac47fd040e | tier0.dll |
51a9d06359952f6935619e8cf67042d2cec593788c324b72cffc0d34b1762bb0 | “监视” -> 将 dll 注入 svchost |
968b976167b453c15097667b8f4fa9e311b6c7fc5a648293b4abd75d 80b15562 | 谷鼠 |