
点击上方蓝字关注我们








其中 Uninst000.exe 是一个正常的火绒安装包程序,带有有效签名。nginxCore.dll 这个文件引起我的注意,因为它的大小不正常,达到了近 300MB。resources.zip 是一个带有密码的压缩包文件,暂时不知道解压密码。
在对 nginxCore.dll 内容查看时,发现里头充斥了大量的 '00' 字节,对此可初步判断出该文件使用了体积膨胀技术,手动对其进行 "瘦身" 后,体积来到了 157KB 大小






CheckIfInstalled










KEY = b"UpdateThreads"def decrypt_file(src, dst):with open(src, "rb") as f:data = bytearray(f.read())for i in range(len(data)):data[i] ^= KEY[i % len(KEY)]with open(dst, "wb") as f:f.write(data)print(f"[+] Decrypted: {dst}")if __name__ == "__main__":decrypt_file("user.pub", "user_decrypt.pub")






user.pub










War3n.exe




如果是暴雪游戏玩家会对这名字非常熟悉,也就是魔兽争霸 3。对其它文件进行查看,发现以下 2 个文件可疑:
private.cer:不是一个有效的证书格式文件
Storm.dll:导出表可疑
Storm.dll 是一个 32 位的 DLL 文件,编译时间为 6 月 19 日






from Crypto.Cipher import ARC4key = b"xiaobaitu"with open("private.cer", "rb") as f:enc = f.read()dec = ARC4.new(key).decrypt(enc)with open("private_decrypt.cer", "wb") as f:f.write(dec)



private.cer









获取 ntdll.dll 中以下几个函数
LdrEnumerateLoadedModules
RtlAcquirePebLock
RtlReleasePebLock
RtlInitUnicodeString
后面需要去修改 PEB 结构

{3E5FC7F9-9A51-4367-9063-A120244FBEC7}
利用 ICMLuaUtil COM 进行自提权从而绕过 UAC,自提权操作后便开始修改 PEB 结构进行伪装
PEB->ProcessParameters->ImagePathName
PEB->ProcessParameters->CommandLine
使用 LdrEnumerateLoadedModules 同步 LDR 模块链表,防止一些进程监控工具 (如 Process Hacker)、PEB 遍历,EDR 用户态扫描发现不一致








看门狗与持久化




















与 C2 通信













总 结



本次分析的样本以火绒安装包 (MSI) 作为载体,通过多层加载、分阶段解密和反射执行的方式,最终释放并运行经过修改的银狐木马变种。整个攻击链设计完整,各阶段职责明确,并结合多种对抗分析与持久化技术,具有较高的隐蔽性。
攻击者首先利用 MSI 文件释放多个组件,通过体积膨胀技术隐藏真实的 Loader (nginxCore.dll),以增加静态分析成本。Loader 在运行过程中首先进行反沙箱检测,通过检测时间加速环境、防止 API Hook (地狱之门动态解析系统调用号)、Patch 方式绕过 AMSI 与 ETW 等方式规避主流安全产品检测。随后对 user.pub 进行异或解密,并采用反射加载执行内存中的第二阶段 DLL,整个过程中未直接落地最终有效载荷。
第二阶段 DLL (MemShellCodeWithUnzip.dll) 负责解压资源文件,并利用合法签名的 Warcraft III (war3n.exe) 作为白加黑宿主继续执行后续恶意代码。其配套的 Storm.dll 仅保留一个有效导出函数,通过 APC 注入方式触发执行,再利用 ARC4 (密钥为 "xiaobaitu") 解密 private.cer,并再次采用反射加载方式执行最终的 HTSAgent.dll,实现了多层加密、多层解密、多层内存加载的执行链路。
HTSAgent.dll 为整个样本的核心功能模块,程序首先通过 ICMLuaUtil COM 对象绕过 UAC,实现自身提权;随后修改 PEB 中的 ImagePathName 和 CommandLine,并同步 LDR 模块链表,对进程身份进行伪装,以降低用户态检测工具发现异常的概率。在配置解析阶段,可发现大量 "HTS EMS Agent"、"HTS EMS Employee Agent" 等字符串,以及 "aihepijiudexiaotuzi (爱喝啤酒的小白兔)"、"xiaobaitu (小白兔)"、"xiugaishiyong (修改使用)" 等开发者自定义标识,结合通信协议和配置格式,可判断该样本属于定制修改的银狐木马变种。
样本在持久化方面实现了多重冗余机制。除支持注册表 Run、自启动计划任务及系统服务等常见方式外,还利用 WMI 永久事件订阅构建进程守护机制,可在指定进程退出后自动重新拉起,实现较强的持久化能力。同时,通过 SYSTEM 服务结合 Session 0 WatchDog 架构,在活动用户登录后自动创建用户态 Agent,使恶意程序能够长期稳定运行。
在通信阶段,样本首先创建专用互斥体防止重复上线,并检查 UserInitMprLogonScript 注册表项作为辅助启动方式,随后延迟启动后台线程,与远程 C2 建立轮询通信,根据服务器下发的命令动态加载功能模块执行对应操作。
综合整个攻击流程来看,该样本并非传统单阶段木马,而是构建了一套完整的多阶段加载框架。从白加黑加载、反沙箱、反监控、UAC 绕过、PEB 伪装、内存反射加载,到多重持久化及模块化远控通信,各个阶段均进行了较强的工程化设计。



IoCs



f54e580afa0ec72958494f3fc65c87be
137.220.136.172
HTS_AgentRunGuard
Global\\HTS_EMS_Launcher
HTS_EMS_AgentOnline

- End -

夜雨聆风