深入剖析Ghost:Gh0st RAT恶意软件分析

3 阅读7分钟

Ghost是什么?—— 历史与变种演化

Gh0st RAT(有时拼写为Gh0strat)大约于2008年出现,由一群中国黑客创建。由于其源代码后来被公开,它成为了许多攻击者武器库中的耐用工具——被不断修改、适配和扩展。一种持续存在的策略是将其与内核级rootkit捆绑或配对,以隐藏其存在并增加检测难度。

像HiddenGh0st这样的变种已经在一些攻击活动中被记录在案,这些攻击将Gh0st RAT的功能与PurpleFox rootkit结合,用于隐藏文件、注册表和进程。最近,在利用“DeepSeek Deception”的活动中,观察到了Sainbox RAT(一个Gh0st衍生的后门)在野外的传播,它与PurpleFox rootkit一起通过MSI安装程序、侧加载的DLL和shellcode载荷进行投递。

样本分析

从Malware Bazaar获取的该恶意软件样本表现出以下行为:

  1. 伪造的MSI安装程序(伪装成Chrome或热门应用的安装包)
  2. DLL侧加载——该链包含一个真实的浏览器二进制文件(以减少怀疑)和一个良性EXE文件(mctty.exe)
  3. 良性EXE成为承载DLL侧加载的主机进程
  4. 加载器写入Run注册表项,并使用rootkit来隐藏RAT,使其不被安全工具发现
  5. 劫持加载器——sqlite3.dll导出sqlite3_open以进行伪装,但实际上会读取一个1.txt文件,分配可执行内存,并将1.txt的内容注入到mctty.exe进程中运行
  6. 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.dlltxt文件。检查txt文件时,发现它实际上包含两个PE文件,一个32位,另一个64位,每个都被列为驱动程序文件。

执行链

在执行过程中,安装程序将cab文件中的文件释放到路径 C:\ProgramData\cPZECO,然后启动EXE文件 mctty.exe,它会从同一路径加载恶意的DLL文件 sqlite3.dll

该EXE随后会执行三个操作:

  1. sqlite3.dll将从1.txt读取到内存中的shellcode注入到mctty.exe进程中。
  2. 通过在CurrentVersion\Run注册表项设置mctty.exe在启动时运行,创建用户级持久化。
  3. 创建并启动一个可疑的BAT文件——位于AppData\Roaming\Beacon8553C0C8.bat,向域名 ee[.]bsjdwn[.]com发起通信。

脚本 8553C0C8.bat 的作用是检查 mctty.exe 进程是否正在运行,如果没有找到该进程,它会直接从脚本启动它,并持续在任务列表中检查该进程。

在安装过程中,ChromeSetup.exe 会安装一个合法的Chrome实例,以避免引起用户怀疑。

侧加载的DLL

载荷的投递由DLL文件 sqlite3.dll 处理。通过DLL搜索顺序劫持,从相同的本地安装路径加载该DLL。此文件负责恶意软件的持久化以及下一阶段的加载器功能。

持久化

该DLL通过 RegSetValueExW 将其自身路径写入HKCU的Run注册表键,从而建立用户级持久化。然后,它充当主载荷的主要加载器。

线程注入

此过程会打开 1.txt(打包的shellcode),读取其内容,并使用 VirtualAlloc 分配一块具有读写和执行权限的内存。它将载荷复制到该缓冲区,然后启动一个新线程,从该内存位置开始执行。

Sainbox 和 PurpleFox 载荷

实际的执行过程,包括两个载荷的功能,都被塞进了 1.txt 中,并由 sqlite3.dll 注入内存。1.txt 包含三个部分:包含PurpleFox rootkit的32位和64位驱动程序文件,以及包含Sainbox Rat的shellcode。该shellcode是通过开源工具sRDI将DLL文件转换而成的。

Sainbox Rat

1.txt 中提取shellcode,我们得到一个名为 Install.dll 的32位DLL文件,这就是Sainbox Rat载荷。

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,将该路径添加到Windows Defender的排除列表中。

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 Deception”活动说明了像Gh0st RAT这样的传统恶意软件的持续演变和有效性,它已被改编成功能强大的Sainbox RAT。样本分析清楚地展示了一个复杂的多阶段感染链:利用一个令人信服的伪造MSI安装程序,通过一个良性主机进程(mctty.exe)执行DLL侧加载攻击。该感染链的核心是从打包的文件 1.txt 注入的双重载荷,它同时部署了用于远程控制、凭据窃取(通过Mimikatz)、安全工具规避和破坏性操作的Sainbox RAT,以及用于内核级持久化和最终隐藏整个攻击行为的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