幽灵作祟 — Gh0st RAT 恶意软件分析
什么是 Gh0st RAT — 历史与变种演变
Gh0st RAT(有时拼写为 Gh0strat)大约在2008年出现,由一个中国黑客团伙创建。由于其源代码后来被公开泄露,它成为了许多攻击者武器库中的持久工具——被不断修改、适配和扩展。一种持续的策略是将其与内核级 Rootkit 捆绑或配对,以隐藏其存在并使检测复杂化。
像 HiddenGh0st 这样的变种已有相关记录,其在攻击活动中将 Gh0st RAT 的功能与 PurpleFox Rootkit 结合起来,用于隐藏文件、注册表和进程。最近,在野外观察到了 Sainbox RAT(一个源自 Gh0st 的后门),它与 PurpleFox Rootkit 一起在“DeepSeek 欺诈”攻击活动中被投递。在这些攻击活动中, adversaries 使用 MSI 安装程序、侧载的 DLL 和 shellcode payloads 来植入 Rootkit 和 RAT。
样本分析
从 Malware Bazaar 获取此恶意软件样本后,我们观察到其表现出以下行为:
- 伪造的 MSI 安装程序(伪装成 Chrome 或热门应用的安装程序)
- DLL 侧载 — 攻击链包含一个真实的浏览器二进制文件(以减少怀疑)和一个良性的 EXE 文件 (mctty.exe)
- 良性的 EXE 文件成为 DLL 侧载的宿主进程
- 加载器写入注册表 Run 键,并使用 Rootkit 来隐藏 RAT,使其不被安全工具发现
- 劫持加载器 — sqlite3.dll 导出
sqlite3_open以进行伪装,但实际上读取一个名为1.txt的文件,分配可执行内存,并将1.txt的内容注入并在mctty.exe内部运行 1.txt中嵌入了双重 payload:- PurpleFox Rootkit 组件,用于内核级隐藏(隐藏文件、进程、注册表键)
- Sainbox RAT,一个 Gh0st 变种后门,提供远程访问、数据窃取和命令执行能力
伪造的 Chrome 安装程序
解包 MSI 安装程序后,可以看到以下文件:
- ChromeSetup.exe
- mctty.exe
- sqlite3.dll
- txt
- msvcp140.dll
- vcruntime140.dll
- msvcr100.dll
这实际上确实包含一个合法的 ChromeSetup.exe 副本,以及多个合法的 DLL。然而,这里的实际 payload 是 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下设置 exe 文件mctty.exe以实现开机启动,从而创建用户级持久化。 - 创建并启动一个可疑的
.BAT文件 —8553C0C8.bat(位于AppData\Roaming\Beacon),该文件会与域名ee[.]bsjdwn[.]com通信。
脚本 8553C0C8.bat 将简单地检查 mctty.exe 文件当前是否正在运行,如果找不到该进程在运行,它将直接从脚本启动它,并持续在任务列表中检查该进程。
在安装过程中,它会通过 ChromeSetup.exe 安装一个合法的 Chrome 实例,以避免引起用户怀疑。
侧载的 DLL
Payload 的投递由 sqlite3.dll 处理。该 DLL 通过搜索顺序劫持的方式从相同的本地安装路径加载,此文件负责处理恶意软件的持久化以及作为下一阶段的加载器。
持久化
该 DLL 通过 RegSetValueExW 将其自身路径写入 HKCU 注册表的 Run 键,从而建立用户级持久化。然后,它充当主要 payload 的主要加载器。
线程注入
此过程打开 1.txt(打包的 shellcode),读取它,并使用 VirtualAlloc 获取一块 RWX(可读写执行)内存。它将 payload 复制到该缓冲区,然后启动一个从该处开始执行的新线程。
Sainbox 和 PurpleFox Payloads
实际执行过程,包括两个 payload 的功能,都被塞进了 1.txt 中,并通过 sqlite3.dll 注入到内存中。在 1.txt 内部有三个部分:包含 PurpleFox Rootkit 的 32 位和 64 位驱动程序文件,以及包含 Sainbox Rat 的 shellcode。此 shellcode 是通过开源工具 sRDI(Shellcode Reflective DLL Injection)创建的,该工具可将 DLL 文件转换为 shellcode。
Sainbox Rat
从 1.txt 中提取 shellcode,我们得到一个名为 Install.dll 的 32 位 DLL 文件,即 Sainbox Rat payload。
Sainbox shellcode 释放一个名为 GetMP.exe 的二进制文件。这只是一个重命名的 Mimikatz,启动时会运行标准的 mimikatz 命令:
GetMP privilege::debug sekurlsa::logonpasswords exit
Sainbox 会检查以下安全工具: 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 注入的双重 payload,它同时部署了 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