样本:
1_final_shellcode_执行载荷.bin(277,067 字节 / 0x43A4B)
分析环境:IDA Pro(ida-pro-mcp)+ 脚本化二进制提取
结论:AsyncRAT 家族 .NET RAT,经 Donut shellcode loader 内存加载,功能包含凭据窃取、键盘记录、屏幕截图、反沙箱与远程控制。
一、攻击链全景
DHL 钓鱼邮件 (.eml)
└─ RAR 附件
└─ JS (LuaJIT 解释器 + 内嵌脚本)
└─ LuaJIT → 解密/释放 shellcode
└─ 1_final_shellcode_执行载荷.bin ← 本样本
└─ Donut loader (位置无关 x64 shellcode)
├─ PEB 遍历 + API 哈希解析
├─ 流式解密配置区 (自定义算法)
└─ 反射式加载 + CLR 托管执行
└─ 3_payload_dotnet.exe (.NET RAT)DHL 钓鱼投递 → JS 阶段 → LuaJIT → Donut 加载器 → 内存中直接执行 .NET RAT,全程不落盘(除必要持久化)。
二、Donut loader 技术细节
2.1 配置布局(file offset 0x5 起)
| 偏移 | 大小 | 含义 |
|---|---|---|
| 0 | 4 | config 长度 = 0x3D7C0 |
| 4 | 16 | 解密 Key = 17ea3dc125d9fcc3eb68919f1a266024 |
| 20 | 16 | Counter 初值 = 67c4e60cf2c87e5608227bcbcb3d40a9 |
| 36 | 536 | API 哈希表(SHA1 风格,逐个解析函数指针) |
| 572 | … | 加密的 payload 数据(251,268 字节) |
2.2 自定义流式解密算法(sub_40855)
state = counter ^ key→ 16 轮混合 →^ key→ 输出块与密文异或- counter 从第 15 字节开始 little-endian 自增(即按 128-bit 计数器推进)
- 每轮混合运算基于 32-bit 加/异或/循环右移(ror),无查表,无标准密码学库——属定制流密码,目的就是对抗静态特征与通用解密器。
2.3 反射式加载
- 无需文件落盘:直接解析 PE 头(PE32/PE32+ 两种 optional header 均支持)
- DLL 遍历加载:
ole32;oleaut32;wininet;mscoree;shell32 wininet→ HTTP 通信mscoree→ CLR 托管宿主(加载 .NET payload)- payload 类型分派(
*(v16+2336)):1/2 = PE,3/4 = .NET,5/6 = 其他 - 解密后校验 SHA1 摘要(存储于 config +0xD41,防篡改)
- 执行完毕后
VirtualFree(MEM_DECOMMIT|MEM_RELEASE)清理内存
三、最终载荷:.NET RAT
| 属性 | 值 |
|---|---|
| 文件名 | 3_payload_dotnet.exe |
| 大小 | 245,760 字节 |
| SHA1 | 9d2fa9c1115c0e2d6a2aec23c33cde6825a00f43 |
| 架构 | x86 (.NET Framework 4.0) |
| CLR runtime | v4.0.30319 |
| CLR metadata streams | #~ #Strings #US #GUID #Blob 共 5 个 |
从 #US(用户字符串堆)与 #Strings 堆提取全部行为特征,确认属 AsyncRAT 谱系(含几十种应用的凭据恢复模块,功能比原生 AsyncRAT 更全)。
四、C2 基础设施
| 项 | 值 |
|---|---|
| FTP 外传/C2 | ftp://ftp.hhautoinvestment.co.tz |
| FTP 账号 | ceo@hhautoinvestment.co.tz |
| 公网 IP 探测 | http://ip-api.com/line/?fields=hosting |
| DynDNS | https://account.dyn.com/ |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0 |
| 通信方式 | FTP / HTTP(FtpWebRequest HttpWebRequest WebClient),无 TCP socket |
- C2 域名
hhautoinvestment.co.tz为坦桑尼亚 (.tz) 注册域名,伪装成"投资公司"(配合钓鱼话术)。 - 通过 ip-api 判断主机是否托管(
hosting字段),用于反沙箱/筛选真实受害者环境。
五、恶意行为清单
5.1 凭据窃取(核心功能,覆盖 30+ 应用)
浏览器(密码 + Cookie + 自动填充):
Chrome、Firefox、Edge (Chromium)、Opera、Brave、Yandex、Vivaldi、360Chrome、QQ 浏览器、UC、Comodo Dragon、Torch、Amigo、Sputnik、Kometa、CocCoc、Liebao、CentBrowser、Pale Moon、IceDragon、Chedot、Orbitum、Sleipnir、Safari for Windows(读 keychain.plist)等。
邮件客户端: Outlook、Foxmail、The Bat!、Becky、PocoMail、ClawsMail、eM Client、Mailbird、IncrediMail、Eudora、Opera Mail、Windows Mail、Mozilla Thunderbird。
FTP 客户端: FileZilla、WinSCP、FlashFXP、CoreFTP、SmartFTP、WS_FTP、FTP Navigator、FTP Commander、FTPGetter。
VNC: RealVNC、TigerVNC、TightVNC、UltraVNC。
VP-N: OpenV-PN、NordV-PN、Private Internet Access、DynDNS(含 ddns 配置)。
其他: Discord Token、Pidgin、Trillian、Paltalk、JDownloader 2、MySQL Workbench、Psi+。
Windows Vault / DPAPI: VaultOpenVault / VaultEnumerateVaults / VaultGetItem 读取 Windows 凭据管理器;DPAPI ProtectedData.Unprotect + Rfc2898DeriveBytes 解 Chrome 密码(encrypted_key → AES-GCM 解密,bcrypt BCRYPT_AES_ALGORITHM)。
5.2 键盘记录
SetWindowsHookEx(WH_KEYBOARD_LL)+KBDLLHookProcDelegate全局低级钩子ToUnicodeEx转换键码,记录 F1–F12、Ctrl、Alt、Win、Tab、Enter 等功能键- 日志文件带
KL_前缀;HTML 导出
5.3 屏幕截图
CopyFromScreen+Bitmap,保存为SC_yyyy_MM_dd_HH_mm_ss.jpeg
5.4 剪贴板监控
SetClipboardViewer/ChangeClipboardChain,记录LastCopiedText,HTML 导出(Copied Text:)
5.5 系统信息侦察
Win32_ComputerSystem/Win32_Processor/Win32_NetworkAdapterConfiguration(MAC)/Win32_BaseBoard(主板序列号)/Win32_VideoController- 组合成 HTML 邮件格式上报:
OSFullName / CPU / RAM / IP / User Name / Computer Name / Time
5.6 反沙箱 / 反虚拟化 / 反调试
CheckRemoteDebuggerPresent/isDebuggerPresent- VM 检测:VMware、VirtualBox、
Win32_VideoController显卡名、VirtualBox进程 - 沙箱 DLL:
SbieDll.dll(Sandboxie)、cmdvrt32.dll、snxhk.dll、SxIn.dll - 用户空闲检测:
GetLastInputInfo(判断无人值守 → 触发恶意行为) - 系统句柄枚举:
NtQuerySystemInformation/NtQueryObject
5.7 持久化
AppAddStartup/HideFileStartup:注册表 Run 键(StartupRegName)+ 启动目录(StartupDirectoryName)+ 环境变量(StartupEnvName)- 自复制 + 隐藏文件
5.8 进程注入 / 远程执行
CreateProcess+ProcessStartInfo(远程命令执行)- 内存映射注入:
CreateFileMapping/MapViewOfFile/PageExecuteReadWrite/VirtualMemoryWrite,CreateThread执行 OpenProcess/DuplicateHandle跨进程操作
5.9 文件管理
CreateFile/DeleteFile/MoveFile/WriteFile/ReadAllBytes/GetFiles/GetDirectories(远程文件浏览/上下传)
5.10 网络防拦截
- SSL 校验绕过:自定义
ServerCertificateValidationCallback/SslPolicyErrors(忽略证书错误) - Tor 支持:
EnableTorPanel/TorPid(可选经 Tor 隐藏流量)
六、IOC(失陷指标)
| 类型 | 值 |
|---|---|
| C2 FTP | ftp.hhautoinvestment.co.tz |
| FTP 账号 | ceo@hhautoinvestment.co.tz |
| 关联域名 | hhautoinvestment.co.tz |
| 公网探测 | ip-api.com |
| 交付 UA | Mozilla/5.0 (…rv:99.0) Gecko/20100101 Firefox/99.0 |
| .NET 载荷 SHA1 | 9d2fa9c1115c0e2d6a2aec23c33cde6825a00f43 |
| 解密后配置 SHA1 | 7221553f6096f57c938c1e6914d2f4107b24f517 |
| 特征文件/日志 | KL_*.log、SC_*.jpeg、/log.tmp、*_log.html |
| 行为特征 | SetWindowsHookEx(WH_KEYBOARD_LL)、VaultOpenVault、CopyFromScreen、NtQuerySystemInformation |
| 持久化位置 | 注册表 Run 键、启动目录、环境变量(配合 AppAddStartup/HideFileStartup) |
七、处置建议
- 全网搜索上述 IOC(尤其 FTP 域名、User-Agent、
KL_/SC_文件特征)。 - 进程取证:检查异常
wscript/powershell/托管进程(x86 CLR)内存注入痕迹。 - 清除持久化:注册表
HKCU\Software\Microsoft\Windows\CurrentVersion\Run、启动目录、HKCU\Environment。 - 凭证轮换:所有可能被窃取的浏览器/邮件/FTP/V-PN 密码、Discord token 强制重置。
- 邮件网关:拦截 DHL 仿冒邮件(发件域名、附件 RAR+JS 组合)。
本报告由 IDA Pro 静态逆向 + 脚本化提取完成,行为数据来自 .NET 元数据字符串堆(#US/#Strings)与反编译的控制流/API 调用。