ChainScript:把C2藏进区块链合约的Node.jsRAT

admin 2026-09-23 05:48:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: ChainScript是一款利用Polygon链上智能合约动态获取C2地址的Node.jsRAT,通过ClickFix社工传播,不连固定C2,攻击者改合约即可整体迁移基础设施,域名黑名单失效。检测应聚焦进程链形态与行为组合,如node.exe先eth_call再开WebSocket外连,并建议将node.exe异常外联规则纳入EDR基线检测清单。 综合评分: 85 文章分类: 恶意软件,红队,安全运营,威胁情报,应急响应


ChainScript:把C2藏进区块链合约的Node.js RAT

红队安全圈 红队安全圈

红队安全圈

2026年9月22日 08:00 重庆

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

新出一条 Node.js RAT:不连固定 C2,每次向 Polygon 链上合约发 eth_call 拿控制端地址,攻击方改合约就能整体换防,恶意软件一个字节不动。域名黑名单对它彻底失效,这篇拆它的链路和检测思路。

01  引言

一个新的 Node.js RAT 正借 ClickFix 社工话术扩散:伪装成 Spotify、Zoom、Teams 安装包,落地后不连固定 C2,而是每次向 Polygon 链上的智能合约发 eth_call 查询当前控制端地址——攻击方只要改合约内容就能整体迁移基础设施,恶意软件本体一个字节都不用动。这就是 EtherHiding 技术的实战化,域名黑名单和 IP 情报对它基本失效。

02  感染链:ClickFix 到 Node 运行时

入口是经典的 ClickFix:受害者被诱导在运行框粘贴执行一条 msiexec 命令,从 api-configuard[.]com 的 capher.php 端点带 token 拉下一个恶意 MSI。

安装包 ComponentTask33-4d14e6ac.msi 伪装成 Spotify AB 的软件。它自带一个完整的 Node.js 运行时——这一点很关键,目标机器不需要装 Node,环境完全自包含。MSI 配置全程跑在用户态,不需要管理员权限,也就不会触发 UAC。

执行链:隐藏 PowerShell 拉起 ._scatter.ps1,wscript.exe 执行 ._agent.vbs,最后启动捆绑的 node.exe 加载核心代理 app\src\index.js。

._scatter.ps1 把组件打散到一堆微软风格的用户目录:Node 运行时放 Libraries\QuickSystemSearch,主程序放 Themes\SettingsHostStandard58,配置放 INetCache\FilterManager,辅助工具放 Shell\RemoteTempPrimary。运行时、代码、配置、工具四样分家,全穿微软马甲。

持久化是双保险:先尝试建隐藏计划任务 ComponentTask33Agent(用户登录触发),失败就回退写 HKCU 的 Run 键。全程用户态,不碰系统目录。

03  核心:区块链上的 C2 解析器

这是 ChainScript 最值得研究的部分。它不内置 C2 地址,而是把 Polygon 链上的一个智能合约当作权威 DNS 用。

具体机制:代理向链 ID 137(Polygon 主网)的合约发送 eth_call 请求,函数选择器 0x4ab7874e。返回值 ABI 解码后是一个字符串,校验以 ws:// 或 wss:// 开头,缓存五分钟,然后作为 WebSocket 控制端的连接地址——配置文件里存的地址被链上返回值直接覆盖。

效果有多好?分析期间实测:合约先指向一个服务器,存活约 18 分钟;连接重置 12 分钟后,同一个合约返回了全新地址——后端整体轮换完成,已部署的恶意软件没有重新分发过。观察到的控制端端口集中在 3847,也有 3851 和 3854。

还有一个细节很说明问题:某个样本的合约在安装包编译前 23 秒才部署。这个窗口人工来不及操作,合约创建八成已经固化进恶意软件的构建流水线——基础设施即代码,字面意义。

04  功能面:完整 RAT 能力

连接建立后,app\src\index.js 承载几乎全部逻辑:CMD 与 PowerShell 交互式 shell、文件浏览与传输、桌面截图(由 .NET 辅助程序执行)、载荷投递、任意 JavaScript 执行、自更新和清理。

钱包侦察单独说一下:它会枚举目标机器装了哪些加密钱包、装在哪,但没有专门的种子词或私钥窃取代码。不过考虑到它已经有完整 shell 权限,这个区别没什么实际意义——想偷的时候一条命令的事。

同一套代码换了三件马甲:Spotify、Zoom Workplace、Microsoft Teams 三个 MSI 版本,包名和落盘布局略有差异,核心代理完全一致。两个已知构建甚至复用同一个 connect-delay-state.json 结构——记录 10 到 30 秒随机首次连接延迟,沙箱实测 24540 毫秒,与设计完全吻合。

05  检测思路:盯行为别盯地址

EtherHiding 直接改写了检测逻辑。传统打法是收集 C2 域名和 IP 做黑名单,但 ChainScript 的地址五分钟一换、合约一改全体换防,IP 情报的有效期短到没有操作价值。

真正稳定的是两类东西。一是进程链形态:msiexec 拉起 wscript、wscript 启动 VBScript、node.exe 跑 app\src\index.js——这条链是代码结构决定的,攻击者改基础设施改不掉它。对这条序列开告警,误报率低且长期有效。

二是行为组合。单独看,node.exe 发起区块链 RPC 请求不稀奇(Web3 开发者满地都是),node.exe 开 WebSocket 也不稀奇。但 node.exe 先做 eth_call 紧接着开 WebSocket 外连,这个组合就是强指标。

持久化位点:计划任务 ComponentTask33Agent、HKCU Run 键同名值、%LOCALAPPDATA% 下一系列微软命名的伪装目录。

06  红队视角

ChainScript 代表的趋势比恶意软件本身重要:Node.js 加区块链 C2 发现已经不是孤例——Tsundere、EtherRAT 等家族都在用同一配方。把基础设施从恶意软件里剥离出去,正在从技巧变成设计选择。

对红队,EtherHiding 思路有直接参考价值:链上合约是免费的、匿名的、永不下线的 C2 解析器,封锁面趋近于零。防守侧的应对只能转向行为与进程链检测,这反过来要求终端侧的进程遥测质量——没有 EDR 遥测的环境面对这类家族基本是盲的。给客户做评估时,node.exe 异常外联这类行为规则应该进基线检测清单。

07  IOC 与参考

合约与基础设施

合约 0xf9099d0d…FD4DDbCF4

  (Polygon chain 137)

选择器 0x4ab7874e

端口 3847 / 3851 / 3854

域名 api-configuard[.]com

文件与持久化

ComponentTask33-*.msi

UpdateDigital-*.msi

._agent.vbs / ._scatter.ps1

app\src\index.js

connect-delay-state.json

任务 ComponentTask33Agent

https://blackpointcyber.com/blog/chainscript-tracing-a-nodejs-rat-across-the-blockchain/

ChainScript: the RAT that hides its command server inside a blockchain contract

说明:Blackpoint 原始分析报告与安全媒体报道。

如果文章对您有收获,欢迎关注、点赞、推荐、转发。

— END —


免责声明:

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

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

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

本文转载自:红队安全圈 红队安全圈 红队安全圈《ChainScript:把C2藏进区块链合约的Node.js RAT》

工具|EvidenceForge 网络安全文章

工具|EvidenceForge

文章总结: EvidenceForge是Cisco-Talos开发的高可信度合成网络安全日志生成工具,支持多源证据生成、跨平台SMB2/3活动、可重复大规模生成
评论:0   参与:  0