六个npm包遭恶意劫持,攻击者借以太坊藏指令

六款npm包曝出隐蔽后门,利用以太坊动态下发控制指令

Sonatype研究实验室披露,近期检测到六个npm包存在恶意行为,其核心特征是通过攻击者的以太坊钱包地址获取远程命令服务器信息。这些包中包含多个广受信赖的开源库,已被攻击者非法接管并注入恶意加载器。所有使用相关版本的用户应立即卸载,并排查是否已执行后续攻击代码。

三款主流库账户遭入侵,版本被投毒发布

研究人员Adam Reynolds指出,这六项异常分为两类。第一类涉及真实项目账户被攻陷,攻击者借此发布了带有后门的更新版本。受影响的包括@kolbo/mcp@1.57.1、agentgui@1.0.1127和godot-kit@1.0.1786316795。恶意代码被嵌入原有文件末尾,确保原始功能不受影响,从而降低被察觉风险。

三款专为攻击设计的伪装型恶意包

其余三个包为独立构建的恶意程序,分别为envpack-conf@1.0.1、postcss-initial-provider@3.0.4与tailwindcss-motion-advanced@1.0.1。前者提供配置辅助工具,后者为可用的PostCSS插件,最后一个则将加载器隐藏于压缩后的工具脚本内,实现深度潜伏。

链上指令传递机制:以太坊作为隐蔽信道

所有六个样本均共享同一负载结构及指定以太坊钱包。当用户运行代码时,加载器会查询该钱包最近一次出账交易的接收方字段,从中提取字节数据。这些数据经转换后生成两个IPv4地址,分别作为主备命令与控制服务器。该交易仅用于存储指令,不具经济意义,亦不触达实际资金。

为提升可靠性,加载器会并行访问多个以太坊RPC节点,并在失败时切换至Blockscout API。一旦定位到目标,它将尝试在/0x/cls与/0x/ls路径发起请求。若标准GET无响应,则启用X-Payload-B64头部进行数据回传。解码后的内容将通过Base64与XOR算法还原,最终在当前或独立的Node.js进程中执行。

NullReceiver:更隐蔽的链上指令检索变种

此类技术早前由OpenSourceMalware在两个被植入后门的Tailwind CSS克隆项目(bianira-ui与fluid-type-ui)中识别,命名为NullReceiver。Sonatype确认其与朝鲜关联的Contagious Interview行动一致,该行动被认为由Lazarus集团主导。研究团队验证了对应以太坊钱包的一致性。

相较于早期的EtherHiding技术,NullReceiver解决了关键缺陷。后者将秘密信息写入交易数据字段,并固定发送至公开销毁地址,形成可追踪的监控锚点。而NullReceiver不产生交易痕迹,也不重复使用目标地址。在已有分析样本中,解码结果为166.88.134.62,末位字节拼出“helloipbot!!”,作为攻击者身份标识。

2025年9月,ReversingLabs曾报告colortoolv2与mimelib2两款npm下载器,其恶意链接亦藏于以太坊智能合约中,与Stargazer's Ghost Network活动有关联。

应对建议:立即移除风险包并开展系统审计

Sonatype表示,相关攻击活动仍在持续调查中。受影响的开发人员应立即从项目中移除已标记的npm包,并深入检查是否存在第二阶段恶意负载被执行的迹象,防止进一步横向渗透。