coddrake/cpuid-hwmonitor-malware-analysis
GitHub: coddrake/cpuid-hwmonitor-malware-analysis
本资料剖析了通过破坏 CPU‑Z/HWMonitor 分发恶意软件的供应链攻击,揭示了其利用合法工具进行内存编译与凭证窃取的技术细节。
Stars: 1 | Forks: 0
# 技术分析报告:供应链妥协(CPU-Z、HWMonitor 和 HWiNFO)




### 快速摘要:
从非常宏观的角度来看,该恶意软件的最终目标似乎是窃取数据,特别是浏览器凭证。我认为这是最终目标,因为当我对其进行模拟时,看到它正在与 Google Chrome 的 IElevation COM 接口交互(尝试提取和解密保存的密码)。在此过程中,它还做了许多其他事情。
1. 一个未知作者破坏了 http://cpuid.com,以通过 HWMonitor 分发恶意软件。这影响了传统安装程序和便携版。它从 supp0v3-com 下载内容,这是 2026 年 3 月初针对 FileZilla 的先前恶意软件活动所使用的同一域名,最初由 MalwareBytes 报告。
2. HWMonitor 与一个恶意的 CRYPTBASE.dll 捆绑在一起。CRYPTBASE.dll 是 Windows 的合法库,但它们创建了一个伪造版本以伪装(恶意软件伪装成合法软件)。该 DLL 负责连接到 C2 并下载恶意软件的其他阶段。
3. 它试图通过检查机器中是否存在特定注册表密钥来检测模拟并防止逆向工程。然而,它们在这方面失败了,并没有考虑全面。值得注意的是,它们只检查了 VirtualBox 的存在(真遗憾)。
4. 它从远程 C2 下载一个 .cs 文件,并通过 PowerShell 手动在机器上编译它。这是一个有趣的策略。它通过这些 LOLBIN 方式完成所有操作。
5. 它编译的 .cs 文件是一个带有 NTDLL 导出的 .NET 二进制文件。主 HWMonitor 二进制文件使用这个编译后的 .NET 二进制文件进行进程注入。这是一个有趣的策略。
6. 它所做的几乎所有事情都在内存中执行。我必须手动检查并逐一分析才能精确确定其运作方式。然而,我认为这没有必要,因为此时我们已经知道它是恶意软件,并且正在尝试窃取浏览器凭证。
**评分:**
- +2 分:通过 IElevation COM 接口窃取凭证
- +1 分:通过 PowerShell 进行 DLL 内联编译
- +1 分:通过 .NET 汇编代理 NTDLL 导出
- -1 分:反模拟做得不好
- +2 分:破坏网站和供应链攻击
- +1 分:内存持久化
- -3 分:重复使用 2026 年 3 月活动的相同 C2
**最终评分:** B。这是一个相当不错的恶意软件。
## 1. 事件介绍与背景
我最近分析了一次供应链攻击,它触及了 IT 基础设施信任的核心。在此次事件中,CPU-Z、HWMonitor 和 HWiNFO 等基本诊断工具的官方分发渠道遭到破坏。我观察到的情况在战略上令人担忧:恶意软件工件直接从 CPUID 官方页面和合法来源下载,而不是来自第三方克隆或镜像。
此案的紧迫性在于目标对象。系统管理员、安全分析师和硬件工程师每天以提升权限运行这些二进制文件。通过用特洛伊木马版本替换合法软件,攻击者颠覆了第一道防线:对来源的信任。然而,正如我将在下文详细说明,真正的复杂性不仅仅在于访问服务器,而在于使用 Living-off-the-Land 技术在受害主机上实时编译恶意软件。
## 2. 感染向量:Inno Setup 与 CryptBase.dll 的滥用
在对被破坏的安装程序(HWiNFO_Monitor_Setup.exe)进行静态和动态分析期间,我确定该二进制文件使用了 Inno Setup 打包,并使用 Borland Delphi 编译。这是攻击者用来将恶意负载隐藏在合法安装程序结构中的经典选择。
我检查了被分析恶意安装程序的哈希值:
* MD5:CDC459A866361463D719BC89622300F3
* SHA256:EEFC0F986DD3EA376A4A54F80CE0DC3E6491165AEFDD7D5D6005DA3892CE248F
感染的初始触发点是 DLL 劫持。安装程序将名为 CRYPTBASE.dll 的恶意库释放到应用程序目录。快速分析表明,虽然 Microsoft 的 CryptBase.dll 原始版本零检测,但此次攻击中交付的版本充当了主要加载器。使用原生系统名称是一种明显的规避技术,但非常有效,旨在通过表面文件审计被忽略,作为通往随后执行的内存代码的桥梁。
## 3. 执行机制:动态编译与 LOLBIN
我发现的最具技术复杂性的方面是通过动态编译绕过传统静态分析。恶意软件不携带最终负载(窃取器)的可执行文件格式;它在目标系统上构建它。
通过监控进程树(Process Tree),我观察到以下流程:
1. 父进程(例如 HWMonitor.exe 或安装程序)与 C2 通信以下载 C# 源代码文件(.cs)。
2. 我识别出对合法 Windows 编译器 csc.exe(PID: 7636)的调用,它与实用工具 cvtres.exe(PID: 6732)协同工作。
3. 编译在具有随机名称的临时目录中发生,例如 \g3fijyed\,生成 .tmp 文件,这些文件随后在内存中转换为可执行代码。
这种可信开发者工具(MITRE T1127)技术对基于签名的防病毒软件具有破坏性。EDR 看到 Microsoft 的合法工具(csc.exe)正在进行“正常”的编译任务,而最终的恶意负载从未以持久可执行文件的形式接触磁盘,仅驻留在内存的易失性区域中。
## 4. 分析规避与环境感知
该恶意软件表现出对执行环境的高度意识,使用了反虚拟机(anti-VM)和反逆向工程技术来保护攻击者基础设施。我绘制了系统语言发现(T1614.001)技术的使用,并检查了硬件以识别沙箱。
在我监控的规避行为中,突出显示:
* 注册表检查:恶意软件访问特定路径以识别系统语言和区域设置,例如 \REGISTRY\MACHINE\SYSTEM\ControlSet001\Control\NLS\Language。
* BIOS 检测:我观察到进程 HWMonitor.exe(PID: 7320)调用 PowerShell 读取 BIOS 版本,查找指示虚拟化的字符串(如 VMWare、VirtualBox 或 QEMU)。
* 元数据查询:会查询“所有者”、“组织”和“计算机名称”字段以过滤实验室机器。
有趣的是,规避并不完美。在 ANY.RUN 等沙箱环境中,恶意软件表现出部分执行,这表明攻击者优先规避大规模自动化系统,而不是对专职分析人员进行完全抵抗。
## 5. 负载能力:窃取器模块与 FileZilla 连接
一旦恶意软件确认自己不在虚拟机中,编译在内存中的负载就会激活其窃取功能。主要目标是身份数据外泄。
我的行为日志分析显示:
* 凭证外泄:重点针对浏览器以提取登录名、密码,特别是会话 Cookie。
* “假 FileZilla”连接:我在工件中明确发现了“Trojanized FileZilla”和“Fake-Filezilla”的引用。这表明可能重用代码或已知 FileZilla 窃取器活动的基础设施。
这里的威胁情报感知非常明确:我们面对的未必是国家级的高级对手,而是一个高效的商品化恶意软件操作者,他知道如何利用信任向量并重用市场上已有的窃取器模块以获得初始访问权限和后续的横向移动。
## 6. 命令与控制(C2)通信
C2 基础设施主要使用 PowerShell 作为编排器,经常使用 Invoke-Expression 执行通过网络接收的二进制指令。
我分析了网络流量,并确定了在网络层面用于检测的高保真指标:使用 32-BE(大端)数据大小前缀的二进制 TCP 协议,该协议运行在非标准端口上。我还观察到恶意软件执行对 Microsoft 和 Bing 等域的连接检查,这是一种经典的“噪音”技术,用于伪装恶意流量并验证互联网访问权限,然后再进行外泄。
使用合法的管理工具进行 C2 通信使得将合法网络管理流量与数据窃取活动分离变得困难。
## 7. 操作复盘与修复
感染生命周期遵循逻辑链条:
1. 初始访问:来自官方来源的 Inno Setup/Delphi 安装程序(CDC459A8...)。
2. 持久化/触发:释放 CRYPTBASE.dll 以进行劫持。
3. 防御/规避:检查 BIOS 和注册表密钥(NLS\Language)。
4. 执行:通过 csc.exe(PID: 7636)从 .cs 代码进行动态编译。
5. 目标:激活窃取器(类似 Fake-Filezilla)并外泄凭证。
## 修复指南
对于已确认的事件,文件清理措施是不够的,因为负载的易失性本质建议采取以下措施:
* 身份管理:立即重置所有存储在浏览器中的密码。至关重要的是,使所有活动会话失效并清除所有服务的 Cookie,特别是企业/云服务,因为现代窃取器优先考虑会话令牌的劫持。
* 进程监控:实施检测规则,监控 csc.exe 和 cvtres.exe 的实例,这些实例具有异常的父进程(例如诊断工具)或在用户临时目录中运行。
* 零信任策略:采用应用程序允许列表或默认拒绝策略。正如本案例所示,即使是“官方”软件也可能被恶意利用;默认阻止未经授权的执行是唯一可靠的防御。
* 网络审计:监控使用 32-BE 二进制数据前缀的非标准端口的 TCP 流量。
此次事件是一个严厉提醒:安全性不能仅基于来源的声誉。对合法系统二进制文件的行为分析和严格的监控(LoLBins)是现代防御不可或缺的一部分。
标签:AI合规, C2 通信, Chrome 密码, COM 劫持, DAST, DLL 注入, DNS 反向解析, IPv6, IP 地址批量处理, LSASS 注入, .NET 编译, PowerShell, SEO: CPU-Z 恶意软件, SEO: HWiNFO 恶意软件, SEO: HWMonitor 供应链, SEO: 供应链攻击 2026, SEO: 密码窃取恶意软件, StruQ, T1027 混淆或加密文件, T1053 定时任务, T1055 进程注入, T1059 命令与脚本控制, T1071 应用层协议, T1552 凭证窃取, VirtualBox 检测, 供应链攻击, 信息窃取, 反虚拟机, 多人体追踪, 密码窃取, 恶意软件分析, 文件化攻击, 注册表检测