深入剖析 Ghost 木马:Sainbox RAT 与 PurpleFox 内核级 Rootkit 联合攻击链分析
什么是 Gh0st RAT——历史与变种演化
Gh0st RAT(有时拼写为 Gh0strat)大约在 2008 年出现,由一群中国黑客创建。由于其源代码后来被公开泄露,它成为众多攻击者武器库中的一种持久工具——不断被修改、适配和扩展。一种持续存在的策略是将其与内核级 Rootkit 捆绑或配对,以隐藏其存在并增加检测难度。
像 HiddenGh0st 这样的变种已经在一些攻击活动中被记录在案,这些活动将 Gh0st RAT 的功能与 PurpleFox Rootkit 结合起来,用于隐藏文件、注册表和进程。最近,在野外观察到了 Sainbox RAT(一个源自 Gh0st 的后门程序),它在“DeepSeek 欺骗”攻击活动中与 PurpleFox Rootkit 一起被投递。在这些攻击活动中,攻击者使用 MSI 安装程序、侧加载的 DLL 和 shellcode 载荷来植入 Rootkit 和 RAT。
样本分析
从 Malware Bazaar 获取此恶意软件样本后,我们观察到其表现出以下行为:
- 伪造的 MSI 安装程序(伪装成 Chrome 或热门应用安装包)
- DLL 侧加载——攻击链包含一个真实的浏览器二进制文件(以降低嫌疑)和一个良性的 EXE 文件(mctty.exe)
- 这个良性 EXE 成为承载 DLL 侧加载的宿主进程
- 加载程序写入注册表 Run 项,并使用 Rootkit 来向安全工具隐藏 RAT 的存在
- 劫持加载程序——
sqlite3.dll导出sqlite3_open函数进行伪装,但实际上它会读取一个名为1.txt的文件,分配可执行内存,并将其内容注入并在mctty.exe进程中运行 1.txt中嵌入了双重载荷:- PurpleFox Rootkit 组件,用于内核级隐藏(隐藏文件、进程、注册表项)
- Sainbox RAT,一个 Gh0st 变种后门,提供远程访问、数据窃取和命令执行功能
伪造的 Chrome 安装程序
解包 MSI 安装程序后,可以看到以下文件:
- ChromeSetup.exe
- mctty.exe
- sqlite3.dll
- txt
- msvcp140.dll
- vcruntime140.dll
- msvcr100.dll
这里面确实包含一个合法的 ChromeSetup.exe 副本,以及多个合法的 DLL,但实际的恶意载荷是 sqlite3.dll 和 txt 文件。检查 txt 文件时,发现它实际上包含两个 PE 文件,一个 32 位,另一个 64 位,每个都被列为驱动程序文件。
执行链
在安装过程中,我们看到安装程序将 cab 文件中的这些文件释放到路径 C:\ProgramData\cPZECO,然后启动 EXE 文件 mctty.exe,该文件会从同一路径加载恶意的 sqlite3.dll。
接着,该 EXE 会执行三个操作:
sqlite3.dll将从1.txt读入内存的 shellcode 注入到mctty.exe进程中。- 通过
CurrentVersion\Run设置mctty.exe在启动时运行,从而创建用户级持久化。 - 创建并启动一个可疑的
.BAT文件——位于AppData\Roaming\Beacon目录下的8553C0C8.bat,该脚本会连接域名ee[.]bsjdwn[.]com。
8553C0C8.bat 脚本的作用是检查 mctty.exe 文件当前是否在运行,如果找不到该进程在运行,它将直接从脚本启动它,并持续在任务列表中检查该进程。
在安装过程中,恶意软件会通过 ChromeSetup.exe 安装一个合法的 Chrome 实例,以避免引起用户怀疑。
侧加载的 DLL
载荷的投递由 sqlite3.dll 处理。通过搜索顺序劫持技术,从相同的本地安装路径加载此 DLL。此文件既负责恶意软件的持久化,也作为下一阶段的加载程序。
持久化
该 DLL 通过 RegSetValueExW 将其自身路径写入 HKCU 注册表的 Run 项,从而建立用户级持久化。然后,它充当主要载荷的加载程序。
线程注入
此过程打开 1.txt(打包的 shellcode),读取它,并使用 VirtualAlloc 获取一块 RWX(可读写执行)内存。它将载荷复制到该缓冲区,然后启动一个从此处开始执行的新线程。
Sainbox 和 PurpleFox 载荷
实际的执行过程,包括两个载荷的功能,都被塞进了 1.txt 中,并通过 sqlite3.dll 注入内存。1.txt 内部包含三部分:包含 PurpleFox Rootkit 的 32 位和 64 位驱动文件,以及包含 Sainbox Rat 的 shellcode。此 shellcode 是通过开源工具 sRDI(Shellcode 反射式 DLL 注入)创建的,该工具可将 DLL 文件转换为 shellcode。
Sainbox Rat
从 1.txt 中提取 shellcode,我们得到一个名为 Install.dll 的 32 位 DLL 文件,这就是 Sainbox Rat 载荷。
Sainbox shellcode 会释放一个名为 GetMP.exe 的二进制文件。这只是一个重命名的 Mimikatz,启动时会运行标准的 mimikatz 命令:
GetMP privilege::debug sekurlsa::logonpasswords exit
它会检查以下安全工具:
360tray.exe, 360sd.exe, kxetray.exe, KSafeTray.exe, QQPCRTP.exe, HipsTray.exe, BaiduSd.exe, baiduSafeTray.exe, KvMonXP.exe, RavMonD.exe, QUHLPSVC.EXE, QuickHeal, mssecess.exe, cfp.exe, SPIDer.exe, DR.WEB, acs.exe, Outpost, V3Svc.exe, AYAgent.aye, avgwdsvc.exe, f-secure.exe, F-Secure, avp.exe, Mcshield.exe, egui.exe, NOD32, knsdtray.exe, TMBMSRV.exe, avcenter.exe, ashDisp.exe, rtvscan.exe, remupd.exe, vsserv.exe, BitDefender, PSafeSysTray.exe, ad-watch.exe, K7TSecurity.exe, UnThreat.exe, UnThreat, MsMpEng.exe
观察到的多个函数专门针对各种用户配置文件路径进行删除。这可能旨在特意减慢对被感染主机的取证速度。下面列出了每个应用程序:
QQ.exe, Telegram.exe, Firefox.exe, Chrome.exe, Msedge.exe, SogouExplorer.exe, 360Chrome.exe, 360se6.exe
通过将策略位 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 更改为 0 来启用远程桌面。
该样本使用 GetModuleFileNameA 获取其自身的可执行文件路径,然后构建一个隐藏的 PowerShell 命令,该命令调用 Add-MpPreference 以将该路径添加到白名单中。
powershell -WindowStyle Hidden Add-MpPreference -ExclusionPath \%s\
PurpleFox
PurpleFox 首先在内核中将自身设置为一个名为 QAssist 的隐藏系统设备。然后,该程序向 QAssist 发送命令以开启其隐藏功能,并精确指示要隐藏哪些文件、进程和注册表项。
作为一个内核级 Rootkit,PurpleFox 的主要作用是逃避检测。它使用以下命令集来操纵操作系统,并主动向安全工具隐藏其存在和恶意行为:
- Hid_State — 激活驱动程序
- Hid_StealthMode — 自身隐藏模式
- Hid_HideFsDirs — 隐藏目录
- Hid_HideFsFiles — 隐藏文件
- Hid_HideRegKeys — 隐藏注册表项
- Hid_HideRegValues — 隐藏注册表值
- Hid_IgnoredImages — 指定例外进程
- Hid_ProtectedImages — 指定保护进程
- Hid_HideImages — 隐藏进程
结论
“DeepSeek 欺骗”攻击活动展示了像 Gh0st RAT 这样的老牌恶意软件持续的演变和有效性,它已被改编为强大的 Sainbox RAT。样本分析清楚地揭示了一个复杂的多阶段感染链:利用一个令人信服的伪造 MSI 安装程序,通过一个良性的宿主进程(mctty.exe)执行 DLL 侧加载攻击。此感染链的核心是从打包文件 1.txt 注入的双重载荷,它同时部署了 Sainbox RAT(用于远程控制、通过 Mimikatz 窃取凭据、逃避安全工具检测和执行破坏性操作)和 PurpleFox Rootkit(用于内核级持久化和最终隐藏整个入侵行为)。
IOCs
SHA256
- ChromeSetup-6581.msi -
42faf503afd58bc7aa37f5d4340be11895cae9d29da75bfaa97180671172304c - sqlite3.dll -
0aedfcd4fd87d514d611ffb5605f0a956710685f37dead4c410cd9f890568b06 - 1.txt -
f55d496329e1e9f1ebe9713b47f160f4e23cdab828b338111156cbf850a9c85e - mctty.exe -
c123f39c6ef4b00863848d0146062a65d201931f78f1eb348f6a57e22e700481 - 32.sys -
15af9964bcf4938d3b4ab9bb15dc0f297d7ca596a86f8f1d9572f957f5441ddd - 64.sys -
1006caa9f350f4e166704b0f35d10814982f6e238c06001b2508001f0104182b
域名
ee[.]bsjdwn[.]com
IP 地址
45.207.12.71FINISHED CSD0tFqvECLokhw9aBeRqm+BSweG13cscZ9DbzQFnkaflACiJYHgfyTMQ/gLXDa/GQpIIVPyJNpmgF1nw1pEpLtN1e4GtbxXP2Mho+Qf0DimtRT3Ld1+FXFxB2VmWLxr