🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/aradotso/trending-skills/shannon-ai-pentester
💡 提示:需要 Node.js 和 NPM
Shannon AI 渗透测试工具
技能由 ara.so 提供 — Daily 2026 Skills 系列。
Shannon 是一个用于 Web 应用和 API 的自主式白盒 AI 渗透测试工具。它通过读取您的源代码来识别攻击向量,然后针对正在运行的应用程序执行实际漏洞利用(SQLi、XSS、SSRF、认证绕过、授权缺陷)—— 仅报告带有可工作概念验证的漏洞。
工作原理
- 侦察 — Nmap、Subfinder、WhatWeb 和 Schemathesis 扫描目标
- 代码分析 — Shannon 读取您的代码仓库以映射攻击面
- 并行利用 — 并发代理尝试跨所有漏洞类别的实时漏洞利用
- 报告生成 — 仅包含已确认、可复现的发现以及可直接复制粘贴的概念验证
安装与前提条件
- Docker(必需 — Shannon 完全在容器中运行)
- Anthropic API 密钥、Claude Code OAuth 令牌、AWS Bedrock 凭证或 Google Vertex AI 凭证
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon
快速开始
# 选项 A: 导出凭证
export ANTHROPIC_API_KEY="sk-ant-..."
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
# 选项 B: .env 文件
cat > .env << 'EOF'
ANTHROPIC_API_KEY=sk-ant-...
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
EOF
# 运行渗透测试
./shannon start URL=https://your-app.example.com REPO=/path/to/your/repo
Shannon 构建容器,在后台启动工作流,并返回一个工作流 ID。
主要 CLI 命令
# 开始渗透测试
./shannon start URL=https://target.example.com REPO=/path/to/repo
# 使用明确的工作空间名称启动(用于恢复)
./shannon start URL=https://target.example.com REPO=/path/to/repo WORKSPACE=my-audit-2024
# 监控实时进度(跟踪日志)
./shannon logs <workflow-id>
# 检查运行中渗透测试的状态
./shannon status <workflow-id>
# 恢复中断的渗透测试
./shannon resume WORKSPACE=my-audit-2024
# 停止正在运行的渗透测试
./shannon stop <workflow-id>
# 查看最终报告
./shannon report <workflow-id>
配置
环境变量
# 必需(选择一种认证方式)
ANTHROPIC_API_KEY=sk-ant-... # Anthropic 直连
CLAUDE_CODE_OAUTH_TOKEN=... # Claude Code OAuth
# 推荐
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 # 为大报告增加输出窗口大小
# AWS Bedrock(替代 Anthropic 直连)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_DEFAULT_REGION=us-east-1
SHANNON_AI_PROVIDER=bedrock
SHANNON_BEDROCK_MODEL=anthropic.claude-3-7-sonnet-20250219-v1:0
# Google Vertex AI(替代 Anthropic 直连)
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
SHANNON_AI_PROVIDER=vertex
SHANNON_VERTEX_PROJECT=your-gcp-project
SHANNON_VERTEX_REGION=us-east5
.env 文件示例
# .env(放置在 shannon 项目根目录下)
ANTHROPIC_API_KEY=sk-ant-...
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
# 可选:用于认证测试的目标凭证
TARGET_USERNAME=admin@example.com
TARGET_PASSWORD=supersecret
TARGET_TOTP_SECRET=BASE32TOTPSECRET # Shannon 自动处理双因素认证
使用示例
基础 Web 应用渗透测试
# 将 Shannon 指向一个正在运行的本地应用及其源代码
./shannon start \
URL=http://localhost:3000 \
REPO=$(pwd)/../my-express-app
针对 OWASP Juice Shop 的测试(演示)
# 拉取并运行 Juice Shop
docker run -d -p 3000:3000 bkimminich/juice-shop
# 对其实施 Shannon 测试
./shannon start \
URL=http://localhost:3000 \
REPO=/path/to/juice-shop
带双因素认证的认证测试
export TARGET_USERNAME="admin@yourapp.com"
export TARGET_PASSWORD="$ADMIN_PASSWORD"
export TARGET_TOTP_SECRET="$TOTP_BASE32_SECRET"
./shannon start URL=https://staging.yourapp.com REPO=/path/to/repo
AWS Bedrock 提供商
export AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY"
export AWS_DEFAULT_REGION=us-east-1
export SHANNON_AI_PROVIDER=bedrock
export SHANNON_BEDROCK_MODEL=anthropic.claude-3-7-sonnet-20250219-v1:0
./shannon start URL=https://target.example.com REPO=/path/to/repo
Google Vertex AI 提供商
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
export SHANNON_AI_PROVIDER=vertex
export SHANNON_VERTEX_PROJECT=my-gcp-project
export SHANNON_VERTEX_REGION=us-east5
./shannon start URL=https://target.example.com REPO=/path/to/repo
工作空间与恢复模式
工作空间允许您暂停并恢复长时间运行的渗透测试:
# 使用命名的工作空间启动
./shannon start \
URL=https://target.example.com \
REPO=/path/to/repo \
WORKSPACE=sprint-42-audit
# 稍后,从中断处恢复
./shannon resume WORKSPACE=sprint-42-audit
# 工作空间会持久化结果,因此您可以重新运行报告
./shannon report WORKSPACE=sprint-42-audit
输出与报告
报告写入工作空间目录(默认:./workspaces/<workflow-id>/):
workspaces/
└── my-audit-2024/
├── report.md # 包含概念验证漏洞利用的最终渗透测试报告
├── findings.json # 机器可读的发现结果
└── logs/ # 每个代理的执行日志
报告内容包括:
- 漏洞标题和 CVSS 风格严重性评分
- 受影响的端点和参数
- 带有源代码引用的根本原因分析
- 逐步复现说明
- 可直接复制粘贴的 curl/HTTP 概念验证
漏洞覆盖范围
Shannon 当前测试以下漏洞类型:
| 类别 | 示例 |
|---|---|
| 注入 (Injection) | SQL 注入、命令注入、LDAP 注入 |
| XSS | 反射型、存储型、DOM 型 |
| SSRF | 内部网络访问、云元数据端点 |
| 认证缺陷 (Broken Authentication) | 弱令牌、会话固定、认证绕过 |
| 授权缺陷 (Broken Authorization) | IDOR、权限提升、缺失访问控制 |
CI/CD 集成模式
# .github/workflows/pentest.yml
name: Shannon Pentest
on:
push:
branches: [staging]
jobs:
pentest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: app
- name: Clone Shannon
run: git clone https://github.com/KeygraphHQ/shannon.git
- name: Start Application
run: |
cd app
docker compose up -d
# 等待应用健康启动
sleep 30
- name: Run Shannon
working-directory: shannon
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CLAUDE_CODE_MAX_OUTPUT_TOKENS: 64000
run: |
./shannon start \
URL=http://localhost:3000 \
REPO=${{ github.workspace }}/app \
WORKSPACE=ci-${{ github.sha }}
# 等待完成并获取报告
./shannon wait ci-${{ github.sha }}
./shannon report ci-${{ github.sha }} > pentest-report.md
- name: Upload Report
uses: actions/upload-artifact@v4
with:
name: pentest-report
path: shannon/pentest-report.md
故障排除
未找到 Docker 或权限被拒绝
# 确保 Docker 守护进程正在运行
docker info
# 将您的用户添加到 docker 组(Linux)
sudo usermod -aG docker $USER
newgrp docker
Shannon 容器构建失败
# 强制清理重建
docker compose -f shannon/docker-compose.yml build --no-cache
渗透测试卡住/无进展
# 检查阻塞代理的实时日志
./shannon logs <workflow-id>
# 常见原因:
# - 从 Shannon 容器内部无法访问目标应用
# - ANTHROPIC_API_KEY 缺失或达到速率限制
# - 未设置 CLAUDE_CODE_MAX_OUTPUT_TOKENS(模型达到默认限制)
从 Shannon 容器无法访问目标应用
# 使用 host.docker.internal 代替 localhost
./shannon start \
URL=http://host.docker.internal:3000 \
REPO=/path/to/repo
# 或者将两者放在同一个 Docker 网络中
docker network create pentest-net
docker run --network pentest-net ... # 您的应用
# 然后在 .env 中设置 SHANNON_DOCKER_NETWORK=pentest-net
来自 Anthropic 的速率限制错误
# 使用 AWS Bedrock 或 Vertex AI 以避免共享速率限制
export SHANNON_AI_PROVIDER=bedrock
export AWS_DEFAULT_REGION=us-east-1
崩溃后恢复
# 启动时始终使用 WORKSPACE= 来启用可恢复性
./shannon start URL=... REPO=... WORKSPACE=named-session
# 恢复
./shannon resume WORKSPACE=named-session
重要免责声明
- 仅测试您拥有或已获得明确书面许可的应用。
- Shannon Lite 采用 AGPL-3.0 许可 —— 任何修改都必须在相同许可下开源。
- Shannon 是一个 白盒工具:它需要访问您应用的源代码。
- 它不是黑盒扫描器。在未经授权的情况下对第三方目标运行它是违法的。
关键链接
- GitHub: https://github.com/KeygraphHQ/shannon
- Keygraph 平台 (Pro 版): https://keygraph.io
- 示例报告 (Juice Shop): 仓库中的
sample-reports/shannon-report-juice-shop.md - Shannon Pro 架构: 仓库中的
SHANNON-PRO.md - 公告: https://github.com/KeygraphHQ/shannon/discussions/categories/announcements
- Discord: https://discord.gg/9ZqQPuhJB7
📄 原始文档
完整文档(英文):
https://skills.sh/aradotso/trending-skills/shannon-ai-pentester
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)