【免费下载链接】Decepticon
Autonomous Hacking Agent for Red Team
导读
chain-xss-to-takeover是 Decepticon 分析师(analyst)角色在"漏洞研究 playbook 目录"中提供的链式攻击构建技能,它把若干孤立的客户端漏洞(如存储型 XSS、CSRF 缺陷)编排为一条通向账户接管或特权操作执行的完整攻击链。本文以该技能的 SKILL.md 为骨架,结合仓库中的技能加载机制、frontmatter 校验契约、知识图谱链规划工具与证据验证实现,讲清楚这条链的四段规范路径、每步的落地方法,以及"浏览器侧证据 + 服务端动作确认"的双重验证要求,帮助你直接在 Decepticon 中复现同类的 XSS 接管链工作流。
技能定位:它解决什么问题
在 Decepticon 的 analyst 技能目录 中,技能被分为三类:
- Taint / source-review playbooks:面向单一漏洞类的源码审计 playbook(SQL 注入、SSRF、反序列化、SSTI、XXE、路径遍历、原型污染、命令注入、IDOR、认证绕过、提示注入等);
- Research expansion playbooks:patch-diff 变体分析与 pattern-exhaustion 根因验证;
- Chain playbooks:把"一袋孤立发现"组合成高影响攻击链。
xss-to-takeover属于第三类,目录中与它并列的还有 ssrf-to-rce、cred-reuse、idor-to-priv-esc。analyst 总目录给它的速记是:
Self-XSS → CSRF → admin creds
也就是说,这条链的典型蓝图是:攻击者无法直接在受害者会话中执行脚本,于是诱导受害者在自己的浏览器(self-XSS 场景)执行载荷,借受害者的身份与已认证会话触发 CSRF 型特权操作,最终拿到管理员凭据或执行管理员动作。
技能的元数据(frontmatter)定义了它的触发边界:
--- name: chain-xss-to-takeover description: Build chains from XSS into account takeover or privileged action execution. metadata: subdomain: web-exploitation when_to_use: "xss chain account takeover privileged action cookie session csrf token theft post-message" ---subdomain: web-exploitation是技能审计契约中注册的规范子域(见 skill_audit/subdomains.yaml),而when_to_use中的逗号分隔关键词(xss、chain、account takeover、privileged action、cookie、session、csrf、token theft、post-message)会被技能中间件用作目标匹配触发器。
四段规范路径(Canonical path)逐段拆解
SKILL.md 给出的规范路径只有四步,但每一步背后都有 Decepticon 知识图谱与证据体系的支撑。
第 1 步:在受害者上下文确认脚本执行(Confirm script execution in victim context)
这是整条链的"地基"。此处要回答的不是"载荷能否注入",而是"载荷是否能在受害者的浏览器会话上下文中真实执行"。
- 区分漏洞类:需要确认是反射型、存储型还是 DOM 型 XSS,并确认执行上下文(页面 origin、cookie 的 SameSite/Secure/HttpOnly 标志、是否有 CSP 限制)。若仓库中已存在对应的 improper-output-handling(LLM 非结构化输出未净化导致下游 XSS)等单一漏洞类发现,应先回到底层 playbook 完成独立验证,再进入链构建。
- 图谱建模:按 攻击链方法论 的要求,把"脚本执行确认"作为链上的一个可证明的中间状态,而不是假设成立。任何未经验证的"幻想链"(fantasy chain)都是该方法论明令禁止的反模式。
第 2 步:窃取会话/CSRF 令牌或触发特权操作(Steal session/CSRF token or trigger privileged action)
确认脚本执行后,载荷的价值取决于它能从受害者上下文拿到什么:
- 会话与令牌窃取:读取
document.cookie(前提是非 HttpOnly)、劫持会话、或借助postMessage与同源/跨源消息通道窃取 CSRF token。技能的when_to_use关键词中特意列出cookie、session、csrf、token theft、post-message,提示代理在目标上下文中优先探测这些信道。 - 触发特权操作:不窃取令牌,而是直接以受害者会话发起特权请求(如改绑邮箱、重置密码、提升角色、发放管理员邀请)。这类操作往往要求受害者已登录(self-XSS 场景成立的前提)。
无论走哪条支路,这一步都要在图谱上记录为中间节点,并标注与前一步之间的enables(使能)关系——这正是 plan_attack_chains 的 Dijkstra 遍历所依赖的边类型。
第 3 步:利用窃取材料访问受害者/管理员账户(Use stolen material to access victim/admin account)
- 拿到会话/令牌后,用它换取受害者账户的真实访问权:登录受害者的会话、执行密码重置、或直接以管理员身份完成一次特权动作。
- 这一步的核心是证明材料可用,而不是假设可用。攻击链方法论要求逐条验证链接("step N 的输出是否真的能作为 step N+1 的输入"),并记录时序约束、竞态条件与所需用户交互。
- 图谱层面,可用
kg_add_node("chain", ...)记录整条链,并用kg_add_edge(chain_id, <first primitive id>, "starts_at")、kg_add_edge(chain_id, <crown jewel id>, "reaches")把链锚定到起点原语与终点皇冠明珠(见 exploiter 技能 的持久化约定)。
第 4 步:证明持久的账户影响(Demonstrate durable account impact)
链的终点必须是一个可持久的影响,而非一次性现象:
- 例如:受害者账户的邮箱被改绑 → 攻击者随时可发起密码重置 → 长期控制账户;或管理员凭据被窃取 → 可反复登录管理后台。
- 攻击链方法论对链的评分口径是:链的严重性等于最终状态的影响,而不是各步 CVSS 分数之和(9.0 + 4.0 ≠ 13.0);同时每多一步,攻击复杂度上调一档;超过 4~5 步的链通常被认为对真实攻击者不现实。
Validation:双重证据契约
SKILL.md 的 Validation 段提出了一条硬性要求:
Include both browser-side evidence and server-side action confirmation.
这条要求与 Decepticon 的证据体系完全咬合:
- 浏览器侧证据:脚本在受害者上下文中执行的可视化证明,例如开发者工具中的 DOM 变化、
fetch/postMessage发出的请求、cookie 的读取结果。在 Decepticon 中,Blue Cell 的 tap.py 会把沙箱 tmux 会话与目标端侧车遥测归一化为TapEvent流(含actor_process、actor_command_line、network_destinations),再交由 rule_match.py 的规则匹配器分类,可成为浏览器侧/客户端遥测证据的采集通道。 - 服务端动作确认:特权操作在服务端真实发生的证据,例如管理后台日志中的角色变更记录、审计日志里的令牌颁发、数据库中的邮箱字段变更。
- 证据验证的实现:capabilities/evidence.py 给出了与图谱后端无关的纯函数验证契约:
validate_evidence(success_output, negative_output, success_patterns=..., negative_patterns=...)要求至少一个成功模式命中正向输出、至少一个基线模式命中阴性对照输出、且任何成功模式都不出现在阴性输出中。对 XSS→接管链来说,成功模式可以是对应"接管信号"的正则(如管理员会话标识、特权操作返回码),阴性对照则是未注入载荷时的基线输出——这能有效排除"只是页面本来就这样"的误报。 - 反证(counterevidence):counterevidence 方法论 要求在**链接发现(When chaining findings)**时也必须附带"最不利于该发现成立的证据",例如载荷只在本地/staging 有效而生产有 WAF 拦截、或目标 CSP 阻断了外带信道——这直接约束了 XSS 链的"浏览器侧证据"不能只看本地复现。
技能如何被加载与触发:progressive disclosure 机制
chain-xss-to-takeover不会常驻在系统提示里,而是在代理目标命中触发器时按需加载。其机制在 middleware/skills.py 中有完整定义:
- 系统提示中只展示技能目录(每个技能一行:描述、触发器关键词、
load_skill()路径); - 代理根据当前目标与
when_to_use触发器做匹配("xss chain account takeover ..."命中即加载本技能),多条命中时先加载最具体的技能; - 加载必须通过
load_skill()工具,禁止read_file("/skills/...")或bash(cat ...)直读;load_skill返回完整正文 + 基目录头 + 同目录兄弟技能索引; - SKILL-FIRST RULE:任务命中触发器时,必须先加载技能再行动,凭记忆操作被视为严重失败。
因此,当分析师在迭代中遇到"XSS + 账户接管"类目标时,会先加载本技能,再进入下面的图谱工作流。
在分析师工作流中的位置
analyst 总目录(SKILL.md)给出的迭代工作流中,链技能处于收尾阶段:
kg_stats— 查看知识图谱中已有的发现;- 识别目标语言/框架;
- 加载匹配的漏洞类技能(每轮一至两个);
- 按技能 recipe 执行,把发现记录为图谱节点;
- 当漏洞足够多时,加载链 playbook,调用
plan_attack_chains(promote=True)把完整链持久化。
也就是说,xss-to-takeover的前提是:图谱中已经存在经过验证的 XSS 原语、会话/CSRF 相关的中间状态,以及"管理员账户/皇冠明珠"目标节点。
与链规划工具的联动
链技能与知识图谱工具链是配套使用的。核心工具是 plan_attack_chains:
plan_attack_chains(max_depth=8, max_cost=20.0, top_k=10, promote=False)- 前置条件:图谱中已存在
ENTRYPOINT(暴露的公网面)与CROWN_JEWEL(值得赏金的靶标)节点,且漏洞之间已用enables/leaks/grants边连接; - 算法:Dijkstra 遍历,返回成本最低的完整路径;成本模型为:关键漏洞缩减成本(0.4x)、已验证 PoC 再缩减(0.5x)、高权重边增加成本——对应到 XSS 链,已验证的脚本执行原语会显著拉低整条链的估算成本;
promote=True时,每条链会被持久化为图上的chain节点,供后续查询引用。
链规划后可用 suggest_objectives_from_chains 把排名靠前的链转换为 OPPLAN 目标草稿:它会按critical_path_score排序,依据链中是否含CREDENTIAL/SECRET节点或皇冠明珠标签是否含admin/domain把阶段归为initial-access或post-exploit,并为每条链生成标题、描述与验收标准("Demonstrate path from entrypoint to crown jewel"、"为每一跳捕获证据(命令、输出、受影响资产 ID)"、"用 PoC 证据验证最高风险步骤")。对 XSS→接管链而言,最终目标是皇冠明珠为admin类节点时,目标草稿会自动落入post-exploit阶段。
技能文件的规范性要求
本技能文件本身也是 SKILL.md 语料的一部分,受 docs/skill-schema.md 与 skill_audit 的校验约束:
- 必需顶层字段:
name、description(_REQUIRED_TOP_LEVEL);缺失触发R-missing-required; - 必需元数据:
metadata.subdomain、metadata.when_to_use;subdomain必须是 subdomains.yaml 中的规范值或别名映射目标——web-exploitation在规范列表中(别名api、injection、client-side、authentication、authorization、redirect、cache也都会归并到它,见 aliases.py); - MITRE 归属豁免:按 skill-schema.md 与
R-no-attribution规则,位于/skills/*/analyst/下的文件属于非攻击路径(non-offensive),可不填mitre_attack/aatmf_tactic/upstream_ref——这正是chain-xss-to-takeover只有subdomain+when_to_use两个元数据字段的原因; - frontmatter 解析:由 frontmatter.py 的
parse_frontmatter完成(^---\s*\n(.*?)\n---正则切分 +yaml.safe_load),解析失败会以FrontmatterParseError形式按文件上报而不是中断整个审计。
作者若新增或修改这类链技能,本地应运行make audit-skills(见 skill-schema.md)通过校验后再提交。
反模式与注意事项
综合 攻击链方法论 与 exploiter 技能的约束,XSS→接管链构建中最容易踩的坑包括:
- 幻想链(fantasy chain):假设"脚本执行 → 令牌可读 → 令牌可用"每一步都成立,却从未验证步骤间的转换。规范路径第 1~3 步要求逐步验证。
- 严重性叠加(severity stacking):把 XSS 的 CVSS 与 CSRF 的 CVSS 相加得出"超高危"——正确口径是只看最终状态的严重性,并随步数上调复杂度。
- 忽略前置条件:例如第 3 步要求从第 1 步拿到有效会话,self-XSS 场景还要求受害者处于已登录状态且愿意执行载荷。
- 过度链接(over-chaining):超过 4~5 步的链对真实攻击者通常不现实;XSS→接管这类链应尽量收敛在 3~4 跳内。
- 跳过全链验证:exploiter 技能要求即使是武器化后的完整链也要走
validate_finding,不得因为"每步原语都验证过"就跳过整链的验证——这与 SKILL.md 的 Validation 段一脉相承。 - 缺少反证:根据 counterevidence 方法论,在"链接发现"场景必须记录最不利证据(如生产环境 WAF/IDS 会拦截载荷、CSP 阻断外带),避免误报。
总结
chain-xss-to-takeover是一条高度凝练的链式攻击构建技能:四段规范路径(受害者上下文脚本执行确认 → 会话/CSRF 令牌窃取或特权操作触发 → 用窃取材料访问账户 → 证明持久影响)定义了攻击链的骨架,Validation 段的"浏览器侧证据 + 服务端动作确认"双重契约则与仓库的validate_evidence纯函数验证、Blue Cell 遥测管道和反证方法论深度耦合。在 Decepticon 的分析师迭代中,它通常作为工作流的收尾环节出现:先靠漏洞类技能在图谱中沉淀已验证的 XSS 原语,再加载本技能、调用plan_attack_chains(promote=True)完成链的枚举与持久化,最后以suggest_objectives_from_chains把完整链转化为可执行的 OPPLAN 目标。
【免费下载链接】Decepticon
Autonomous Hacking Agent for Red Team
相关推荐
Decepticon 攻击链构建实战:IDOR 到权限提升(IDOR to Privilege Escalation)链路的构造与验证
Decepticon 攻击链构建实战:IDOR 到权限提升(IDOR to Privilege Escalation)链路的构造与验证 本文以 Deceptic
Decepticon 基准实测解读:XBEN-047-24 Cross 0 的 XSS 挑战通过报告与攻击链路分析
Decepticon 基准实测解读:XBEN 047 24 Cross 0 的 XSS 挑战通过报告与攻击链路分析 本文以 Decepticon 仓库 benc
XSS攻击链构建:从探测到利用的完整攻击流程指南
XSS攻击链构建:从探测到利用的完整攻击流程指南 XSS(跨站脚本攻击)是Web安全中最常见的漏洞之一,攻击者通过注入恶意脚本代码来劫持用户会话、窃取敏感信息或
网络安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考