pb3ck/playbook
GitHub: pb3ck/playbook
一个虽然已废弃但架构优秀的静态渗透测试工作台,集成了可视化攻击图谱、MITRE ATT&CK 映射与 AI 辅助目录填充功能。
Stars: 1 | Forks: 0
# playbook
## 这是什么
一个静态导出的 Next.js 应用,提供了一个精心整理的渗透测试工作流,通过三个维度(测试类型 / 目标 OS / 技术标签)进行过滤。五个阶段(侦察 → 漏洞 → 利用 → 后渗透 → 防御),每个阶段都包含目标、预检查、有序步骤和可直接复制的命令。其上还附加了可选功能:自动推导的攻击图、基于本地 MITRE ATT&CK 捆绑包的防御溯源、BYOK CVE 增强、按需提供用于填补目录空白的 AI 辅助,以及一个持续填充的工作流(每周开启 PR 自主扩充目录)。
这个工具奏效了。只是结果表明,它解决的问题(至少对于严谨的漏洞赏金猎人来说)并不是核心瓶颈。
## 为什么被废弃
有三个经验教训促成了向 Quarry 的转型:
1. **手工整理的方法论目录是错误的杠杆点。** 目录内容是一个永远无法“完成”的滑动标尺。要在 18 个标签栈 × 5 个阶段中实现 100% 的覆盖率,意味着大约需要 900 条命令,全部手工验证,并且要在工具和 CVE 不断更迭时保持最新。即使有 AI 编写 CLI + 持续填充工作流在几次会话中就让其中 8/18 个标签准备就绪,但为了接下来 10 个标签带来的边际效用,并不值得去偿还前 8 个标签积累的维护债务。
2. **真实的测试是由证据驱动的,而非流程驱动的。** “我已经完成了侦察阶段的步骤 1-7”这种模式并不符合优秀猎人的工作方式。他们会根据*工具实际挖掘出的内容*做出反应:katana 抓取结果中出现的奇怪 endpoint、JS 包中指向 `/admin` 的引用、暗示代理配置错误的 502 状态码。线性演练指南适用于培训;而证据索引用于实战。
3. **最有用的 AI 层面不是“填补目录空白”——而是“对我的数据进行推理”。** Playbook 中按需提供的 AI Assist 层面必须经过严格的范围界定(封闭的 MITRE 词汇表、工具清单注入、三层“AI 生成”声明),因为它是在为特定情况生成*建议*。这个想法更高杠杆的实现方式是将你实际的侦察语料库喂给模型,让它根据你的证据回答问题——这就是 Quarry 正在做的事。
Quarry 的 README 对此表述得很明确:
这句话本质上就是 Playbook 的墓志铭。
## 这里哪些起作用了(值得保留)
如果你 fork 了这个仓库或重建其中的部分内容,以下是真正发挥过作用的设计理念:
- **三个过滤轴(测试类型 / OS / 技术栈)控制可见性。** 干净利落地解决了“只显示与我相关内容”的问题。
- **关注活动而非完成度。** 每个命令带有 `ran` 勾选标记 + 已访问步骤追踪,没有虚假的“阶段 X% 已完成”进度条。提供诚实的信号。
- **本地优先的 MITRE 捆绑包。** 官方 STIX 捆绑包的子集,范围仅限定于目录中引用的技术 ID。在构建时打包(约 14 KB),运行时无需网络请求。
- **BYOK 模式与明确的隐私姿态。** 密钥存储在 localStorage 中,从不发送到静态导出服务器(因为根本没有服务器)。统一应用于 CVE 增强 + AI 生成配置文件。此模式在 Quarry 中得到了复用。
- **UI 中的来源分离。** 目录衍生的节点使用服务色的边缘;AI 生成的节点全面使用警告琥珀色。三层“这是 AI”声明(徽章、边框、边缘颜色、导出注释)。用户始终知道他们正在查看的内容来源。
- **`ai:draft` + `ai:apply` 维护者流水线。** 使用封闭词汇表提示(真实的 MITRE ID,来自目录的真实工具名称)起草候选内容,通过 AI 建议的步骤匹配放置它们,运行类型检查,失败时回滚。维护者只需审查 `git diff` 而无需编写 TypeScript。这种兼顾一致性的胜利在精神层面上挺过了转型。
- **持续填充工作流。** 每周运行 draft+apply 流水线针对覆盖率最低的缺口开启 PR 的 GitHub Action。在实践中从未启用过(仓库中未添加 `ANTHROPIC_API_KEY` secret),但架构是合理的。
## 哪些没有起作用
促成 Quarry 转型的经验教训,更具体地说:
- **整理目录内容就像是在跑步机上原地踏步。** 即使有 AI 加速,每一个新工具 / CVE / 框架版本都意味着目录偏移。工具重命名(在此项目期间 cvemap 变成了 vulnx)。CVE 语法发生了变化。检测规则也过时了。目录需要永久维护以保持准确,而准确性是整个系统的信任信号。
- **`validated:` 字段从未离开过 0%。** 整个编写流水线的设计初衷是让实验室验证变得低成本——每个命令的 `validated: { on, notes? }` 注解、感知陈旧的 UI 徽章、覆盖率报告列。没有人验证任何东西,因为没有人的实验机器接入了这个循环。覆盖率指标攀升;信任信号停滞不前。
- **Map 虽然丰富,但很少成为瓶颈。** 自动推导的攻击图带有颜色编码的服务谱系、拖拽子树、平移 + 缩放 + 滚轮 + SVG/PNG 导出,以及在此基础上叠加了琥珀色处理的 AI 推导层。没有人用它来做真实的决策。这些信息已经在焦点视图中了;Map 只是一个视觉效果层,演示起来很好看,但并没有改变行为。
- **阶段排序暗示了它从未有过的线性关系。** 侦察 → 漏洞 → 利用 → 后渗透 → 防御 是虚构的。真实的工作会在侦察和利用之间不断循环。Coverage Pulse 横幅有所帮助,但底层焦点视图中的“我现在处于哪个阶段”这种设定,总是与实际测试流程略有偏差。
## 最终状态
废弃时最后一次成功构建的状态:
| | |
|---|---|
| 准备就绪的标签 (≥5 条命令, ≥3 个阶段, ≥1 个标记的工具, ≥1 个 MITRE) | **8 / 18** |
| 总命令数 | **165** |
| 全站 MITRE 覆盖率 | **41%** |
| 实验室验证的命令 | **0%** *(见上方经验教训)* |
| 本地捆绑的 MITRE 技术 | 47 (~14 KB) |
| 目录工具 | 78 |
| 目录阶段 × 步骤 | 5 × 29 |
| 最后一次提交 | `996ba95` (AI generations flow into the Map) |
如果你想查看这个产物,请在本地运行它:
```
npm install
npm run dev
# http://localhost:3000
# 在欢迎模态框中点击“load example engagement”,以获取
# 预填充的 Windows AD 演示。
```
## 技术栈 (废弃时的快照)
- Next.js 15 App Router (`output: 'export'` — 完全静态)
- React 19 + Motion
- Tailwind v4 配合 `@theme` 色彩令牌 (纯黑美学)
- TypeScript 严格模式
- MIT 许可证
## 维护脚本 (仍然可用)
这些从未被删除。如果你 fork 了这个仓库,在 `.env.local` 中设置了 `ANTHROPIC_API_KEY` 的情况下,它们仍然有效:
```
npm run coverage # per-tag + per-phase coverage report
npm run ai:draft # AI-draft candidate commands for a gap
npm run ai:apply # auto-merge a draft YAML into the catalog
npm run validate # interactive triage of a draft
npm run sync:mitre # refresh the local MITRE bundle
npm run check:sources # HEAD-check every tool URL for link rot
npm run autofill:next # pick a gap + draft + apply, one shot
```
`.github/workflows/autofill.yml` 从未被启用(从未添加 `ANTHROPIC_API_KEY` 仓库 secret)。它原本会针对覆盖率最低的缺口每周开启 PR;如果你 fork 后想要这个循环,添加该 secret 即可生效。
## 接下来去哪里
- **活跃的开发工作**:[`pb3ck/quarry`](https://github.com/pb3ck/quarry)。
本地优先的证据索引器 + LLM 推理层。Rust,AGPL。这正是本次尝试真正想要解决的核心问题。
- **Fork 这个仓库**,如果你想要一个精心策划的演练脚手架来在上面构建其他东西。Next.js 骨架、BYOK 模式、MITRE 同步以及 AI-draft/apply 流水线都是可复用的。
- **阅读提交历史**,如果你对演进过程感到好奇。在一个高效的工作日中进行了 14 次提交;从“手工目录”到“自填充流水线”的发展轨迹都在其中。
## 许可证
MIT — 见 [`LICENSE`](./LICENSE)。可随意使用、fork、或从中提取有用的部分。只需保留版权声明即可。
标签:AI安全助手, Bug Bounty, CISA项目, Cloudflare, CMS安全, CVE情报丰富, IP 地址批量处理, JavaScript, MITRE ATT&CK, Playbook, React, Syscalls, Windows内核, 反取证, 可自定义解析器, 子域名变形, 安全工作流, 安全方法论, 安全评估, 密码管理, 插件系统, 数据展示, 白帽子, 红队, 网络安全, 网络安全审计, 自动化攻击, 自动化攻击图, 隐私保护, 静态导出