Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

admin 2026年11月15日12:32:31评论0 views字数 9106阅读30分21秒阅读模式

SpecterOps开源了Sage——一个原生集成在Mythic v4中的AI操作员。操作者用自然语言陈述意图,Sage基于Mythic自身schema跨全部agent生成命令,每步默认拒绝并等待人工审批。其记忆体系外置:BloodHound存储攻击图,EngagementStateLedger记录经Mythic任务与凭据证据验证的收获。内置200+TTP playbook和15个可编程capability,支持多种LLM后端。Sage旨在将操作者从命令语法、工具管理和跨agent协调中解放出来,使其专注于判断与决策。

原文:https://specterops.io/blog/2026/11/10/sage-ai-for-assumed-breach-operations-built-into-mythic/作者:Russel Van Tuyl(@ne0nd0g,SpecterOps)发布时间:2026-11-10翻译模型:GLM-5.3 Flash质量评分:★★★★☆(4/5) | 标签:AI×安全 · 红队工具链 · 分析工具与方法论

AI 摘要:SpecterOps 开源的 Sage 是跑在 Mythic v4 里的原生 AI 助手(chat 容器):操作者用自然语言陈述意图,Sage 基于 Mythic 自身 schema 生成任意 agent 的命令,每步默认拒绝、以原生审批卡等人放行。记忆放在模型外——BloodHound 存攻击图,Engagement State Ledger 记录“已证实的收获”,每条 achieved 记录必须附带 Mythic 任务/凭据证据信封。内置 200+ TTP playbook、15 个可编程 capability(collect-graph、gpo-controlled-system-exec、adcs-esc、dcsync 等),支持 OpenAI/Bedrock/Anthropic/Ollama 及任意 OpenAI 兼容端点。Autonomous 模式是仅限实验室的研究能力。mythic-cli install github https://github.com/MythicAgents/sage 即装。

TL;DR:Sage 是一个开源 AI 助手,长在 Mythic 里面。你告诉它你想达成什么,它跨你已有的全部 Mythic agent 算出命令,而每个动作在打到目标之前都等你批准。它把作战记忆存在 BloodHound 和 Engagement State Ledger 里——一条“收获”只有在真实 Mythic 证据证明它时才算达成。像装其他 Mythic agent 一样安装,从只读的对话模式起步,准备好了再切到监督模式。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

Sage 要解决的问题

一场进攻性作业从对环境几乎一无所知开始,之后的每条命令都是为了认识这个环境。随着作业推进,返回的信息量增长得比任何人脑能装下的都快,而我们通常只是在找某个具体的东西。我怀疑,在“把第一周学到的和第三周看到的关联起来”这件事上,我们浪费了很多价值。

然后是打字。我跟朋友和家人说,看我“黑客作业”会很扫兴:一堆敲错的命令,一堆查参数的帮助。很多作业还同时用多个 agent,你得记住哪个 agent 有哪条命令、参数是什么、有什么怪癖,还得跟上队里其他人已经跑过什么。

剩下的多是高频的小维护和小任务。跑一个工具之前,得有人把它上传到 Mythic 并记住自己给它起了什么名字。Sage 会自动检查这个二进制是不是已经上传过;没有的话,Sage 自动发现它 tools 目录里的二进制、上传到 Mythic,再用它完成任务。

技术知识同理。每个操作者都有烂熟于心的技术和职业生涯里只跑过两次的技术。Sage 自带 200 多份战术、技术与流程(TTP)playbook,描述每项技术怎么做、先查什么——不熟悉某项攻击的操作者得到的是一份可审阅、可批准的成案,顺便把技术也学了。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

Sage 把这些负担从操作者身上拿走。有了 Sage,你告诉 Mythic 你想达成什么,Sage 写命令,你依然批准每一步。操作者把时间花在判断上,AI 做记账,决策质量反而更好——因为完整的作战图景摆在两个人面前。

为什么造它

我靠造东西学习。想搞懂 C2 应用、HTTP/2 和 HTTP/3 时,我写了 Merlin。shellcode runner 变成了 go-shellcode,Windows 后渗透技术变成了 oddments,COFF 加载变成了 go-coff(没写完)。AI 开始改变这个行业时,我修了从零搭神经网络和 LLM 应用的课,然后需要一个真实的造物。那就是 Sage。第一次提交在 2025 年 4 月(Anthropic 发布 Model Context Protocol(MCP)五个月后),一周之内 Sage 就能连任意 MCP server 并使用其工具。18 个月、400 多次提交之后,大部分时间花在了让 AI 队友“值得信任”的部分:谁握有授权,什么算证据,Sage 记住什么。另一部分是判断出 Go 不是最佳语言、转成 Python、以及选哪个框架。

SpecterOps 的作业主要用 Mythic,我希望 AI 对我们的团队尽量无摩擦。操作者关于一次红队项目的几乎全部上下文都经由 Mythic 到达,所以 AI 也该住在那里。有人建议 Sage 应该做成独立应用再连 Mythic,我不同意。每多一个工具就多一件要安装、连接、切换的东西,把一切留在同一个内聚生态里有实际价值。

Sage 只住在 Mythic 里还有第二个原因。当下进攻性 AI 的关注点大多在外围:AI agent 集群对着你的外部网络时会发生什么。这是个合理的问题,我预计它未来会成为漏洞管理的常规部分。但 SpecterOps 一直认为最有价值的工作从 initial access 之后开始。Assumed-breach 作业问的是对手从一个立足点能触达什么——那正是 BloodHound 的用武之地。在 BloodHound 之前,操作者手工倒腾凭据、在白板上画攻击路径;有了它,他们“看见”了 Active Directory,交付质量随之提升。Sage 就建立在同一块地基上。它需要一个活的 callback 才能干活,因为它从操作者所在的位置出发:网络内部,带着一张从这里可达什么的图。

SpecterOps 的很多工作最终都归于揭开对手技法的神秘面纱,我也想让 Sage 对进攻性工作里的 AI 做同样的事:在开放中构建、放在我们的操作者已经在用的工具里,任何人都能看到它做什么、怎么决策、在哪里停下。

Sage 是什么

Sage 是跑在 Mythic v4 里的 AI harness,以原生 chat 容器的形态存在。它坐在 Mythic 旁边的控制平面上,对目标采取的每个动作都经过 Mythic payload callback——和你的动作走同一条路。聊天界面像大家熟悉的 AI 聊天应用,作业里的整个团队都能看到对话并参与。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

聊天界面之下是采用 supervisor 模式的多 agent 系统:一个 supervisor agent 调度六个专家 agent,它们读到的 callbacks、tasks、凭据、文件和 BloodHound 攻击路径与你相同。目标很简单:评估中你在 Mythic 里能做的,Sage 都应该能帮你做。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

大部分进攻性安全知识在 harness 里——工具、能力、提示词和 tradecraft 文件。这意味着 Sage 配哪个提供商都行,通用模型就能干活。早期实验室测试里,通用模型借助 Sage 比自己裸跑走得更远;下一篇讲这些测试证明了什么、没证明什么。

与 Sage 共事

从逐条命令到陈述意图

今天,一名或多名操作者对 C2 agent 逐条下达命令,一次一个 task。用军事术语说,这是 detailed command(详细指挥):每个 task 手工敲出。

Sage 让你更接近 mission command(任务式指挥):用自己的话陈述意图和边界,Sage 把这一条意图展开成背后的工作流——哪个 agent 有对的命令、在哪个 callback 上跑、参数是什么、结果与作业已知信息如何衔接。你不再管理单条命令,而是管理目标。Sage 依然一次只提议一步、等你批准;Mythic 依然执行每个动作并留存记录。Sage 发命令,你掌舵。

三种模式

每个 Sage 聊天频道运行在三种模式之一,决定 Sage 被允许做什么:

  • Conversation
    (默认)是只读的。询问作业情况、审阅图、做计划,Sage 没有机会碰目标环境。
  • Supervised
     是我预计真实操作者主要待的地方。每个受保护动作(下发 task、运行 capability、创建 payload、添加凭据)都会先停成一张原生 Mythic 审批卡。批准默认拒绝,你有三个选择:
    • Accept
      :严格按预案执行
    • Reject
      :跳过
    • Respond
      :给出你自己的指引,Sage 吸收后再重新提议
  • Autonomous
     朝目标推进、不需逐动作批准。这是实验性的,下文详述。
Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准
Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

监督模式的频道可以跨多轮追逐一个既定目标:Sage 仍一次提议一个受保护动作并等你批准,但目标与已收集的证据会跨越批准、拒绝和专家 agent 之间的交接持续存在。当 BloodHound 有数据、问题关于攻击路径时,Sage 会先问图要一条到目标的路径,再提议任何 tasking。陈述意图的价值在这里兑现。细节见其权限模式文档页。

Sage 监督模式、关闭 autonomous solve:操作者从立足点要求对 north.sevenkingdoms.local 的管理控制。Sage 收集 BloodHound 数据,然后把一个 GPO 的写权限变成 Domain Admin。每一步都由操作者批准。

Sage 与任何 Mythic agent 协作

从一开始我就坚持 Sage 必须配任何 Mythic agent 都能用——我见过的一些 AI 工具只支持单一 agent。Sage 从 Mythic 本身学习怎么调用每个 agent:问 Mythic 装了哪些 payload type、列出各家的命令、从 Mythic 自己的 schema 抓每条命令的参数、类型和参数组。它会确认计划使用的 callback 上确实加载了该命令。在任何 tasking 发生之前,Sage 按该 schema 校验拟议参数并尽力修复,对注册的可执行文件则要求模型填一份严格 schema。监督模式下,审批卡上显示的就是这份备好的动作。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

比对话活得更久的记忆

AI 擅长关联眼前的信息,但长程、多跳、多日的作业更难。公开研究说的是同一件事:PentestGPT(arXiv:2308.06782)发现 LLM 能胜任单个渗透子任务,但难以维持整个测试的完整图景;Incalmo(arXiv:2501.16466)发现既有 LLM 进攻系统在 40 个多主机网络中只成功了 3 个,而加入独立的服务来跟踪上下文、获取资产后达到 37 个;更普遍的“Lost in the Middle”(arXiv:2307.03172)表明信息落在长上下文中段时,模型使用它的可靠性下降。

所以 Sage 把对作业的记忆放在模型之外,存在两个地方。BloodHound 存图。Engagement State Ledger 记录作业获得的每项能力或凭据,以及其背后的 Mythic 证据。Sage 读取作业里每一条 task——不管是谁执行的——当校验器发现新收获时就添一行。失败尝试留在 Mythic 的 task 历史里。作业内所有聊天共享同一份 ledger,规划和执行任务的 agent 在每次模型调用时都拿到它的最新视图,所以即使开一个新对话,Sage 也知道作业已经证明了什么。详见 Engagement State Ledger 文档。

Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

盒子里还有什么

文档覆盖一切;以下是我想让你最先知道的几件:

  • BloodHound 居中。
     Sage 经 MCP 连接 BloodHound(用 Matthew Nickerson 的项目),有专门的 BloodHound agent 找攻击路径。对话和监督模式没 BloodHound 也能用,只是用处打折;Autonomous 模式没有它直接拒绝运行。
  • 任意模型提供商。
     Sage 建在 LangGraph 和 LangChain 的模型集成上。频道可选 OpenAI、AWS Bedrock、Anthropic 和 Ollama;openai provider 意味着任何讲 OpenAI API 的端点——OpenAI 自家或别家都行。SpecterOps 把它指向一个前置多家提供商的内部 LiteLLM 实例。
  • 你的 tradecraft、你的工具。
     Sage 自带 200 多份 TTP 文件,覆盖 Active Directory 攻击路径、ADCS 滥用、ACL 链等,还可以添加你自己的。把 Rubeus、Certify 这类工具二进制丢进 Sage 的 tools 目录,工作需要时 Sage 自动把它们 staged 进 Mythic,再经 callback 运行。每个 agent 的提示词都是一个可编辑的 Markdown 文件,改动对下一个新聊天生效、无需重启。
  • 完全可见。
     Sage 的运行时状态——包括 LangGraph 检查点和每一次批准决策——存在 SQLite 数据库里。Engagement State Ledger 存在同一个库里,可导出为 JSON,整个红队项目结束时可以整体归档。内置 Arize Phoenix,每条 agent trace 都可回看。
Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

还有:后台 Sage Watcher,审阅作业的 Mythic 记录、把发现贴到 #sage-findings 频道,从不主动 tasking 任何 callback(尚早期,我想听操作者说它配不配留下);额外的控制面 MCP server(如 Nemesis);以及 Max Steps 护栏(默认每个聊天会话 200 次模型调用,0 为不限制),掐断失控会话并告诉你为什么、怎么继续。

少数 slash 命令不经过模型直接控制:最常用的 /state 显示 engagement state ledger、撤回某行、或给出 Mythic task 与凭据 ID 让 Sage 去核实;/mode 切换频道模式。完整清单还覆盖 MCP server、BloodHound、watcher 和本地沙箱。

三条设计规则

你掌舵。 用和队友说话的方式跟 Sage 说话,但行动的决定权永远在你。受保护动作默认拒绝直到你批准,每个受保护工具还要求匹配的 Mythic bot-token scope——频道 token 用不了的工具,对话开始前就被禁用。唯一例外是 Autonomous 模式:你预先一次性授权,绑定目标,Sage 之后不再请示。

让代码做代码擅长的事。 AI 擅长决定下一步做什么,朴素代码擅长每次都用同样的方式做。Sage 自主行动之处,用的是编程化 capability:每个 capability 声明自己的意图、必须已被证明的前置条件、应产生的效果,以及一个把效果对照真实 Mythic 输出核验的 verifier。模型可以选择 capability,但把它翻译成具体 Mythic 命令的是代码——命令语法永远来自代码。Sage 自带 15 个,几个例子:

  • collect-graph:从立足点收集 Active Directory 数据并导入 BloodHound
  • gpo-controlled-system-exec:把一个组策略对象(GPO)的写控制变成经验证的 SYSTEM 执行
  • adcs-esc-certificate-enroll:沿图中已证明的 ADCS 提权路径申请证书
  • dcsync-account:在已证明复制权的前提下,取回指定账户的凭据

其余覆盖 Kerberos 票据与上下文、托管本地管理员密钥、更多 ADCS 滥用。完整清单见 GitHub 与 tools and capabilities 文档。capability 是 Sage 任意 agent tasking 之上的一层精加工,每个用一份小的 per-agent 适配器——Apollo 和 Merlin 现有适配器。我尽量把环境特定的策略排除在代码之外。

Sage 只信 Mythic 能证明的。 ledger 里一行要算“达成”,必须能回溯到真实证据:verifier 对 Mythic task 输出或文件的核查、Mythic 凭据库、Mythic callback 记录,或经 payload 收集的 BloodHound 数据。每个达成行携带一个 proof envelope,记录它立足何处——Mythic callback、task、transaction 或凭据 ID,以及 verifier 核查内容的哈希。一条 ledger 记录大致长这样(标识符已泛化):

technique:      capability:gpo-controlled-system-exectarget:         gpo=<GPO>;domain=<domain>effect:         system-exec:gpo:<GPO>@<domain>status:         achievedpreconditions:  [generic-write:gpo:<GPO>, gpo-domain:<GPO>:<domain>, live-foothold:<domain>]proof_envelope: {origin: mythic_task, callback_id: 1, task_id: 8, command: shell,                terminal_status: completed, transaction_id: capability-exec:<id>,                verifier_id: capability:gpo-controlled-system-exec, verifier_hash: <sha256>}

你可以撤回一行、随之撤销,但一行要有真实证据支撑才算达成——无论证据是你还是模型给出的。

下一步,我想让 Sage 走向自动 harness 改进:用过往作业数据判断缺哪些 capability 并纳入 harness。这项工作很早期,不包含在本次发布里。

Autonomous 模式

Sage 也有 Autonomous 模式。在启用了该模式的 Mythic 聊天频道里,Sage 朝目标推进、不逐动作请示。这带着真实的越界风险、可能影响客户业务,那为什么要有它?两个理由:它让我能在 GOAD 这类安全实验室环境里跑评估;它也是快速展示 harness 能力的方式。

底层上,Autonomous 模式把 supervisor 与专家的对话放到一边,交给一个确定性执行内核:每个周期观测当前 Mythic 与 BloodHound 状态、算出当前哪些 capability 可进入、挑一个、经 Mythic callback 运行、核验结果、记录任何新效果,再继续。只有证据能回溯到 Mythic 或 BloodHound,进展才计数。硬停机条件包括周期上限、无新效果周期上限、token 预算和墙钟时间;停止按钮会在周期之间结束运行。完整循环见 How Sage works 文档。

另有独立的 Autonomous Solve 开关,容易和模式混淆(我计划在未来版本里理清)。在监督频道里它强制多跳目标求解,但每个受保护动作仍等你批准、完成仍需客观证据。只有把频道设为 Autonomous 模式,批准才消失。

Autonomous 模式是研究能力,只在 GOAD 实验室里演练过——留在实验室,别带进生产红队项目。

边界

Sage 是 beta 软件。哪些验证过、哪些没有的完整记录在 docs.mythicsage.ai/understand/limitations。简版:

  • 仅限授权使用,且仍在成熟中。
     只把它用于你明确获得授权的活动。它在生产环境的行为尚未充分理解,现阶段优先实验室和授权红队项目。
  • 需要 Mythic v4 的 chat container。
     更早的 Mythic 版本无法承载 Sage,验证过的构建是 Mythic v4。
  • 一条验证过的提供商路线。
     Sage 支持多家提供商和任意 OpenAI 兼容端点,但实测验证过的路线是经 LiteLLM。其他模型走相同代码路径,未经验证。
  • Apollo 是验证过的 payload。
     发布验证用 Apollo 端到端跑通;开发期间我也用 Sage 驱动过 Merlin。其他 agent 可以经 Mythic schema 下发 task,但未验证,内置 capability 目前只有 Apollo 和 Merlin 的适配器。
  • Sage Watcher 是概念验证。
     随 Sage 发布,但我只在几次快速、有限的测试里跑过,其发现按未验证对待。我认为后台 watcher 可能是 Sage 最有价值的功能之一,计划继续投入。

开发和测试基本是我一个人在挤时间。你用 Sage 时一定会发现问题或有反馈——请提出来,我们一起把它磨好。Sage 还在 beta 就是这个原因:需要真实操作者做真实授权作业,才能找到并修掉毛边。

试一试

Sage 需要 Mythic v4 和一个模型提供商或任意 OpenAI 兼容端点的凭据。在 Mythic 目录下,像装其他 agent 一样安装:

sudo ./mythic-cli install github https://github.com/MythicAgents/sage

这会拉取最新发布的 Sage 容器镜像。quickstart 会带你建第一个聊天频道。从对话模式开始,顺手了再切监督模式,用在实验室或你有授权测试的红队项目里。

下一步:我在探索用 OpenHound 把非结构化作业数据转成 BloodHound 图数据,让 Sage 学到的更多东西进入图;以及把 Sage 连到 GhostWriter 做报告和作战日志。都没有时间表。下一篇讲评估:同一模型,有没有 harness 的差距。

发现 bug 或有想法,去 github.com/MythicAgents/sage 开 issue,或在 BloodHound Community Slack 的 #mythic 频道找我。

参考

  • Sage 仓库:https://github.com/MythicAgents/sage
  • 限制说明:https://docs.mythicsage.ai/understand/limitations
  • Mythic:https://github.com/its-a-feature/Mythic
  • PentestGPT(arXiv:2308.06782):https://arxiv.org/abs/2308.06782
  • Incalmo(arXiv:2501.16466):https://arxiv.org/abs/2501.16466
  • Lost in the Middle(arXiv:2307.03172):https://arxiv.org/abs/2307.03172

原文始发于微信公众号(赛博生存指南):Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2026年11月15日12:32:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Sage:长在 Mythic 里的开源 AI 操作员——你说意图,它出命令,你批准https://cn-sec.com/archives/5580373.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息