警惕!AI组件ComfyUI易被黑产盯上

2025-03-06 18:04:4772人阅读

随着近几年大模型的迅猛发展,以及安全对抗技术的持续迭代升级,黑产团伙逐渐将攻击目标从传统服务转移到了AI相关服务。



近日,百度安全团队捕获到了一起针对大模型相关组件ComfyUI的攻击事件,经过深入分析,该事件背后团伙已实际针对国内不少公网ComfyUI进行了入侵。本文将事件调查细节同步,以期促进整个AI行业威胁态势感知的进步。



百度安全在此建议大家及时排查,同时也将持续进行大模型基础设施的安全威胁狩猎,分享团队在大模型浪潮下的威胁感知与攻防技术思考,与整个行业共同建设大模型生态安全。




概述




关于ComfyUI


ComfyUI是一款基于节点流程的Stable Diffusion操作界面,专为图像生成任务设计。‌它通过将深度学习模型的工作流程简化为图形化节点,使用户操作更加直观和易于理解。


ComfyUI提供了高度的可视化和扩展性,用户可以通过拖放操作来构建和调整图像生成流程,无需编写代码。‌作为大模型图像生成领域的最热门框架之一,其在GitHub斩获了接近7W Star,备受开发者喜爱,根据网络空间测绘数据,全网共有近2700例ComfyUI服务,其中不乏无需密码直接访问的案例。




ComfyUI后台支持加载用户指定的模型文件,同时用户可以方便地管理模型。但给用户带来便利的同时,也存在一些安全隐患。

1.png


百度安全在2月21日捕获的攻击事件中发现,攻击者利用ComfyUI用户错误配置问题,在无需认证的情况下进入到ComfyUI后台,同时利用后台模型加载功能安装攻击者提前上传在Hugging Face的投毒模型文件,以便利用模型加载时的pickle反序列化逻辑,控制受害者机器,进一步渗透目标内网。下文将深入展开分析。






以下是对该事件的详细分析:
01




投毒活动流程

本次事件攻击者主要利用了ComfyUI 控制台无身份鉴权的配置错误问题进入控制后台,并通过ComfyUI-Manager插件中的远程下载功能从Hugging Face及其镜像站等相关模型仓库拉取投毒模型(.pth后缀的文件),使得开发者在使用ComfyUI加载投毒模型时会因自身的pickle反序列化逻辑触发恶意的Loader,进而执行恶意Bash脚本,脚本会从攻击者的服务器上拉取C2木马进行远程控制,C2域名为cloudflare.com提供给普通用户使用的隧道服务(用户可以无需外部域名和ip就可以把内网的服务映射到外部),攻击者滥用该服务,达成隐蔽控制的目的。


2.png

据CVE官方披露,ComfyUI历史存在多种漏洞类型,包括:任意文件读取漏洞、远程代码执行漏洞、存储XSS漏洞等。相关漏洞已分配如下CVE编号:CVE-2024-10099、CVE-2024-21574、CVE-2024-21575、CVE-2024-21576、CVE-2024-21577。本次事件主要利用的ComfyUI默认无身份鉴权机制的"特性",从而直接访问ComfyUI后台。但该“特性”官方并不认为是安全漏洞,归因为用户错误配置,在使用上官方始终认为使用者应自行注意,不要将ComfyUI对公网暴露或应该通过沙箱环境运行,以确保ComfyUI安全


(参考https://github.com/comfyanonymous/ComfyUI/discussions/5165)

02

样本分析

未授权ComfyUI & ComfyUI-Manager 插件后台访问


ComfyUI-Manager插件可提供模型管理功能(远端下载、模型使用管理等),ComfyUI-Manager界面功能如下:


3.png


攻击者进入ComfyUI后台后,首先利用该插件从https://0x0.st/8TX8.pth下载了恶意的模型文件,并加载。

4.png

其中该域名0x0.st为公开匿名文件分享的服务,任意人都可以上传文件到该网站,供其他人下载。

5.png


在上面加载恶意的pth模型文件后,攻击者的木马并没有成功上线。几个小时后攻击者再次从https://hf-mirror.com/DSfsdasgaa/shell/blob/main/kcp.pth下载恶意pth文件并加载。

6.png

该恶意模型下载地址为https://huggingface.co/DSfsdasgaa/shell/tree/main的镜像文件地址。该大模型仓库同时还存在ws.pth、wsc.pth

7.png

针对该 Hugging face 上的投毒用户 DSfsdasgaa 进行分析,该用户仅发布了这一个恶意模型库,无其他行为痕迹,且账号信息中未写任何描述,非常符合一个异常用户的特征。

8.png


8TX8.pth、kcp.pth、wsc.pth等模型文件分析

大模型里的pth是包含了模型参数和状态的pickle文件,pickle文件为python对象序列化后的文件。当大模型加载模型文件时,模型加载器会对文件进行反序列化操作,若该文件为恶意的pth文件,就会触发其中预先设置的恶意代码,进而导致命令执行漏洞。本次攻击中,攻击者主要使用了8TX8.pth、kcp.pth,这两个恶意的模型文件,都是类似功能,我们分析其中一个8TX8.pth。

9.png


通过opcode解析:

10.png



我们可以看出该文件被反序列化加载后会通过system执行以下命令。

11.png

上述命令为从 194.34.254.219:10404/slk 下载sh脚本,进行执行。


其他pth文件

  • ws.pth文件对应的执行命令为:
12.png

+1.png


  • wsc.pth: 该文件执行的内容和slk样本脚本内容一致
    13.png


  • kcp.pth


14.png

15.png

slk分析

上面利用恶意的pth文件所执行命令都是下载的一个sh脚本,其中拓展关联的ws.pth,在分析时已经失效,未获取后续样本。


  • 8TX8.pth(194.34.254.219:10404/slk)

从0x0.st/8TX8.pth下载的8TX8下载的slk文件,远端下载地址194.34.254.219:10404/slk,slk文件的bash脚本内容:

16.png


该sh脚本为vshell默认生成的上线脚本, 脚本的主要功能如下:

  • 从当前会话 SHELL 中加载 PATH 环境变量获取可执行文件路径
  • 通过 touch 指令创建 /usr/local/bin/usr/libexec/usr/bin三个目录的可写入情况
  • 根据电脑32/64位情况从http://194.34.254.219:10404/?h=194.34.254.219&p=10404&t=kcp&a=l64&stage=false&encode=false地址下载文件并命名为c8dfdc4akcp执行。


但因为网络环境原因,后续攻击者无法成功下载该文件,导致了攻击者进行了多次的恶意利用,但最终由于网络环境原因,都未成功进行后续攻击。


  • kcp.pth、ws.pth(194.34.254.219:10410/slk)

从Hugging face下载pth里面对应的远程命令为,远端下载地址194.34.254.219:10410/slk,slk文件主要是一个bash脚本,内容如下:


17.png

该脚本是攻击者根据vshell默认生成的上线脚本中,把其中的原vshell获取木马的下载地址,替换为攻击者放在huggungface上的vshell木马。该sh 脚本的主要功能如下:

  • 从当前会话 SHELL 中加载 PATH 环境变量获取可执行文件路径
  • 通过 touch 指令创建 /usr/local/bin/usr/libexec/usr/bin三个目录的可写入情况
  • 根据电脑32/64位情况从 huggingface.co/DSfsdasgaa/shell/resolve/main/ws_linux_amd64地址下载 ws_linux_amd64文件并执行。


但因为网络环境原因,后续攻击者无法成功下载该文件,导致了攻击者进行了多次的恶意利用,但最终由于网络环境原因,都未成功进行后续攻击。


ws_linux_amd64样本分析

针对上述C2木马进行分析,简要信息如下:

+2.png

ws_linux_amd64,该可执行文件是经过了upx壳压缩,脱壳后为golang编写的程序。

18.png

同时该golang样本把自身的部分golang的符号进行了抹除,来干扰分析人员进行分析。根据内存中dump出c2配置,可以确定该样本为曾经国内公开c2平台vshell(https://github.com/veo/vshell,该项目目前已删库)所生成的样本。

19.png

从木马的配置文件可以看出该样本链接的远程c2地址为:molecular-mazda-forests-shop.trycloudflare.com:80,通信协议为websocket。该c2域名为cloudflare.com提供普通用户使用的隧道服务,用户可以无需外部域名和ip就可以把内网的服务映射到外部。攻击者滥用该服务,搭建c2服务器来进行远程控制。


截止分析时,该c2地址已失效,其完整的ws链接地址为:ws://molecular-mazda-forests-shop.trycloudflare.com:80/w


03

vshell介绍


vshell 是一款利用 Golang 语言研发的和 Cobalt Strike 相同功能的 C2 远程控制平台、木马下发平台。

20.png

04

处置建议


如果你正在使用ComfyUI且可能已经被投毒控制,建议尽快采取以下处置措施:
1、排查 ComfyUI 默认端口 8188 是否存在对互联网直接暴露且可未授权访问的情况。

2、排查安装有该后门模型的主机,及时做好木马清理。

3、断开与攻击源的连接:立即断开与可疑IOC的连接,以防止攻击者继续操纵和控制终端;然后需要立即删除相关恶意模型&木马文件并清理系统。

4、修改密码和加强身份验证:攻击者可能会利用该工具获取了终端上保存的用户名和密码等敏感信息,因此,需要及时修改其密码,并加强身份验证措施,例如使用双重认证等措施。

5、加强软件下载的安全管理:建议需要加强对开源工具安全的管理和控制,例如在下载前注意审查该开源工具的源码、检查其依赖项、建立安全审查和评估机制等,以减少投毒事件的风险。


 同时,对于使用ComfyUI组件的用户,我们建议从以下几个方面进行安全加固,以避免受到其它可能的攻击:
1、启用身份验证:使用ComfyUI插件开启身份验证:https://github.com/liusida/ComfyUI-Login

2、配置访问控制:设置‌IP白名单或端口访问限制,避免在公网上直接暴露ComfyUI服务端口。

3、定期更新版本:关注官方更新‌动态,定期更新ComfyUI服务版本


附录IOC

样本名及hash
ws_linux_amd64:0aa6f668e4a231d2b450f27edc0037513e9f1cbb308e923f79c393e9890d8a73
远程控制C2/加载器 IP
194.34.254.219
远程控制C2/加载器 域名
molecular-mazda-forests-shop.trycloudflare.com
恶意模型仓库
huggingface.co/DSfsdasgaa/shell
恶意模型文件
https://huggingface.co/DSfsdasgaa/shell/blob/main/kcp.pth
https://huggingface.co/DSfsdasgaa/shell/blob/main/ws.pth
https://huggingface.co/DSfsdasgaa/shell/blob/main/wsc.pth
https://0x0.st/8TX8.pth
恶意 loader 脚本
  194.34.254.219:10410/slk
194.34.254.219:10404/slk


0
现金券
0
兑换券
立即领取
领取成功