利用迅雷进行Dll劫持!一个包含四阶段攻击链的银狐木马

admin 2026-01-05 18:11:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析了银狐木马利用迅雷Thunder.exe实施DLL劫持的四阶段攻击链,涵盖NSIS释放、反沙箱检测、通过Donut注入explorer.exe及最终加载ValleyRAT的过程。攻击者利用注册表实现动态C2配置与模块化插件持久化,并劫持tracerpt.exe执行插件。文章详述了技术细节并提供Hash、域名等完整IOC,有助于安全人员识别与防御此类威胁。 综合评分: 88 文章分类: 恶意软件,威胁情报,漏洞分析,逆向分析


cover_image

利用迅雷进行Dll劫持!一个包含四阶段攻击链的银狐木马

二进制空间安全

2026年1月4日 16:57 北京

将二进制空间安全设为”星标⭐️”

第一时间收到文章更新

银狐木马一阶段分析

#

银狐木马样本千变万化,这个PE样本是一个32位的GUI程序, 利用静态分析工具可以看出是一个Nullsoft Scriptable Install System(NSIS)安装程序。NSIS安装包会将安装脚本、压缩后的Payload等内容嵌入在二进制文件中。静态分析工具加载信息如下图:

#

NSIS 安装器首先通过 GetTempPathA 获取一个可写的临时目录;如果失败,则回退至C:\Windows\Temp,以保证执行的可靠性。随后,它会创建一个 NSIS 专用的工作目录(~nsu.tmp),并将当前目录切换至该位置。其代码逻辑如下图:

分析发现,真正有用的文件只有两个:Thunder.exe 和 libexpat.dll。Thunder.exe是由迅雷开发的合法、已数字签名的可执行文件,通常作为迅雷下载管理器生态的一部分分发。在该感染链中,这个二进制本身并不具备恶意行为,而是被滥用为DLL劫持的宿主程序。如下图:

当Thunder.exe从安装器的临时目录中执行时,由于Windows默认的DLL搜索顺序,它会优先从本地路径加载libexpat.dll。这一行为可以在 x64dbg 中得到验证。如下图:

#

银狐木马二阶段分析

#

被释放的libexpat.dll并未导出任何有意义的函数,也不会被Thunder.exe显式调用。该DLL依赖Windows加载器机制,通过DllMain回调执行代码。无论DLL是否导出函数、是否被宿主进程主动使用,该回调都会被无条件调用。

主函数一开始就执行了多种反调试和反沙箱技术。该DLL会进行进程枚举,扫描进程列表以查找常见的分析工具和沙箱环境。同时,DLL还会查询系统资源,检查是否满足最低运行要求。此外,一旦检测到任何沙箱环境,恶意程序就会立即终止自身运行。代码逻辑如下图:

当DLL完成反分析检查后,便进入核心执行逻辑。它首先禁用Windows Update服务(wuauserv),随后从磁盘加载一个加密的Payload。该Payload通过动态解析的方式运行,并从临时目录中加载box.ini文件。该文件会被完整读入内存,使用内嵌的加密常量进行解密,随后以shellcode的形式执行。其代码逻辑如下图:

box.ini文件的内容如下图:

#

该shellcode采用了一种经典的进程注入(Process Injection)来执行。执行流程首先会检查explorer.exe是否存在,并将其作为后续的目标进程。随后以挂起状态启动该进程,恶意程序获取其初始线程上下文。接着,通过VirtualAllocEx在远程进程中分配可执行内存,并使用 WriteProcessMemory将Payload写入该进程内存中。其代码逻辑如下图:

LogStatus函数实现了一个在整个DLL中使用的内部日志机制,用于记录执行进度和错误状态。该函数会生成带有时间戳的日志消息,将其追加写入本地文件(C:\data.db),并在写入磁盘前对内容应用一种轻量级的自定义混淆处理。其代码逻辑如下图:

#

银狐木马三阶段分析

#

通过附加调试器到被空壳化的explorer.exe进程,并监控由VirtualAllocEx分配的内存区域,可以转储注入的Payload。当Payload被WriteProcessMemory写入并且执行流被重定向后,可直接从内存中提取该区域,从而获得下一阶段的Payload进行分析。通过调试器可以看到被加密的Payload如下图:

分析解密后的Payload发现,最终Payload是由Donut生成的shellcode。在该场景下,Donut被用于将一个托管Payload封装成原始shellcode,使其能够完全在内存中执行而不落地到磁盘。

解密后的Payload如下图:

使用工具查看Payload如下图:

#

可以使用undonut或donut-decryptor工具来dump Donut的Payload。

undonut下载地址:

https://github.com/listinvest/undonut

donut-decryptor下载地址:

https://github.com/volexity/donut-decryptor

银狐木马四阶段分析

#

当Donut加载器成功将最终Payload注入到被空壳化的explorer.exe进程后,Valley RAT会初始化其复杂的配置管理子系统。它首先设置反分析流程,然后调用sub_405E40()函数初始化配置,并创建用于C2通信的线程。

该函数实现了一个两阶段加载机制,共解析出22个不同的配置参数。

第一阶段

命令与控制(C2)基础设施(9 个参数):

  • p1:p2:p3: —— 三层C2 服务器地址(与网络分析中发现的 b[.]yuxuanow[.]top 对应)
  • o1:o2:o3: —— 各层 C2 对应的端口号
  • t1:t2:t3: —— 连接类型标志(1 = HTTP/HTTPS,0 = 原始 TCP 套接字)

运行参数(5 个参数):

  • dd: —— 首次 C2 通信前的初始休眠时间(秒)
  • cl: —— Beacon 回连间隔(秒)
  • bb: —— 构建/僵尸版本号(观察到为 1.0)
  • bz: —— 备用 C2 地址
  • fz: —— 未知参数

功能开关(8 个布尔参数):

  • kl: —— 键盘记录(1 启用,0 禁用)
  • sh: —— 远程 Shell(1 启用,0 禁用)
  • bd: —— 完整后门模式(1 启用,0 禁用)
  • dl: —— 下载/文件传输能力
  • jp:sx:bh:ll: —— 其他功能开关

对应的C2配置代码如下图:

第二阶段

加载内嵌配置后,Valley RAT 会查询 Windows 注册表以获取更新的 C2 基础设施信息。如下图:

如果注册表值存在且长度超过 10 字节,Valley RAT 会完全替换其内嵌配置,随后只重新解析关键的 C2 参数(p1 到 t3

这使得银狐木马操作人员无需重新部署新样本或重新获取执行权限,就能动态更新 C2 地址。如下图:

该通信循环通过在主C2(p1) 与 备用 C2(p2)之间交替通信来实现多层级故障切换,在连续失败200 次后切换到第三层 C2(p3)。它同时支持HTTP/HTTPS原始 TCP 协议,并使用可配置的回连间隔(cl:)以降低被检测的概率,同时通过延迟首次连接(dd:)来规避沙箱环境。

在成功建立连接后,Valley RAT 会发送一个 “ready” 信标(命令 ID:4),如果配置中启用了键盘记录功能(kl: 标志),则激活该功能,随后进入等待C2指令的状态。该架构与已发现的基础设施高度吻合:b[.]yuxuanow[.]top(103.20.195[.]147) 作为主 shellcode C2,二级/三级 C2 在 itdd[.]club、gov-a[.]work 和 xzghjec[.]com 等域名之间轮换。

Valley RAT 实现了一种模块化插件架构,通过基于注册表的持久化机制来实现能力的动态扩展。该恶意软件会将下载的插件存储在注册表路径 HKCU\Console\0\d33f351a4aeea5e608853d1a56661059 下,该注册表值名称与 Valley RAT 已确立的指纹特征一致,遵循在多个 Valley RAT 攻击活动中观察到的 MD5 哈希命名规则

插件管理器有两种运行模式:一种是从C2 服务器接收模块,在内存中分配具有 PAGE_EXECUTE_READWRITE 权限的可执行内存,并将2628字节的配置数据加上插件载荷代码以 REG_BINARY的形式持久化写入注册表;另一种是从注册表中读取之前已存储的插件,将其与硬编码的签名进行校验后,创建执行线程运行。

每个插件都包含一个魔数字节保护(0xC9),用于防止重复执行。该架构使 Silver Fox 操作人员能够按需向受感染系统部署诸如高级键盘记录、凭据窃取或横向移动等专用能力模块,并通过注册表存储实现跨重启的自动持久化。如下图:

在从C2服务器下载插件后,Valley RAT会使用相同的进程空壳化(Process Hollowing)技术,将插件注入到tracerpt.exe中。tracerpt.exe 是一个由 Microsoft 签名的合法系统工具。恶意软件会以挂起状态创建该进程,将插件代码注入其内存,并将执行流重定向到恶意载荷。

在注入之前,攻击者还会使用此前分析过的、包含C2地址和功能标志的 4768 字节配置数据 对插件进行补丁处理,以确保插件在运行时具备完整的通信与功能控制能力。如下图:

银狐木马IOC

#

第一阶段文件Sha256 Hash:

77ea62ff74a66f61a511eb6b6edac20be9822fa9cc1e7354a8cd6379c7b9d2d2

第二阶段文件Sha256 Hash:

fa388a6cdd28ad5dd83acd674483828251f21cbefaa801e839ba39af24a6ac19

第三阶段文件Sha256 Hash:

f74017b406e993bea5212615febe23198b09ecd73ab79411a9f6571ba1f94cfa

第四阶段文件Sha256 Hash:

068e49e734c2c7be4fb3f01a40bb8beb2d5f4677872fabbced7741245a7ea97c

域名:

ggwk[.]cc

b[.]yuxuanow[.]top

IP地址:

45.207.231[.]94

103.20.195[.]147

以下是银狐木马的其它基础设施和对应的IP:

itdd[.]club 45.207.231[.]107

xzghjec[.]com 8.217.9[.]165

gov-a[.]work 160.124.9[.]103

gov-a[.]fit 160.124.9[.]103

gvo-b[.]club 160.124.9[.]103

gov-c[.]club 160.124.9[.]103

gov-a[.]club 160.124.9[.]103

govk[.]club 160.124.9[.]103

dingtalki[.]cn 47.239.225[.]43

hhiioo[.]cn 43.100.22[.]158

kkyui[.]club 43.100.22[.]158

hhimm[.]work 43.100.22[.]158

swjc2025bjkb[.]cn 43.100.123[.]207

2025swmm[.]cn 43.100.123[.]207

hhiioo[.]work 43.100.63[.]145

(全文完)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:二进制空间安全 《利用迅雷进行Dll劫持!一个包含四阶段攻击链的银狐木马》

评论:0   参与:  0