Blackpoint 的 Adversary Pursuit Group(APG)披露了一个此前未被记录的 Node.js 远控木马 ChainScript。它通过 ClickFix 钓鱼诱导用户自行运行恶意安装包,并把命令控制(C2)服务器地址藏进 Polygon 区块链的智能合约,使攻击者能在不更新木马本体的前提下随时切换后端基础设施。
事件概述
攻击从 ClickFix 式诱饵开始:受害者在伪造页面引导下,用系统自带的 msiexec.exe 运行名为 ComponentTask33-4d14e6ac.msi 的安装包,该包伪装成 Spotify 客户端。执行后,安装包会在用户目录下释放自带的 Node.js 运行时与 JavaScript 代理,再通过隐藏的 PowerShell 与 VBScript 阶段启动。同一套代码还以 UpdateDigital、HostShared、OrchidViolet66 等构建名,伪装成 Zoom Workplace、Microsoft Teams 分发。整个过程不需要管理员权限。
技术细节
ChainScript 采用 EtherHiding 思路解析 C2 地址。Blackpoint 报告指出,被分析的样本查询链 ID 137 上地址为 0xf9099d0d747368cce8C10226CC9AF2bFD4DDbCF4 的合约,携带函数选择器 0x4ab7874e 发出 eth_call 请求,ABI 解码返回字符串后校验其是否以 ws:// 或 wss:// 开头,结果缓存五分钟,随后用它覆盖配置中写死的面板地址。
分析期间,该合约先把代理指向一台服务器,维持约 18 分钟心跳;连接重置 12 分钟后,同一个合约返回了完全不同的地址。有独立研究者发现,某个样本对应的合约在安装包编译前 23 秒才部署,说明合约创建已并入恶意软件的构建流水线,而非人工操作。持久化方面,木马通过计划任务建立用户级自启,并以注册表 Run 键做兜底。可用命令包括 CMD 与 PowerShell 交互式会话、文件上传下载、截屏、投放后续载荷、远程执行 JavaScript、枚举桌面端与浏览器扩展里的加密货币钱包,以及自我更新与清除持久化。
影响评估
木马本身没有 CVE 编号,但危害等级偏高:C2 解析与木马功能分离后,基于固定域名或 IP 的封禁规则失效,封一台换一台,基础设施处置难度显著上升。攻击目标以 Windows 用户为主,伪装对象是 Spotify、Zoom、Teams 这类装机率极高的办公与娱乐软件。钱包枚举虽只停留于侦察层面,未实现助记词窃取代码,但木马已具备完整交互式 Shell,实际危害等同于主机完全失守。
修复建议
- 只从官方渠道获取软件,拒绝按网页提示把命令粘贴到运行对话框或终端。
- 用 EDR 监控 msiexec.exe 的异常父进程链,以及 %LOCALAPPDATA% 下伪微软命名目录中 Node.js 运行时与 JavaScript 文件的释放行为。
- 检查计划任务与注册表 Run 键中的异常条目,重点排查以 ComponentTask33、UpdateDigital、HostShared、OrchidViolet66 命名的项。
- 在网络侧阻断已披露的智能合约解析出的 ws:// 与 wss:// 地址,并对终端到公链节点的异常 HTTP 出站请求建立告警。