恶意 npm 包修改本地 ‘ethers’ 库以发起反向 Shell 攻击

网络安全研究人员在 npm 注册表上发现了两个恶意软件包,它们旨在感染本地安装的另一个软件包,这凸显了针对开源生态系统的软件供应链攻击的持续演变。

这些软件包分别是 ethers-provider2 和 ethers-providerz。前者自 2025 年 3 月 15 日发布以来已被下载 73 次。第二个软件包可能被恶意软件作者自己移除,因此没有吸引任何下载。

“它们是简单的下载程序,恶意载荷隐藏得非常巧妙,”ReversingLabs 研究员 Lucija Valentić 在一份与《黑客新闻》分享的报告中表示。

“有趣的部分在于它们的第二阶段,会‘修补’本地安装的合法 npm 软件包 ethers,用包含恶意载荷的新文件替换。该修补后的文件最终会提供反向 Shell。”

这一发展标志着威胁者战术的新升级,因为即使卸载了恶意软件包,也不会清除受感染机器上的恶意功能,因为更改位于流行的库中。此外,如果用户在 ethers-provider2 仍存在于系统中时卸载了 ethers 软件包,当稍后再次安装该软件包时,存在重新感染的风险。

ReversingLabs 对 ethers-provider2 的分析显示,它不过是广泛使用的 ssh2 npm 软件包的特洛伊版本,在 install.js 中包含恶意载荷,以从远程服务器(“5.199.166[.]1:31337/install”)检索第二阶段恶意软件,将其写入临时文件并运行。

执行后,临时文件会立即从系统中删除,试图避免留下任何痕迹。第二阶段载荷则开始无限循环,检查 npm 软件包 ethers 是否本地安装。

如果该软件包已经存在或新安装,它会通过替换名为 “provider-jsonrpc.js” 的文件之一的伪造版本采取行动,该版本包含额外代码,从同一服务器获取并执行第三阶段。新下载的载荷作为反向 Shell,通过 SSH 连接到威胁者的服务器。

“这意味着,使用此客户端建立的连接在从服务器收到自定义消息后会变成反向 Shell,”Valentić 表示。“即使将软件包 ethers-provider2 从受感染的系统中移除,在某些情况下客户端仍会被使用,为攻击者提供一定程度的持久性。”

在此阶段值得注意的是,npm 注册表上的官方 ethers 软件包并未被破坏,因为恶意修改是在安装后在本地进行的。

第二个软件包 ethers-providerz 也表现出类似的行为,试图修改本地安装的 npm 软件包 “@ethersproject/providers” 相关的文件。该库针对的确切 npm 软件包未知,但源代码引用表明可能是 loader.js。

这些发现揭示了威胁者在开发者系统中提供和持久化恶意软件的新方式,这使得在下载和使用之前仔细审查来自开源存储库的软件包变得至关重要。

“尽管下载量低,但这些软件包功能强大且恶意,”Valentić 表示。“如果它们的使命成功,它们将破坏本地安装的软件包 ethers,即使该软件包被移除,也能在受感染的系统上保持持久性。”


消息来源:The Hacker News; 

本文由 HackerNews.cc 翻译整理,封面来源于网络;  

© 版权声明
THE END
你的支持是我们在网空安全路上的驱动力!
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容