Shannon:让 AI 替你当黑客,自动找出 Web 应用的真实漏洞

0 阅读5分钟

Shannon:让 AI 替你当黑客,自动找出 Web 应用的真实漏洞

你的代码每天都在更新,但渗透测试一年只做一次?Shannon 来填补这 364 天的安全空白。


了解 Shannon

Shannon 是一个全自动 AI 渗透测试工具,由 Keygraph 团队开源(AGPL-3.0 协议)。它不是传统的漏洞扫描器——它模拟真正的黑客行为,自主分析你的源代码,操控浏览器执行真实攻击,最终交付一份的渗透测试报告。

在 XBOW 基准测试中,Shannon Lite 取得了 96.15% 的成功率。GitHub 上已获得 10.6k Star,是近期安全领域最受关注的开源项目之一。


运行原理

Shannon 模拟人类渗透测试人员的工作方法,采用多智能体架构,分四个阶段执行:

阶段一:侦察(Reconnaissance) → 分析源代码 + 使用 Nmap、Subfinder 等工具扫描目标,构建完整的攻击面地图。

阶段二:漏洞分析(Vulnerability Analysis) → 多个专项 Agent 并行工作,分别针对注入、XSS、SSRF、认证绕过等 OWASP 漏洞类型进行数据流追踪,输出"可能的攻击路径"假设列表。

阶段三:漏洞利用(Exploitation) → 对每条假设路径执行真实攻击——包括浏览器自动化、命令行工具、自定义脚本。严格执行"打不通就不报"策略,消灭误报。

阶段四:报告(Reporting) → 汇总所有验证成功的漏洞,生成渗透测试级报告,每个漏洞附带可直接复制粘贴的 PoC 复现步骤。

整个过程完全自主运行,从启动到出报告,你只需要一条命令。

                    ┌──────────────────────┐
                    │    Reconnaissance    │
                    └──────────┬───────────┘
                               │
                               ▼
                    ┌──────────┴───────────┐
                    │          │           │
                    ▼          ▼           ▼
        ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
        │ Vuln Analysis   │ │ Vuln Analysis   │ │      ...        │
        │  (Injection)    │ │     (XSS)       │ │                 │
        └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
                  │                   │                   │
                  ▼                   ▼                   ▼
        ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
        │  Exploitation   │ │  Exploitation   │ │      ...        │
        │  (Injection)    │ │     (XSS)       │ │                 │
        └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
                  │                   │                   │
                  └─────────┬─────────┴───────────────────┘
                            │
                            ▼
                    ┌──────────────────────┐
                    │      Reporting       │
                    └──────────────────────┘


部署与运行全流程

环境准备

你只需要两样东西:

  • Docker:Shannon 运行在容器中,确保环境隔离。安装地址:https://docs.docker.com/get-docker/
  • Anthropic API Key(推荐):从 https://console.anthropic.com 获取。也支持 Claude Code OAuth Token,或实验性地通过 OpenRouter 使用 OpenAI / Gemini 模型。

第一步:克隆项目

git clone https://github.com/KeygraphHQ/shannon.git
cd shannon

第二步:配置凭证

方式 A:环境变量(推荐快速上手)

export ANTHROPIC_API_KEY="你的API密钥"
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000

方式 B:创建 .env 文件(推荐长期使用)

cat > .env << 'EOF'
ANTHROPIC_API_KEY=你的API密钥
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
EOF

第三步:启动渗透测试

./shannon start URL=https://你的应用地址.com REPO=/你的源码路径

Shannon 会自动构建容器、启动工作流,并返回一个工作流 ID。整个测试在后台运行。

如果你在本地测试:Docker 容器无法直接访问宿主机的 localhost,需要改用 host.docker.internal

./shannon start URL=http://host.docker.internal:3000 REPO=/path/to/repo

第四步:监控进度

# 查看实时日志
./shannon logs

# 查询特定工作流的进度
./shannon query ID=shannon-1234567890

# 打开 Temporal Web UI 查看详细状态
open http://localhost:8233

第五步:查看结果

测试完成后,报告默认保存在 ./audit-logs/ 目录下:

audit-logs/{hostname}_{sessionId}/
├── session.json          # 会话指标数据
├── agents/               # 各 Agent 的执行日志
├── prompts/              # Prompt 快照(用于复现)
└── deliverables/
    └── comprehensive_security_assessment_report.md   # 最终安全评估报告

第六步:停止服务

# 停止容器(保留工作流数据)
./shannon stop

# 完全清理(删除所有数据)
./shannon stop CLEAN=true

普通用户/团队能用来做什么?

🔒 独立开发者 / 小团队

你可能没有预算请专业安全团队做渗透测试。Shannon 就是你的免费安全顾问——把你的 Side Project 或 SaaS 应用跑一遍,看看有没有明显的安全漏洞,防患于未然。

🏢 企业开发团队

将 Shannon 纳入 CI/CD 流程(Pro 版支持),每次重大发布前自动跑一轮渗透测试。不再依赖一年一次的安全审计,让安全测试跟上你的发布节奏。

🎓 安全学习者

对 Web 安全感兴趣但不知从何入手?搭建一个 OWASP Juice Shop 靶场,让 Shannon 跑一遍,然后仔细阅读它生成的报告——每个漏洞是怎么发现的、怎么利用的、怎么修复的,比看教程生动得多。

🛡️ 安全从业者

作为专业渗透测试的辅助工具,Shannon 可以在正式测试前快速扫一遍,帮你锁定重点攻击面,节省大量手工侦察时间。


使用须知

  • 切勿在生产环境运行:Shannon 会执行真实攻击,可能修改数据、创建用户、触发副作用
  • 必须获得授权:只能测试你拥有或获得书面授权的系统,未授权扫描违法
  • 费用提示:一次完整测试大约耗时 1-1.5 小时,使用 Claude Sonnet 模型约花费 $50 USD
  • 人工复核必不可少:AI 仍可能产生幻觉内容,报告中的每个发现都应人工验证

写在最后

Shannon 代表了 AI 在网络安全领域的一个重要方向:不是替代安全工程师,而是把渗透测试从"一年一次的奢侈品"变成"随时可用的基础设施"。对于快速迭代的现代开发团队来说,这可能是补齐安全短板最务实的方式之一。

项目地址github.com/KeygraphHQ/…
官网keygraph.io
Discord 社区discord.gg/KAqzSHHpRt

💬 你用过哪款 AI 编程工具?欢迎评论区分享你的体验! ⭐ 觉得有用?点个「在看」让更多开发者看到这篇对比!