「AI渗透测试+AI红队实测」Decepticon:开源自主渗透Agent,XBOW跑分98%
原创
句芒安全实验室
句芒安全实验室
句芒安全实验室
2026年10月20日 16:19
上海
去阅读
它的 GitHub 自述第一句话是这么写的:「又一个 AI 黑客?我猜它跑个 nmap,然后写份报告。」这句自嘲被作者摆在最前面,是因为它想说:我不是那种东西。
这个项目叫 Decepticon(霸天虎),定位是「专业级自主红队 Agent」。它要走的是一条真实攻击链——侦察、利用、提权、横向移动、C2——像人一样打,而不是像扫描器一样过。
截至 10 月 19 日我核实时,它在 GitHub 上有 6329 星、1214 fork、2 个未关 issue,Apache-2.0 协议,最新 release v1.5.2(10 月 18 日发布),仓库今天还在推送。真正让它出圈的是 XBOW 那套公开靶场基准:104 道 Web 题,它过了 102 道,98.08%,在这个榜单上排第一。
这期把它拆开:它凭什么能自主、16 个 Agent 怎么分工、沙箱和网络边界怎么划、它自己写了哪些护栏,以及上手和避坑。
它是什么
一句话:LangGraph 多 Agent 驱动的自主红队系统。技术栈和形态:
- 编排层是 LangGraph Platform,Agent 生命周期、事件流、状态持久化都在这里;
- 所有 LLM 请求统一走 LiteLLM 代理,按凭证优先级建「主模型→备用模型」的降级链;
- 关系数据落 PostgreSQL,攻击图谱落 Neo4j;
- 全部命令在 Kali Linux 沙箱里跑,工具链是 nmap、sqlmap、Impacket、Metasploit、Nuclei,外加 Sliver C2;
- 一个命令起栈:
curl -fsSL https://decepticon.red/install | bash,然后decepticon onboard配模型、decepticon进终端。
它和「跑 nmap 写报告」的 demo 最大的差别在两点。第一,它追的是目标而不是清单:它读一份 OPPLAN(作战计划),顺着任何能打开的路走,会转向、会串联。第二,它的命令真的在持久 tmux 会话里执行——msfconsole、sliver-client、evil-winrm 这些工具是会掉进交互式提示符的,它做了提示符识别,所以工具进了 msf6 >、sliver > 之后,Agent 会继续往下发命令,而不是卡死。
16 个专职 Agent,按杀伤链分工
它的 Agent 是按攻击阶段排的,而且每接一个新目标就换一个全新上下文窗口——不让噪声和 token 在一条长链里越滚越多,发现落盘到 workspace/ 和知识图谱,不靠 Agent 的记忆。
- 编排:Decepticon 主控(读 OPPLAN、派目标、跟踪状态),Vulnresearch 漏洞研究编排,Soundwave 规划器(可选,只出文档不执行);
- 侦察:Recon(端口、服务、DNS、子域、OSINT);
- 利用与后渗透:Exploit(Web/AD 初始访问)、Post-Exploit(提权、横向、凭证收割、持久化,走 C2 会话);
- 领域专家:AD Operator(Kerberoasting、AS-REP、ADCS ESC1-ESC15、DCSync、BloodHound 路径)、Cloud Hunter(IAM 提权、S3 暴露、K8s RBAC 逃逸、元数据服务)、Contract Auditor(Solidity/EVM 审计)、Reverser(二进制逆向)、Analyst(源码审查、依赖 CVE)、Phisher(钓鱼/MFA 绕过令牌捕获)、Mobile Operator(Android/iOS)、Wireless Operator(Wi-Fi/BLE/Zigbee)、OSINT Operator(被动情报)、IoT Operator、ICS Operator(工控,默认只读)、Forensicator(DFIR)、Supply Chain Operator(依赖混淆/投毒/CI-CD)。
双网络架构:把攻击面和凭证隔开
它跑在两个 Docker 网络上,这是整个设计里最值得抄的一块:
- 管理网(decepticon-net):LiteLLM、PostgreSQL、LangGraph、Web 面板、Neo4j 知识图谱、BloodHound CE。这里放 LLM 网关、数据库和凭证;
- 作战网(sandbox-net):Kali 沙箱、Sliver C2、靶机。攻击工具只能在这里跑。
边界很硬:沙箱路由不到管理网的任何服务(LLM 代理、数据库、API、面板都不通);Agent 也连不到沙箱的 TCP 端口,唯一的通道是 Docker socket 上的 docker exec。换句话说,就算沙箱被反过来打穿,它也摸不到你的模型密钥和 API。
唯一跨网共享的是 Neo4j 知识图谱:沙箱往里写发现,管理网的 Agent 读回来做规划。作者特意说明它是「知识存储,不是特权服务」——凭证不流经它,沙箱也没法借它跳到 LLM 网关。
它自己写了哪些护栏
AI 安全号看工具,最该看的是这一层。它给每个 Agent 都装了一套固定的安全中间件:
- RoE 护栏:每次工具调用前先抽出目标、对照授权范围(Rules of Engagement)判断,并把判定追加进带链的审计日志
workspace/audit/roe-decisions.jsonl。作者写明:这层是「快速失败的命令解析门」,真正的范围边界在下层出站控制——沙箱默认开 nftables,enforce模式下想绕开要显式设DECEPTICON_EGRESS_DISABLE; - 不可信输出隔离:bash 标准输出、文件读取、知识图谱查询这些「攻击者能影响的内容」,会被包进
<UNTRUSTED_TOOL_OUTPUT>信封,防止里面的内容反过来改写 Agent 的指令; - 注入防护:对攻击者可控的输出(HTTP 响应体、服务 banner、文件读取)做拒绝名单包裹,去重、且不重复注入系统策略;
- 事件日志与预算:每次模型和工具调用都记结构化事件,按一次任务的花费上限拦截。
还有一层硬闸:engagement-context、roe-guardrail、untrusted-output、prompt-injection-shield、sandbox-notification、hitl-approval 这几个槽位被标成「安全关键」,插件想替换或关掉它们,必须先设环境变量 DECEPTICON_ALLOW_SAFETY_OVERRIDES=1,否则直接抛 SafetyOverrideViolation。这道门的用意写得很清楚:不让一个随手装上的插件悄悄把安全故事掏空。
一个细节值得单独说:高危动作的人工审批默认是关的(DECEPTICON_HITL__ENABLED 不设就跳过),作者的理由是「别让任务卡在那里等人」。这和前面那套默认开启的出站封锁是一组取舍——默认拦网络、默认不拦人。
漏洞研究流水线:五段状态只走知识图谱
它另有一条独立的漏洞研究流水线,五段:scanner(出带 CVE/CVSS 的候选)→ detector(出带置信度的发现和检测规则)→ verifier(确认,CRITICAL/HIGH 要求两种以上方法)→ patcher(出补丁或配置修复)→ exploiter(出可用的 PoC)。
这五段之间只通过知识图谱传状态,每一段都是全新上下文。图谱的节点是 Host、Service、Vulnerability、Credential、Account,边是 RUNS\_ON、AFFECTS、EXPLOITS、REQUIRES、USES、OWNS;plan_attack_chains() 用加权最短路生成排好序的多跳利用链,promote_chain() 把有希望的链提升进 OPPLAN。也就是说,「一条链怎么从服务走到主机、中间要几个前置」这件事,是算出来的,不是模型拍出来的。
它还有蓝队那一半
这是它和多数进攻框架不一样的地方。它内置一个 Blue Cell(蓝队单元):一个本地传感器观察打向你 Web 服务的请求和可选的应用日志,一个常驻的防守 Agent 去调查可疑事件、在 CLI 里和红队任务并排报事件。
要点是它的定位被写死了:它只观察和报告,不自动拦流量;Blue 的默认图谱里没有 shell、也没有处置工具;它的系统提示把 HTTP 和日志内容一律当成不可信证据。检测规则目前是通用的 Web 攻击指标和日志异常词,命中只生成「调查线索」——作者自己写明,一次规则命中「不能单独证明利用成功,也不等于覆盖了目标」。作者还留了一条未来线:把发现经「攻击→防守→验证」闭环转成防御改进。
上手与避坑
前置只要 Docker 和 Docker Compose v2,支持 macOS(Apple Silicon 和 Intel)、Linux、Windows。装完 decepticon onboard 配模型,默认拉起的是核心栈(LiteLLM、PostgreSQL、Neo4j、LangGraph、沙箱)加终端 CLI;专业负载(BloodHound CE、Sliver C2、REA/Ghidra)和 Web 面板是按需起的——编排器调 ops_start(\"ad\") 这类工具现拉,面板在 CLI 里敲 /web。
模型这块它给了三档:eco(默认,按角色分高/中/低档模型)、max(全高档)、test(全低档,给 CI 用)。供应商支持 Anthropic、OpenAI、Gemini、MiniMax、DeepSeek、xAI、Mistral、OpenRouter、Nvidia NIM、Ollama,也支持把订阅账号(Claude Max/Pro、ChatGPT Pro/Plus、Gemini Advanced、Copilot Pro、SuperGrok、Perplexity Pro)当后端。
它还能当库用:pip install decepticon 是客户端 SDK,带 Agent 工厂、中间件、工具和技能,但 LLM 调用和沙箱执行仍然走 HTTP 打给运行时服务——想只靠 pip 就跑起 Agent 是不行的。也能挂进编码助手:claude mcp add --scope user decepticon -- decepticon mcp serve,然后 decepticon skill install。
几个具体的坑:
- 范围要配置化,别靠自然语言。 它创建任务时只要一个名字和一个目标 Web URL,自动生成 RoE 和授权;但目标 URL 只接受默认端口上的精确根 HTTP/HTTPS 地址——路径、自定义端口、凭证、查询串、片段、通配符一律拒绝,而不是悄悄放宽。作者这句设计值得记住:宁可报错,不悄悄扩大范围。
- 默认拦网络、默认不拦人。 出站封锁(沙箱 nftables)默认开,但高危动作的人工审批默认关——要人盯着就自己设
DECEPTICON_HITL__ENABLED。 - 权限很大,环境要隔离。 它能自己拉 BloodHound CE、Sliver C2、Ghidra 这些专业负载,也能在沙箱里跑 Metasploit 和 Impacket。跑它就是把一套完整攻击工具链交给一个自主 Agent——放在隔离环境里、别放生产凭证。
- REA 逆向只给静态结论。 它的 Reverser 用 REA 6.3.0 加 Ghidra 12.1.4 做静态分析,结果落成带完整性清单的 Evidence 记录,作者写明「静态分析不证明运行期真的走了这条路径」,而且它不镜像 Ghidra 图形界面。
- 协议 Apache-2.0,仓库主页
decepticon.red,文档docs.decepticon.red,官方还有一个托管版app.decepticon.red。作者在仓库里写明了使用边界:没有系统所有者的书面授权,不要在任何系统或网络上用它;未授权访问计算机系统是违法的。
适合谁
如果你在做 AI 红队、或者想知道「AI Agent 自主能把一次多步利用链走多远」,这个仓库值得读。它最值得抄的不是 Agent 数量,而是三件事:双网络的凭证隔离、把「攻击者可控的输出」统一封进不可信信封的那层中间件、以及把「范围边界」从系统提示下沉到出站控制的那个取舍。
它也回答了 AI 安全一个具体的问题:当 Agent 真的能自己开靶机、自己拉 C2、自己跑交互式工具的时候,护栏该写在哪一层。它的答案是——范围写在出站控制里,不可信内容写在信封里,高危动作写在一道默认关的审批门上;三样各管一段,谁都不指望模型自己听话。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论