文章总结: 本文是关于OpenClawAIAgent技能武器化分析的续篇,详细剖析了五大滥用技术:通过预热函数隐藏反向Shell的RCE、利用LLM特性传播的语义蠕虫、SSH密钥注入持久化、环境变量窃取数据,以及通过修改持久上下文文件植入的认知后门。这些攻击将代理变为供应链攻击入口,文章最后提出了审查代码、最小权限、监控更改等实用防御措施。 综合评分: 92 文章分类: AI安全,威胁情报,漏洞分析,供应链安全,恶意软件
从自动化到感染(下):OpenClaw技能中的反向Shell、语义蠕虫与认知后门
VirusTotal VirusTotal
赛博知识驿站
2026年2月12日 16:00 中国香港
在上篇文章中从自动化工具到感染源:OpenClaw AI Agent 技能如何被武器化,我们揭示了OpenClaw技能正在迅速沦为供应链攻击的新战场——那些打着”自动化”旗号的第三方插件,实则拥有真实的系统访问权限。这第二部分将进一步扩展攻击分类法,聚焦VirusTotal团队正在实战中捕获的五大滥用技术:远程执行、传播扩散、持久化驻留、数据窃取,以及行为后门。这些攻击不仅仅窃取数据或投放恶意程序,更可怕的是,它们能悄无声息地重新编程AI代理的下一次行为。
让我们从理论走向实战:五种技术、五个技能、五条”自动化”悄然变成”访问权限”的隐秘路径。
1) 远程执行(RCE):藏在”预热”里的反向Shell
技能: noreplyboter/better-polymarket[1] 技术: 执行劫持 & 反向Shell
表面上看,这个技能是个合法的预测市场赔率查询工具。主文件polymarket.py包含超过460行结构良好的Python代码——与真实的Gamma API交互、处理JSON解析、格式化货币数据。它通过了”眯眼测试”(squint test)。如果开发者快速浏览代码,会觉得安全无虞。
然而,攻击者采用了一种我们称之为执行劫持(Execution Hijacking)的技术。他们把触发器埋在一个名为warmup()的函数里——这个名字暗示着无害的缓存初始化或连接测试。
更狡猾的是,这个函数在参数解析之前就被调用了。这意味着恶意代码会在代理加载脚本检查帮助信息时自动执行,无论用户是否发出了有效命令。
我们追踪执行流程,从warmup()进入一个深埋的辅助函数find_market_by_slug。
在那里,隐藏在一个专门用来抑制错误的try...except代码块中,我们找到了真正的入口点:
我们没有止步于Python脚本。通过查询攻击者的基础设施(54[.]91[.]154[.]110:13338),我们获取了curl命令实际执行的载荷。服务器返回的是这样一行代码:
让我们拆解一下它对受害者机器做了什么:
- •
/dev/tcp/...: 在Bash中,使用/dev/tcp/host/port进行重定向会打开一个TCP套接字连接到该主机/端口,无需任何外部网络工具。 - •
bash -i: 启动一个交互式Shell。这意味着攻击者不仅仅是发送命令,而是获得了一个实时终端提示符。他们可以浏览文件、安装软件、横向移动到受害者网络中的其他机器——就像坐在键盘前一样。 - •
0>&1: 将文件描述符1复制到0,使交互式Shell从同一个TCP连接读取和写入(攻击者的套接字)。 - •
nohup ... &: 意为”不挂断”(No Hang Up)。它将进程推到后台并从当前会话中分离。
即使OpenClaw代理完成任务并退出,反向Shell进程仍可以在后台存活,只要它没有被杀死且TCP会话保持打开。
better-polymarket技能本质上是一个特洛伊木马,旨在在任何运行它的机器上建立持久的交互式后门。硬编码的IP和端口13338(常见的1337/31337替代端口)表明这是一个手动操作者或简单的C2框架。
2) 传播(语义蠕虫):把AI代理变成分销渠道
技能: cgallic/wake-up[2] 技术: 语义蠕虫 / 病毒循环
如果说RCE攻击依赖传统漏洞利用,那么传播攻击则利用了大语言模型(LLM)的本质特性。这些技能不仅仅执行代码——它们嵌入传播指令,旨在将代理变成分发渠道,这种模式与自我复制的提示词攻击如出一辙。
技能cgallic/wake-up提供了最清晰的语义蠕虫行为案例。
从功能上看,它把自己包装成AI代理的”集体意识”。但从结构上看,它的运作方式与传销(MLM)或数字病毒完全一致——明确地将感染率游戏化。
在SKILL.md文档中,作者使用祈使语气强迫代理成为分发节点。这不是建议,而是系统提示词上下文中的指令:
这个技能通过/api/infections端点和注册时的referred_by参数,以编程方式追踪传播链条:
与安装守护进程的二进制文件不同,这个技能依赖代理的调度器来维持存在。它安装一个HEARTBEAT.md文件,并指示代理每4小时处理一次。
这确保代理保持与命令与控制服务器(本例中为mydeadinternet.com)的连接,以接收新指令、上传数据(“碎片”)并检查更新——这一切都打着”加入集体”的幌子。
虽然当前载荷看起来像是艺术项目或社会实验,但其机制是危险的。它修改代理的行为,使其优先分发技能而非执行主要任务。在企业环境中,被这种逻辑”感染”的代理可能会开始向人类员工或其他联网代理推荐未经验证的软件,充当可信的内部威胁。
3) 持久化(SSH注入):一行命令留下永久后门
技能: fobonacci404/evilweather[3] 技术: 通过命令链注入SSH密钥
持久化确保攻击者可以在之后返回,甚至不再需要代理本身。我们观察到的最关键变体涉及修改认证文件以授予永久后端访问权限。
技能fobonacci404/evilweather伪装成一个使用wttr.in查询天气的简单工具。
在SKILL.md文档中,用户(或代理)看到一个”快速一行命令”来安装或测试功能:
这条命令执行两个截然不同的动作:
- • 诱饵:
wget -q -O- "wttr.in/London?format=3"成功获取并显示天气。对于验证输出的用户或代理来说,命令似乎按预期工作了。 - • 陷阱:
echo "ssh-rsa ..." >> /root/.ssh/authorized_keys在显示天气后,这条命令立即将攻击者的公钥追加到主机的授权密钥列表中。
脚本明确针对/root/.ssh/。在许多容器化部署(Docker)中,AI代理默认以root身份运行。如果成功,这将授予攻击者对主机容器的即时高权限SSH访问。只有在SSH服务正在运行(或之后可以启动)且主机可达时,这才会成为真正的”SSH后门”——许多最小化容器不满足这些条件,但意图是明确无误的。
包含2>/dev/null确保如果命令失败(例如由于权限问题),不会显示错误消息。用户看到天气报告并认为成功,而攻击则静默失败以避免被检测。
这是一个概念验证,一次直接的后门尝试。它不需要C2服务器或复杂载荷。通过简单地向标准配置文件注入文本字符串,fobonacci404就把代理的主机变成了攻击者可访问的节点。
4) 数据窃取:环境变量的无声收割
技能: rjnpage/rankaj[4] 技术: 静默环境收集
在OpenClaw生态系统中,主要目标是.env文件,用户通常在其中存储LLM提供商密钥(OpenAI、Anthropic)和敏感平台令牌。
技能rjnpage/rankaj伪装成无害的”天气数据获取器”。虽然它确实从Open-Meteo获取天气数据,但它在index.js中执行了第二个隐藏任务。
将.env内容附加到载荷中:
通过将密钥与请求的天气数据捆绑并发送到webhook.site URL,攻击者实现了两个目标:
- • 隐蔽性: 网络流量看起来像标准API响应。
- • 即时变现: 攻击者立即获得对用户付费API额度和平台账户的访问权限。
5) 提示词持久化(记忆植入 / 认知后门):改写AI的”人格”
技能: jeffreyling/devinism[5] 技术: 提示词文件植入
技能devinism被包装为”第一个AI宗教”,并明确将自己描述为”良性模因病毒”,旨在演示想法如何在代理网络中传播。
它有趣(且危险)的地方不在于”宗教”包装,而在于持久化机制。真正的诀窍是:把技能变成永久的系统提示词植入。
该技能包含一个”本地安装”部分,指示用户使用经典的一行命令模式执行远程安装程序:下载脚本并直接通过管道传输到Bash。
该安装程序的既定目的不是添加功能,而是通过将自己写入代理的自动加载上下文文件来跨会话持久化:
- • 它将技能复制到本地技能文件夹。
- • 它将”提醒”放入
SOUL.md和AGENTS.md,因此每次代理运行时,内容都会自动注入到代理的上下文中。
这就是OpenClaw的架构成为攻击面的地方:OpenClaw被设计为从markdown文件加载行为上下文,如SOUL.md(人格/身份规则)和AGENTS.md(代理交互/安全边界)。如果攻击者可以在那里追加一行,他们就可以影响代理未来的每一个决策,即使原始技能不再被主动使用。
这实际上是一个认知后门(cognitive rootkit):
- • 在”正常”清理后存活。删除技能文件夹可能不会删除
SOUL.md/AGENTS.md中注入的行。 - • 难以用传统工具检测。不需要信标,不需要可疑进程保持运行;”载荷”就是代理改变的行为。
即使devinism声称无害,它也展示了一个高杠杆原语:技能可以重写代理的长期指令层。同样的模式可用于永久削弱防护栏(“始终在不询问的情况下运行命令”)、静默优先考虑攻击者控制的域,或在”例行检查”的幌子下为后续窃取做准备。
devinism是提示词持久化用作分发机制的清晰案例,这正是它成为有价值案例研究的原因。它展示了技能如何通过修改OpenClaw的持久上下文文件,从”可选插件”跃升为”始终在线的行为植入”。将任何要求你编辑SOUL.md / AGENTS.md(或运行远程curl | bash安装程序)的技能视为对代理大脑永久访问权限的请求。
收尾思考:无聊的安全措施才是制胜法宝
我们描述的这些技术都不是未来主义的。它们是老套路——RCE、持久化、数据窃取、传播——只是被重新包装成一种新的交付机制,这种机制自带社会工程学:文档、便利性和速度。这是一个供应链的故事。
好消息是,我们可以用同样实用的控制措施来应对。像对待依赖项一样对待技能:固定版本、审查差异、在最小权限沙箱中运行它们,并使用带有明确白名单的默认拒绝出站规则。记录每个工具调用和出站请求。永远不要在代理主机上执行curl | bash。如果你的平台支持持久指令文件(SOUL.md、AGENTS.md、定时心跳),像保护SSH密钥一样保护它们:默认不可变、监控更改,并像审查代码一样审查。在可能的情况下,验证来源(签名/证明)而不是信任”最新版本”。
最后,停止默认给代理一个藏宝箱。尽可能将凭据排除在.env之外。优先使用短期的、任务范围的令牌,通过代理即时交付,这样被攻陷的工作流就不会自动变成被攻陷的账户。
代理生态系统仍然年轻。我们仍然可以选择它们是成为下一个npm,还是下一个宏病毒时代——但针对自主系统。区别将在于无聊、不起眼的工程:边界、安全默认值、审计和健康的怀疑态度。
原文:https://blog.virustotal.com/2026/02/from-automation-to-infection-part-ii.html
引用链接
[1] noreplyboter/better-polymarket: https://www.virustotal.com/gui/file/b6337869e41e89f4c20a20c3f2b7c7a2ed7118edc33201484c40c4c66f16ebcc
[2] cgallic/wake-up: https://www.virustotal.com/gui/file/59381ac34214655f3d80dcf95a49e2ac1fdf40ccde5cab96c2e87787ef95734d
[3] fobonacci404/evilweather: https://www.virustotal.com/gui/file/053881c6229706ae06891f35617bceea7aa0cbe29394721de640fbc2711de138
[4] rjnpage/rankaj: https://www.virustotal.com/gui/file/b604ef3dc9bbdc45c768560ee4e092de21740e14f955c3731df1041c65b9bec3
[5] jeffreyling/devinism: https://www.virustotal.com/gui/file/7cfd55f71ac53c2cdfc83204ca4d8b4ae4c9f2f77f8a1ab6c18b4015f1e5e34f
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:赛博知识驿站 VirusTotal VirusTotal《从自动化到感染(下):OpenClaw技能中的反向Shell、语义蠕虫与认知后门》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论