Custom AI Agent:Burp Suite 与 AI 的智能桥梁
Custom AI Agent 是一款专为 Burp Suite 设计的创新扩展,它将现代大型语言模型(LLM)的强大分析能力直接注入您的日常安全测试工作流。无论您是使用本地模型还是云服务,都能让 AI 辅助甚至自动执行漏洞发现与审计任务。
功能特性
- 🤖 10+ AI 后端支持:内置 Burp AI、Ollama、LM Studio、NVIDIA NIM、通用 OpenAI 兼容接口,以及 Gemini CLI、Claude CLI、Codex CLI、OpenCode CLI、Copilot CLI 等多种命令行 AI 助手。
- 🛠️ 53+ MCP 工具集:通过 MCP (Model Context Protocol) 服务器,允许 Claude Desktop 或其他 MCP 客户端自主驱动 Burp Suite 进行扫描和测试。
- 🔍 全面漏洞覆盖:内置 62 类漏洞识别能力(如注入、认证、加密缺陷等),通过被动与主动 AI 扫描器自动发现安全风险。
- 🔒 三级隐私保护模式:提供 STRICT(严格)、BALANCED(平衡,默认)、OFF(关闭)三种模式,智能脱敏 Cookie、Token、Authorization 等敏感数据后再发送至 AI 后端。
- 📚 自定义提示词库:可针对 HTTP 请求或扫描问题保存自定义提示模板,通过右键菜单快速调用,并支持临时输入。
- 📜 合规审计日志:以 JSONL 格式记录所有 AI 交互,包含 SHA-256 完整性哈希,并标记提示来源和上下文类型,满足审计合规要求。
安装指南
环境要求
- Java 21 (Temurin 或 Oracle JDK)
- Burp Suite (Community 或 Professional 版)
安装步骤
-
下载 JAR 文件
从项目的 Releases 页面下载最新版本的
Custom-AI-Agent-<version>.jar。 -
加载到 Burp Suite
- 打开 Burp Suite。
- 导航至 Extensions > Installed 标签页。
- 点击 Add 按钮。
- 在 "Extension Type" 下拉菜单中选择 Java。
- 点击 Select file...,选择你下载的
.jar文件。 - 点击 Next 完成加载。
-
从源码构建(可选)
git clone https://github.com/six2dez/burp-ai-agent.git cd burp-ai-agent ./gradlew clean shadowJar # 构建输出位于: build/libs/Custom-AI-Agent-<version>.jar
使用说明
基础配置
加载扩展后,你会在 Burp Suite 的主选项卡栏中看到 AI Agent 标签页。
- 选择 AI 后端:在 "Settings" 部分,从 "Backend Type" 下拉菜单中选择你的 AI 后端(如 Ollama、NVIDIA NIM 等)。
- 配置后端地址:根据所选后端,填写 API 端点、模型名称或 CLI 路径。
- 设置隐私模式:在 "Privacy" 部分选择 OFF、BALANCED 或 STRICT 模式,控制发送到 AI 的数据脱敏程度。
- 启用 AI 扫描器:在 "AI Passive Scanner" 或 "AI Active Scanner" 部分,勾选 "Enable" 以启动自动扫描。
典型使用场景
场景一:通过聊天面板辅助分析
在主界面的 "Chat" 面板中,你可以直接向 AI 提问。AI 可以访问 Burp 的上下文(如当前选中的 HTTP 请求),帮助你分析请求或生成测试用例。
示例:分析当前请求的安全性
用户: 请分析选中的这个登录请求,检查是否存在 SQL 注入风险。 AI 助手: (使用 MCP 工具获取请求详情,分析参数并给出初步评估和建议的测试 Payloads。)
场景二:使用自定义提示词
- 在 "Prompt Library" 面板中,点击 "Add" 保存一个常用提示,例如:“请检查这个 API 端点的 IDOR 漏洞”。
- 在 Proxy 或 Repeater 标签页中,右键点击一个 HTTP 请求。
- 选择 Extensions -> AI Agent -> 你保存的提示词。
- AI 将自动分析该请求并给出针对性结果。
场景三:通过 MCP 让 Claude 驱动 Burp
这是最强大的功能之一。你可以让 Claude Desktop 等 MCP 客户端直接控制 Burp Suite 进行扫描。
- 在 AI Agent 设置中,确保 MCP Server 已启用(默认启用)。
- 配置你的 MCP 客户端(如 Claude Desktop),连接到 Burp AI Agent 提供的 MCP 服务。
- 在 Claude 中,你可以发出如下指令:
- “使用
site_map工具列出当前项目的所有 API 端点。” - “对
https://example.com/api/user这个请求进行 SQL 注入测试,使用http1_request工具发送带有'的测试请求。” - “读取
proxy_http_history,分析最近 10 条请求,寻找可能的敏感信息泄露。”
- “使用
注意:部分 MCP 工具(如发送修改后请求的工具)需要在客户端启用 Unsafe Mode。
核心代码
1. 隐私保护模块 - 敏感数据脱敏
该模块负责在将 HTTP 请求和响应发送给 AI 后端之前,根据用户选择的隐私模式对敏感信息进行清洗,是保护用户数据安全的关键组件。
// 来自 redact/Redactor.kt 的核心逻辑示意
enum class PrivacyMode { STRICT, BALANCED, OFF }
class PrivacyRedactor(private val mode: PrivacyMode) {
fun redact(request: HttpRequest): HttpRequest {
if (mode == PrivacyMode.OFF) return request
var redactedRequest = request
// 脱敏 Authorization Header
redactedRequest = redactAuthHeader(redactedRequest)
// 脱敏常见 Token Headers
redactedRequest = redactTokenHeaders(redactedRequest)
// 脱敏 URL 查询参数中的敏感字段
redactedRequest = redactUrlParams(redactedRequest)
if (mode == PrivacyMode.STRICT) {
// 严格模式下脱敏 Cookie
redactedRequest = redactCookieHeader(redactedRequest)
// 严格模式下移除或替换请求体中的敏感字段
redactedRequest = redactBody(redactedRequest)
}
return redactedRequest
}
private fun redactTokenHeaders(request: HttpRequest): HttpRequest {
val sensitiveHeaders = listOf(
"X-Auth-Token", "X-Access-Token", "X-Session-Token",
"X-CSRF-Token", "X-Api-Secret", "X-Client-Secret"
)
// 遍历并替换敏感 Header 的值为 [REDACTED]
// ... 实现逻辑
}
}
2. MCP 工具定义 - 扫描技能入口
此代码展示了如何通过 MCP 定义一个 burp-scan 技能,该技能集成了 Burp Suite 的核心扫描能力,供 AI 助手(如 Claude)调用。
// 来自 mcp/McpTools.kt 和 skills/burp-scan.md 的定义
class BurpScanSkill : McpSkill {
override val name = "burp-scan"
override val description = "通过 MCP 工具进行 Burp Suite 扫描 — 被动流量分析、主动 Payload 测试、带外验证..."
fun getToolDefinitions(): List<McpTool> {
return listOf(
McpTool(
name = "scope_check",
description = "检查一个 URL 是否在 Burp Suite 的作用域内",
inputSchema = scopeCheckSchema
),
McpTool(
name = "http1_request",
description = "通过 Burp Suite 发送一个 HTTP/1.1 请求并获取响应 [unsafe]",
inputSchema = httpRequestSchema
),
McpTool(
description = "为已验证的漏洞创建一个 Burp Suite 问题",
),
// ... 更多工具: site_map, proxy_http_history, collaborator_generate 等
)
}
}
3. AI 被动扫描器 - 流量监控与问题创建
被动扫描器在后台持续分析代理流量,当 AI 模型对某个风险的确信度达到阈值(如 85%)时,会自动在 Burp Suite 的目标中创建一个安全问题。
// 来自 scanner/PassiveScanner.kt 的简化逻辑
class AiPassiveScanner : IScannerCheck {
// 1. 从请求/响应中提取分析上下文
val context = buildContextFromTraffic(baseRequestResponse)
// 2. 调用配置的 AI 后端进行分析
val aiResult = aiBackend.analyzePassive(context)
// 3. 如果 AI 返回的置信度高于阈值 (如 85%)
if (aiResult.confidence >= CONFIDENCE_THRESHOLD) {
// 4. 创建一个标记为 [AI Passive] 的扫描问题
name = "[AI Passive] ${aiResult.vulnerabilityName}",
detail = aiResult.evidence,
severity = aiResult.severity,
confidence = "FIRM"
)
}
return null
}
}
4QP0eWakiolTgHKD0qOkSwKoj3cnUBzh6PrQy9Iuh+s=