jrsherlock/shannon-workbench

GitHub: jrsherlock/shannon-workbench

Shannon Workbench 是面向 Shannon AI 渗透测试器的参与管理 UI,解决配置、监控、分类与导出渗透测试发现的流程割裂问题。

Stars: 0 | Forks: 0

# Shannon Workbench 一个用于 [Shannon](https://github.com/KeygraphHQ/shannon) 的参与管理 UI,Shannon 是 Keygraph 的自主 AI 渗透测试工具。Shannon Workbench 为 AppSec 测试人员提供围绕 Shannon 自动化扫描的结构化工作流程:配置、启动、监控、分类和导出——全部在一个仪表板中完成。 ## 什么是 Shannon? [Shannon](https://github.com/KeygraphHQ/shannon) 是由 [Keygraph](https://keygraph.io) 构建的自主白盒 AI 渗透测试工具。它结合了源代码分析与实时利用,使用由 Temporal 编排的 **13 代理管道**,在 Docker 容器中运行。每次扫描会经历五个阶段: **阶段 1 — 预侦察**(`pre-recon`):使用 nmap、subfinder 和 whatweb 进行外部扫描,以指纹化目标基础设施。同时分析源代码以识别框架、入口点和潜在攻击面。 **阶段 2 — 侦察**(`recon`):通过关联代码级洞察与运行中应用程序的实时浏览器探索,构建全面的攻击面地图。生成 API 端点、身份验证机制和输入向量的详细清单。 **阶段 3 — 漏洞分析**(5 个并行代理):专用代理并发地搜寻漏洞,每个代理专注于一个 OWASP 类别: - `injection-vuln` — SQL 注入、命令注入、模板注入,通过数据流分析从用户输入到危险接收点 - `xss-vuln` — 反射型和基于 DOM 的跨站脚本 - `auth-vuln` — 破损的身份验证:弱 JWT 实现、凭证填充、会话固定 - `ssrf-vuln` — 通过 URL 参数、文件上传、Webhook 实现的服务器端请求伪造 - `authz-vuln` — 破损的访问控制:水平/垂直权限提升、IDOR、缺少函数级检查 每个代理都会生成一组**假设的可利用路径**——尚未确认为真实漏洞。 **阶段 4 — 利用**(5 个并行代理):专用利用代理接收假设并尝试使用浏览器自动化和 CLI 工具进行实际攻击: - `injection-exploit`、`xss-exploit`、`auth-exploit`、`ssrf-exploit`、`authz-exploit` Shannon 严格执行 **“无利用,无报告”** 策略——如果假设无法通过可用的 PoC 证明,则会被丢弃为误报。 **阶段 5 — 报告**(`report`):将所有已验证的发现整理为结构化报告,包含可复现的、复制粘贴即可使用的 PoC 漏洞利用。 工作监控器通过 Shannon 的 Temporal `getProgress` 查询实时监控全部 13 个代理,显示每个代理的成本、持续时间和状态。 ## 存在的意义 Shannon 能快速发现漏洞。但渗透测试不仅仅是扫描——它是一次包含范围、上下文、客户期望的完整参与,需要在进入报告前由人工进行判断。Shannon Workbench 填补了这一空白。 **这是一个辅助安全测试人员的工具,而非替代品。** Shannon 负责繁重的工作(侦察、漏洞分析、利用),而 Workbench 提供控制: - **扫描前:** 通过引导式向导配置身份验证、作用域规则和管道设置,而非手动编辑 YAML - **扫描中:** 实时监控代理进度、成本和已用时间——可停止并在检查点恢复 - **扫描后:** 对发现进行分类和状态管理,添加手动发现的补充项,然后导出干净的 JSON 交付物 ## 截图 **仪表板** — 参与概览,包含运行次数和发现总数 ![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/49029acf95001201.png) **运行监控器** — Shannon 的 13 代理管道的实时 SSE 视图 ![运行监控器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/11d9ef4c2c001203.png) **发现分类** — 带筛选器、内联编辑和自动保存的双面板 UI ![发现分类](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c811f5cd9d001205.png) **导出** — 按状态筛选、预览 JSON 并下载 ![导出](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/76517a72f3001207.png) ## 功能特性 - **参与生命周期** — 创建、编辑并跟踪渗透测试参与,包含客户信息、目标 URL、威胁模型和备注 - **5 步配置向导** — 上下文审查、身份验证构建器(表单/SSO/API/基础 + TOTP + 登录流程步骤)、作用域规则(聚焦/避免,使用重复和冲突检测)、管道设置,以及启动前的 YAML 预览 - **实时运行监控** — SSE 驱动的仪表板,展示 Shannon 的 13 代理管道:阶段时间线、每个代理的成本与持续时间、进度条和已用计时器 - **停止与恢复** — 停止正在运行的扫描并在 Shannon 的工作空间检查点处恢复,已完成的代理会自动跳过 - **发现分类** — 带严重性/状态/来源筛选器的双面板 UI。内联编辑并自动保存。支持 Shannon 发现的与手动添加的发现并列显示 - **导出** — 按状态筛选、预览 JSON 并下载或复制到剪贴板 ## 架构 | 层 | 技术 | |----|------| | 框架 | Next.js 16、App Router、TypeScript | | 数据库 | SQLite 通过 Prisma 7 + `@prisma/adapter-better-sqlite3` | | UI | shadcn/ui + Tailwind CSS,暗色主题 | | 与 Shannon 集成 | 通过 `child_process` 调用 `npx @keygraph/shannon` | | 运行监控 | `@temporalio/client` 轮询 Shannon 的 `getProgress` 查询 | | 实时更新 | 服务器发送事件(SSE) | ## 快速开始 ### 先决条件 - **Node.js 18+** - **Docker** — Shannon 在容器中运行其工作器和 Temporal 服务器 - **Shannon CLI** — 通过 `npx @keygraph/shannon` 使用(无需全局安装) - **AI 提供商凭证** — Anthropic API 密钥或 Claude Code OAuth 令牌,通过 `npx @keygraph/shannon setup` 配置 ### 设置 ``` # 克隆仓库 git clone https://github.com/jrsherlock/shannon-workbench.git cd shannon-workbench # 安装依赖 npm install # 设置数据库 npx prisma generate npx prisma migrate deploy # 设置 Shannon(一次性 — 启动 Temporal 容器,配置凭据) npx @keygraph/shannon setup # 启动开发服务器 npm run dev ``` 工作站在 `http://localhost:3000`(或下一个可用端口)运行。 ### 环境变量 创建 `.env` 文件: ``` DATABASE_URL="file:./prisma/dev.db" TEMPORAL_ADDRESS="localhost:7233" # 可选:如果您有全局 Shannon 安装则覆盖 # SHANNON_CLI_PATH="shannon" ``` ### 运行扫描 1. **创建参与** — 名称、客户、目标 URL、仓库路径和上下文 2. **配置运行** — 通过 5 步向导(身份验证、作用域、管道) 3. **启动** — Shannon 自主开始扫描 4. **监控** — 实时观察代理完成情况 5. **分类** — 导入发现、审查/编辑/忽略,并添加手动发现 6. **导出** — 按状态筛选并下载 JSON 报告 ## 项目结构 ``` app/ api/ # 11 API routes (engagements, runs, findings, export) engagements/ # Engagement pages (CRUD, config wizard, monitor, triage, export) page.tsx # Dashboard components/ui/ # shadcn/ui components lib/ config-builder.ts # Wizard state -> Shannon YAML shannon-launcher.ts # npx @keygraph/shannon CLI wrapper temporal-client.ts # Temporal progress queries finding-ingester.ts # Shannon deliverables -> DB records db.ts # Prisma client singleton prisma/ schema.prisma # Engagement, Run, Finding, ConfigTemplate models ``` ## 路线图 - **黑盒模式支持** — Shannon 也支持黑盒扫描(无需源代码),仅使用目标 URL。工作站当前要求白盒扫描的仓库路径。未来版本将允许测试人员在配置向导中选择白盒或黑盒模式,使该工具可用于无法访问源代码的外部评估 - **跨运行发现差异** — 比较各次运行之间的发现,以跟踪新增、修复或回归 - **报告生成** — 导出为 PDF/Markdown 渗透测试报告模板,而不仅是原始 JSON - **CI/CD 集成** — 从 GitHub Actions 或其他流水线触发扫描,并将结果作为 PR 评论发布 ## 许可证 MIT
标签:13-Agent Pipeline, AI Pentester, AppSec, Docker, Engagement Management, Export Findings, Keygraph, PyRIT, SEO 工具, Shannon AI, SSRF, Streamlit, Temporal, Triage, UI Dashboard, XSS, 多智能体系统, 安全测试平台, 安全防御评估, 渗透测试工作流, 源代码分析, 漏洞分析, 漏洞情报, 白盒渗透测试, 自动化攻击, 自动化渗透测试, 认证绕过, 访问控制, 请求拦截, 路径探测, 配置启动监控导出