GigaWiper:剖析由多种恶意软件组合而成的破坏性后门
导语:微软威胁情报团队披露了 GigaWiper 破坏性后门的技术细节。该后门由 Go 语言编写,将多个原本独立的恶意软件家族代码整合到一个模块化平台中,具备磁盘擦除、伪造勒索软件、系统破坏以及通过 RabbitMQ 和 Redis 进行 C2 通信的能力,并同时被追踪为 BLUERABBIT。
2025 年 10 月,微软威胁情报团队识别到一起破坏性擦除活动,并发现了一个基于 Go 编程语言(Golang)的复杂后门,我们将其追踪命名为 GigaWiper。GigaWiper 是一个多功能植入体,将强大的命令与控制(C2)能力与多种破坏性载荷相结合,包括磁盘擦除、伪造勒索软件以及系统级破坏功能。
GigaWiper 的组成结构尤为值得关注。它并非一个单一的专用工具,而是将多个独立的恶意软件家族融合到 GigaWiper 中,作为按需调用的后门命令,使威胁行为者能够灵活选择其破坏方式。

将多种破坏性能力整合到一个模块化后门中,反映了擦除器恶意软件领域的一个显著转变——传统的擦除器恶意软件通常纯粹设计用于销毁数据,而非实施勒索并产生现实世界的影响。GigaWiper 体现了威胁行为者正在投资于运营效率,将独立工具合并为统一平台,从而减少部署足迹的同时扩展其破坏能力。GigaWiper 同时被 Google 威胁情报小组(GTIG)和 Binary Defense 追踪为 BLUERABBIT。
在本篇博客中,我们对 GigaWiper 的架构进行了代码层面的分析。我们分享这些发现以及 Microsoft Defender 检测和缓解建议,以帮助企业和安全社区调查和防御 GigaWiper 及类似的破坏性威胁。

从 2025 年 10 月开始,微软威胁情报团队开始观察到被入侵的环境遭到破坏性工具的擦除。在仔细审视这些入侵事件时,我们观察到两种类型的 GigaWiper 样本。两种样本类型都是未去除符号信息的 Golang 编写的可移植可执行文件(PE)。对比两个样本显示,独立擦除器的代码作为后门的一条命令被完整嵌入到了后门中。
独立擦除器是一个未去除符号信息的 Golang 编写的 PE。它并不逐个删除文件,而是在物理磁盘层面进行擦除。它会识别物理驱动器、判断哪个驱动器包含 Windows 安装、移除其他驱动器的分区引用、覆盖原始磁盘内容,然后重启系统。

擦除器首先通过 Windows 管理规范(WMI)使用相应查询枚举物理磁盘,为后续决定如何处理每个驱动器提供所需的设备标识符和磁盘元数据。随后,恶意软件调用 main.FindWindowsDrive 来确定哪个物理磁盘包含 Windows 安装(例如 \\." + "PHYSICALDRIVE0)。识别出该驱动器后,它会遍历剩余的磁盘列表,并对每个非 Windows 驱动器调用 main.unallocateDrive,以移除其分区引用。这通过 DeviceIoControl 和 IOCTL_DISK_CREATE_DISK 实现,该操作会重新初始化磁盘的分区元数据,从而有效擦除现有的分区表条目。如果操作成功,恶意软件会在控制台打印 "Partitions removed successfully."。
接下来,它继续擦除每个驱动器。它调用 main.writeRandToDrive,以 0xA00000 大小的块覆盖每个驱动器。每个缓冲区的第一个字节使用 crypto/rand.Read 进行随机化,其余部分填充为零。如果随机数生成失败,则使用字节值 "1"。这种模式可能是为了规避那些查找显著的全盘清零行为的检测或缓解措施。完成驱动器擦除后,恶意软件通过调用 Windows 关机功能,并设置重启和零延迟选项,强制立即重启系统。

随后,我们分析了更大的后门样本。相同的擦除功能同样作为后门的一个组件存在。较大后门中的代码流程和函数名称与独立擦除器完全一致,擦除器的 main.main 例程在后门中实现为 rabbit_tools_tool_wipe_main.WipeMain 函数。在确认擦除例程存在重叠之后,本节将聚焦于后门的额外能力。除了破坏性功能之外,后门还设置了持久化机制,并通过 RabbitMQ 和 Redis 实现 C2 通信。在分析这些后门能力的过程中,我们发现某些后门命令包含了来自其他恶意软件家族的代码。
后门创建并使用注册表项 HKCU\SOFTWARE\OneDrive\Environment 来跟踪其执行次数。如果系统中不存在该键,恶意软件会判定自己是首次在该系统上运行,进而创建该键并将其值设置为 "0"。然后,它通过运行相应命令创建一个名为 OneDrive Update 的计划任务,并在打印 "Task created. Original process exiting." 后退出进程。该计划任务被配置为基本上每分钟运行一次,同时在系统启动时运行一次。在后续执行过程中,当注册表项存在且其值大于 "0" 时,恶意软件会增加该计数,判断自身正在作为计划任务运行(打印 "Running from Task Scheduler…"),并正常继续执行。

恶意软件使用 AES 与硬编码密钥解密一个硬编码的配置。例如,一个被观测到的样本使用 185.182.193[.]21:5544 作为 RabbitMQ C2 服务器,使用 185.182.193[.]21:7542 作为 Redis 服务器,并向上传结果。配置中还指定了用于连接 RabbitMQ 和 Redis 服务器的凭据。
为接收来自 RabbitMQ C2 服务器的命令,恶意软件声明一个队列并将其绑定到一个名为 "All" 的 fanout 交换机。由于 "All" 是一个 fanout 交换机,任何发布到该交换机的命令都会广播到所有受感染客户端绑定的队列。为支持定向命令,恶意软件还声明了一个名为 "Topic" 的 topic 交换机。当行为者发出命令 8(参见命令章节)并提供路由键时,后门将队列绑定到 "Topic"。由 C2 服务器发送的每条命令都是一个 cmd.Task 结构。
来源信息
来源:Microsoft Security Blog
作者:Microsoft Threat Intelligence

