Shannon——全自动AI渗透测试工具

admin 2026-02-17 20:02:46 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Shannon是一款基于Claude的开源全自动AI渗透测试工具,结合白盒代码分析与黑盒动态利用,遵循无利用即无报告原则。它采用多智能体架构,支持2FA登录及OWASP漏洞扫描,集成Nmap等工具自动完成从侦察到报告的全流程,适用于各类Web应用及Monorepo架构的安全测试。 综合评分: 88 文章分类: 渗透测试,AI安全,WEB安全,安全工具,代码审计


cover_image

Shannon——全自动 AI 渗透测试工具

一个人挺好 一个人挺好

一个人挺好 wa

2026年2月11日 19:14 贵州

项目地址:

https://github.com/KeygraphHQ/shannon

1. 项目概述

Shannon 是一款开源全自动 AI 渗透测试工具,旨在解决现代软件开发中的安全测试缺口问题。

1.1 项目定位

表格

| 属性 | 描述 | | — | — | | 项目名称 | Shannon | | 开发组织 | KeygraphHQ | | 许可证 | AGPL-3.0 (Shannon Lite) | | GitHub Stars | 17,000+ | | 核心定位 | 全自动 AI 渗透测试工具 | | 技术基础 | Anthropic Claude Agent SDK |

#

1.3 核心能力

  • 白盒源代码分析:深入理解应用架构、数据流和认证路径
  • 黑盒动态利用:通过内置浏览器执行真实攻击(注入、认证绕过等)
  • 零误报策略:严格执行”无利用,无报告”(No Exploit, No Report)原则
  • 完全自主操作:从 2FA/TOTP 登录到最终报告生成,全程无需人工干预

2. 核心特性

2.1 功能特性

表格

| 特性 | 描述 | | — | — | | 全自动操作 | 单命令启动,AI 处理从登录、浏览到报告的所有环节 | | 渗透测试级报告 | 提供可复现的漏洞利用证明(PoC),消除误报 | | OWASP 漏洞覆盖 | 支持 Injection、XSS、SSRF、认证/授权缺陷等关键漏洞类型 | | 代码感知测试 | 分析源代码指导攻击策略,结合动态利用验证真实风险 | | 集成安全工具 | 集成 Nmap、Subfinder、WhatWeb、Schemathesis 等侦察工具 | | 并行处理 | 多漏洞类型并行分析,缩短测试时间 | | 高级认证支持 | 支持 2FA/TOTP、Google Sign-in 等复杂登录流程 |

2.2 技术亮点

  • 证明式漏洞验证:不仅发现潜在问题,而是通过实际执行攻击来验证漏洞可利用性
  • 浏览器自动化:使用真实浏览器进行点击、导航和攻击执行
  • 数据流分析:追踪用户输入到危险 sink 的完整路径
  • 命令行集成:结合浏览器自动化和命令行工具进行深度利用

3. 系统架构

Shannon 采用多智能体架构(Multi-Agent Architecture),模拟人类渗透测试专家的方法论,通过四个阶段完成安全测试:

plain

                    ┌──────────────────────┐
                    │    Reconnaissance    │
                    │    (侦察阶段)         │
                    └──────────┬───────────┘
                               │
                               ▼
                    ┌──────────┴───────────┐
                    │          │           │
                    ▼          ▼           ▼
        ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
        │ Vuln Analysis   │ │ Vuln Analysis   │ │      ...        │
        │  (Injection)    │ │     (XSS)       │ │   (其他漏洞类型)  │
        │   漏洞分析阶段   │ │                 │ │                 │
        └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
                  │                   │                   │
                  ▼                   ▼                   ▼
        ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
        │  Exploitation   │ │  Exploitation   │ │      ...        │
        │  (Injection)    │ │     (XSS)       │ │                 │
        │   利用阶段       │ │                 │ │                 │
        └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
                  │                   │                   │
                  └─────────┬─────────┴───────────────────┘
                            │
                            ▼
                    ┌──────────────────────┐
                    │      Reporting       │
                    │      (报告阶段)       │
                    └──────────────────────┘

3.1 架构阶段详解

Phase 1: 侦察(Reconnaissance)

目标:构建完整的应用攻击面地图

执行内容

  • 源代码分析:理解技术栈、框架和架构
  • 基础设施侦察:集成 Nmap、Subfinder 等工具
  • 实时应用探索:通过浏览器自动化登录、点击和爬取
  • 关联分析:将代码级洞察与实际行为关联

输出:详细的入口点、API 端点和认证机制地图

Phase 2: 漏洞分析(Vulnerability Analysis)

目标:并行识别潜在漏洞

执行内容

  • 并行执行:每个 OWASP 类别由专门的智能体处理
  • 数据流分析:对 Injection、SSRF 等漏洞进行结构化追踪
  • 假设生成:产出假设的可利用路径列表

特点:此阶段仅生成假设,不验证漏洞

Phase 3: 利用(Exploitation)

目标:将假设转化为实际证明

执行内容

  • 并行利用:各漏洞类型的专门利用智能体同时工作
  • 真实攻击执行:使用浏览器自动化、命令行工具和自定义脚本
  • “无利用,无报告”政策:无法成功利用的假设被标记为误报并丢弃

关键原则:只有通过实际攻击验证的漏洞才会进入报告阶段

Phase 4: 报告(Reporting)

目标:生成专业、可操作的渗透测试报告

执行内容

  • 数据整合:合并侦察数据和成功利用证据
  • 噪音清理:移除幻觉或弱支持的发现
  • PoC 生成:提供可复现的、复制粘贴式的漏洞利用代码
  • 结构化输出:生成符合渗透测试标准的综合报告

4. 快速开始

4.1 前置条件

表格

| 需求 | 说明 | | — | — | | Docker | 容器运行时环境 | | AI 凭证 | Anthropic API Key 或 Claude Code OAuth Token(推荐 Anthropic) |

4.2 环境配置

设置最大输出令牌数(防止长报告生成时触发限制):

bash

# 本地运行
exportCLAUDE_CODE_MAX_OUTPUT_TOKENS=64000

# Docker 运行(通过 -e 参数传递)
-eCLAUDE_CODE_MAX_OUTPUT_TOKENS=64000

4.3 安装步骤

bash

# 1. 克隆仓库
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon

# 2. 配置 AI 凭证(二选一)

# 选项 A:环境变量
exportANTHROPIC_API_KEY="your-api-key"
# 或
exportCLAUDE_CODE_OAUTH_TOKEN="your-oauth-token"

# 选项 B:.env 文件
cat>&nbsp;.env&nbsp;<<'EOF'
ANTHROPIC_API_KEY=your-api-key
EOF

# 3. 构建容器
docker&nbsp;build&nbsp;-t&nbsp;shannon:latest&nbsp;.

# 4. 准备目标仓库
# 将目标应用代码放入 ./repos/ 目录
git&nbsp;clone https://github.com/your-org/your-app.git repos/your-app

4.4 运行渗透测试

bash

# 基础命令
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app

# 使用配置文件
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app&nbsp;CONFIG=./configs/my-config.yaml

# 自定义输出目录
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app&nbsp;OUTPUT=./my-reports

4.5 监控与停止

bash

# 查看实时日志
./shannon logs

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

# 打开 Temporal Web UI 进行详细监控
open&nbsp;http://localhost:8233

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

# 完全清理(移除所有数据)
./shannon stop&nbsp;CLEAN=true

5. 配置指南

5.1 配置文件结构

配置文件放置在 ./configs/ 目录,自动挂载到容器:

yaml

# configs/my-app-config.yaml

authentication:
login_type:&nbsp;form
login_url:"https://your-app.com/login"
credentials:
username:"[email protected]"
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:&nbsp;url_contains
value:"/dashboard"

rules:
avoid:
-description:"AI should avoid testing logout functionality"
type:&nbsp;path
url_path:"/logout"

focus:
-description:"AI should emphasize testing API endpoints"
type:&nbsp;path
url_path:"/api"

5.2 配置参数说明

表格

| 配置项 | 类型 | 描述 | | — | — | — | | login_type | string | 登录类型:form, oauth, sso 等 | | login_url | string | 登录页面 URL | | credentials | object | 用户名、密码、TOTP 密钥 | | login_flow | array | 自然语言描述的登录步骤 | | success_condition | object | 登录成功的判断条件 | | rules.avoid | array | 避免测试的路径/功能 | | rules.focus | array | 重点测试的路径/功能 |

5.3 本地应用测试

Docker 容器无法直接访问主机的 localhost,需使用 host.docker.internal

bash

./shannon start&nbsp;URL=http://host.docker.internal:3000&nbsp;REPO=your-app

6. 使用模式

6.1 单仓库应用

bash

git&nbsp;clone https://github.com/your-org/your-repo.git repos/your-app
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app

6.2 Monorepo 项目

bash

git&nbsp;clone https://github.com/your-org/monorepo.git repos/your-monorepo
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-monorepo

6.3 多仓库应用(前后端分离)

bash

mkdir&nbsp;repos/your-app
cd&nbsp;repos/your-app
git&nbsp;clone https://github.com/your-org/frontend.git
git&nbsp;clone https://github.com/your-org/backend.git
git&nbsp;clone https://github.com/your-org/api.git

cd../..
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app

6.4 使用现有本地仓库

bash

cp-r&nbsp;/path/to/your-existing-repo repos/your-app
./shannon start&nbsp;URL=https://your-app.com&nbsp;REPO=your-app

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:一个人挺好 wa 一个人挺好 一个人挺好《Shannon——全自动 AI 渗透测试工具》

评论:0   参与:  0