全自主 AI 渗透测试工具,结合源码分析与动态攻击验证,执行真实漏洞利用并生成安全报告,采用"No Exploit, No Report"策略消除误报。
核心定位#
Shannon 由 Keygraph 开发,定位为 Fully autonomous AI pentester(全自主 AI 渗透测试器)。与传统 DAST 工具或仅提供修复建议的代码审计工具不同,Shannon 强调 "No Exploit, No Report" 策略——必须成功利用漏洞才会将其纳入报告,以此消除误报。
核心能力#
完全自主运行#
- 单命令启动渗透测试,自动处理高级 2FA/TOTP 登录(包括 Google Sign In)
- 自动浏览器导航、命令行工具调用
- 生成最终 Markdown 格式安全评估报告
混合测试模式#
- 白盒分析:源码静态分析
- 黑盒验证:动态 HTTP/浏览器交互攻击验证
并行 Agent 架构#
在漏洞分析与利用阶段启动 5 个并发专用 Agent:
- Injection Agent (SQLi, Command Injection, Code Injection, SSTI)
- XSS Agent (Reflected, Stored, DOM-based)
- Auth Agent (Broken Authentication, JWT attacks, OAuth weaknesses)
- AuthZ Agent (Authorization Bypass, IDOR)
- SSRF Agent (Server-Side Request Forgery)
支持的漏洞类型#
| 类别 | 具体类型 |
|---|---|
| 注入类 | SQL Injection, Command Injection, Code Injection, SSTI |
| 跨站脚本 | Reflected XSS, Stored XSS, DOM-based XSS |
| 服务端请求伪造 | SSRF |
| 认证与授权 | Broken Authentication, Authorization Bypass, IDOR, JWT attacks, OAuth weaknesses |
| 会话管理 | CSRF, Session Fixation, Session Timeout |
基准测试与实战成绩#
- XBOW Benchmark: 96.15% 成功率
- OWASP Juice Shop: 识别 20+ 高危漏洞,包括完整 Auth Bypass、数据库泄露、IDOR、SSRF
- c{api}tal API: 近 15 个 critical/high 漏洞,root 级 Injection、Auth Bypass、Mass Assignment 提权
- OWASP crAPI: 15+ critical/high 漏洞,JWT 攻击、PostgreSQL 凭据泄露、SSRF 窃取内部 Token
五阶段流水线架构#
Phase 1: Pre-Recon (外部扫描 Nmap/Subfinder/WhatWeb + 源码分析)
↓
Phase 2: Recon (攻击面映射)
↓
Phase 3: Vulnerability Analysis (5 并行 Agent)
↓
Phase 4: Exploitation (5 并行 Agent,条件执行)
↓
Phase 5: Reporting (最终安全报告)
核心模块#
| 模块 | 说明 |
|---|---|
src/session-manager.ts | Agent 定义注册表 (AGENTS) |
src/ai/claude-executor.ts | Claude Agent SDK 集成,含重试逻辑 |
src/temporal/workflows.ts | 主工作流 pentestPipelineWorkflow |
src/temporal/activities.ts | Activity 包装层,委托至 src/services/ |
src/services/ | 业务逻辑层,含 agent-execution.ts, error-handling.ts, container.ts |
src/config-parser.ts | YAML 配置解析 + JSON Schema 验证 |
关键设计模式#
- 配置驱动: YAML + JSON Schema 验证
- SDK-First: 依托
@anthropic-ai/claude-agent-sdk,maxTurns: 10_000,bypassPermissions模式 - 服务边界分离: Activity 仅作 Temporal 包装;业务逻辑在
src/services/ - DI 容器: 每工作流实例化 (
src/services/container.ts) - 模块化错误处理:
ErrorCode枚举 +Result<T,E>显式错误传播,自动重试(每 Agent 3 次)
快速启动#
前置条件#
- Docker(容器运行时)
- AI Provider 凭证:Anthropic API Key(推荐)或 Claude Code OAuth Token
启动步骤#
# 1. 克隆仓库
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon
# 2. 配置凭证
export ANTHROPIC_API_KEY="your-api-key"
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
# 3. 准备目标仓库(放入 ./repos/ 目录)
git clone https://github.com/your-org/your-repo.git ./repos/your-repo
# 4. 启动测试
./shannon start URL=https://your-app.com REPO=your-repo
CLI 命令#
# 基本运行
./shannon start URL=https://example.com REPO=repo-name
# 指定配置文件
./shannon start URL=https://example.com REPO=repo-name CONFIG=./configs/my-config.yaml
# 自定义输出目录
./shannon start URL=https://example.com REPO=repo-name OUTPUT=./my-reports
# 命名工作区
./shannon start URL=https://example.com REPO=repo-name WORKSPACE=my-audit
# 查看工作区列表
./shannon workspaces
# 监控日志
./shannon logs
./shannon query ID=shannon-1234567890
# 停止
./shannon stop
./shannon stop CLEAN=true # 完全清理
配置文件示例#
authentication:
login_type: form
login_url: "https://your-app.com/login"
credentials:
username: "test@example.com"
password: "yourpassword"
totp_secret: "LB2E2RX7XFHSTGCK" # 可选,用于 2FA
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Sign In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "AI should avoid testing logout functionality"
type: path
url_path: "/logout"
focus:
- description: "AI should emphasize testing API endpoints"
type: path
url_path: "/api"
输出结构#
audit-logs/{hostname}_{sessionId}/
├── session.json # 指标与会话数据
├── agents/ # Per-agent 执行日志
├── prompts/ # 提示词快照(可复现)
└── deliverables/
└── comprehensive_security_assessment_report.md
重要免责声明#
- 不要在生产环境运行 — 仅用于沙箱/开发/测试环境
- 需获得明确授权 — 未经授权扫描他人系统违法
- 人工复核必需 — LLM 可能产生幻觉内容
- 成本预估 — 完整测试约 1-1.5 小时,使用 Claude 4.5 Sonnet 约 $50 USD
- 白盒模式 — Shannon Lite 需要访问目标源码
版本说明#
- Shannon Lite: 开源版本,AGPL-3.0 协议,需要目标源码访问权限
- Shannon Pro: 商业版本,联系 shannon@keygraph.io 获取详情