Shannon AI渗透测试工具教程:一条命令验证 Web 应用漏洞并拿到利用证据
【免费下载链接】shannonShannon is an AI pentester for web applications and APIs. It analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.项目地址: https://gitcode.com/GitHub_Trending/shan/shannon
Shannon 是 Keygraph 开源的 AI 渗透测试工具(pentester,即自动执行安全测试的智能代理),面向 Web 应用和 API。它和传统扫描器的区别在于:先读取你的源代码规划攻击路径,再用浏览器自动化和命令行工具对运行中的应用执行真实漏洞利用,只有能被"证明可利用"的漏洞才会写进最终报告。整个代理可以在本地命令行运行,扫描过程跑在 Docker 隔离容器里。
Shannon 白盒渗透的工作原理:从源码到利用证据
Shannon 采用多代理(multi-agent)流水线,一次扫描按固定阶段推进:
- 预侦察(Pre-Reconnaissance):扫描仓库,识别框架、入口点、数据流和可能的攻击面;
- 侦察(Reconnaissance):探索线上应用,把运行时行为与代码级上下文对应起来;
- 漏洞分析:Injection、XSS、SSRF、认证(Authentication)、授权(Authorization)五类各由专用代理负责;
- 利用(Exploitation):尝试真实的 PoC(Proof of Concept,概念验证)攻击,无法证明的假设直接丢弃;
- 报告(Reporting):把已验证的发现、证据和修复建议汇总成 Markdown 报告。
每次扫描运行在一个临时的 Docker 容器和独立工作区中,目标仓库只读挂载。这个仓库附带了三份对"故意存在漏洞"应用的真实样例报告,可以直接查看它的产出形态:
| 目标 | 发现摘要 |
|---|---|
| OWASP Juice Shop | 20+ 漏洞:认证绕过、SQL 注入、IDOR、SSRF |
| c{api}tal API | 约 15 个严重/高危 API 发现:命令注入、认证绕过、批量赋值 |
| OWASP crAPI | 15+ 严重/高危发现:JWT、注入、SSRF、API 授权 |
样例报告位于sample-reports/目录,例如 sample-reports/shannon-report-juice-shop.md。
Shannon 系统要求与 AI 提供商选择
启动前需要三样东西:
- Docker:必需的,worker(工作容器)跑在 Docker 里;
- Node.js 18+:推荐的
npx工作流依赖它; - AI 提供商凭据:整个扫描由一个大模型驱动,官方推荐 Claude 模型(效果调优最好),也支持 OpenAI、xAI 和 AWS Bedrock。
| 提供商 | 需要的凭据变量 |
|---|---|
| Anthropic(默认,推荐) | ANTHROPIC_API_KEY |
| OpenAI | OPENAI_API_KEY |
| xAI | XAI_API_KEY |
| AWS Bedrock | AWS_REGION+AWS_BEARER_TOKEN_BEDROCK |
一个容易踩的坑:Anthropic 和 OpenAI 对安全类工作负载有实时安全审查(cyber safeguards),如果没完成官方要求的验证流程,扫描可能在跑到一半时被模型拒答而中断。首次运行前请先完成对应厂商的合法测试者验证,细节见 docs/ai-providers.md。
Shannon 快速部署:setup 配置与首次扫描命令
最快的路径是不克隆仓库、直接用npx拉取:
# 交互式向导:填写 AI 提供商凭据、选择模型 npx @keygraph/shannon setup # 对指定目标发起渗透测试 npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repostart会自动从 Docker Hub 拉取 worker 镜像、启动本地编排基础设施、把目标仓库只读挂载进临时容器,并把结果写入本地工作区。常用参数:
| 参数 | 作用 |
|---|---|
-u <url> | 目标应用地址 |
-r <path> | 目标源码仓库路径(绝对或相对) |
-c <file> | 附加配置文件(登录流程、测试凭据、规则等) |
-o <dir> | 运行结束后把报告复制到自定义目录 |
-w <name> | 指定工作区名称,便于管理多次扫描 |
如果需要修改 CLI 或本地构建 worker 镜像,则走源码构建路线:克隆https://gitcode.com/GitHub_Trending/shan/shannon后执行pnpm install && pnpm build,配置凭据到.env,再用./shannon start ...运行,完整步骤见 docs/development.md。
Shannon 报告位置:工作区结构与常用监控命令
扫描结果按运行保存在工作区目录中:源码构建模式在./workspaces/,npx模式在~/.shannon/workspaces/。目录结构是"顶层只有最终报告,其余细节收进隐藏目录":
workspaces/{hostname}_{sessionId}/ |-- Security-Assessment-Report.md # 最终报告(交付物) `-- .shannon/ |-- deliverables/ # 报告源文件、分阶段分析 |-- agents/ # 每个代理的日志 |-- scratchpad/ # 截图、脚本 `-- session.json # 断点续扫状态常用命令:
npx @keygraph/shannon logs <workspace> # 查看某次扫描日志 npx @keygraph/shannon status # 当前状态 npx @keygraph/shannon workspaces # 列出全部工作区 npx @keygraph/shannon stop # 停止中断的扫描可以恢复而不必重跑已完成的阶段,命名与恢复方式见 docs/workspaces.md。
运行 Shannon 前须知:使用范围、耗时与费用边界
⚠️ 这是渗透工具,不是被动扫描器:
- 仅限授权目标:Shannon 会主动执行攻击来确认漏洞,可能创建用户、修改数据、触发出站请求。只对你拥有或拿到书面授权的系统运行,不要指向生产环境,建议用沙箱或可丢弃数据的测试环境;
- 耗时与成本:一次完整扫描约 1 到 1.5 小时,会产生 LLM API 费用,取决于模型定价和目标复杂度;
- 覆盖范围:目前聚焦五类可主动利用的漏洞(注入、XSS、SSRF、认证与授权缺陷),无法利用的问题(如依赖漏洞、配置问题)不会上报,更广的静态分析在商业版 Keygraph 平台;
- 结果仍需人工复核:LLM 生成的报告可能含证据不足或错误的细节;另外不要扫描不可信的代码库,读源码的 AI 工具存在提示注入(prompt injection)风险。
完整的安全说明在 docs/safety.md。Shannon 开源版采用 AGPL-3.0 协议,本地按需运行,指向目标、渗透测试、出报告,一条命令闭环。
【免费下载链接】shannonShannon is an AI pentester for web applications and APIs. It analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.项目地址: https://gitcode.com/GitHub_Trending/shan/shannon
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考