TyrusRC/praetor
GitHub: TyrusRC/praetor
Praetor 是一款基于 Burp Suite 的代理型 DAST 协调器,用于自动化渗透测试。
Stars: 2 | Forks: 1
# Praetor
*Burp Suite 的代理型 DAST 协调器。*
[](https://lobehub.com/mcp/tyrusrc-burpsuite-swiss-knife-mcp)
[](LICENSE)
[](https://github.com/TyrusRC/burpsuite-swiss-knife-mcp/releases)
[](https://adoptium.net/temurin/releases/?version=21)
[](https://www.python.org/)
[](https://modelcontextprotocol.io/)
[](#supported-platforms)
Praetor 是一个模型上下文协议 (MCP) 服务器,它将 Claude Code(或任何 MCP 兼容的 LLM 客户端)转换为 Burp 原生的代理渗透测试人员。它公开了 Burp 的 HTTP 功能、扫描器、网站地图、代理历史记录和 Collaborator,以及一个知识驱动的探测引擎(128+ 匹配器)、SAST + 机密层(opengrep / gitleaks / trufflehog / git-dumper / Noir)、一个 11 个代理的团队,以及一个具有持久目标内存的保存发现管道。每个请求都通过 Burp 路由,因此每个发现都可以从 Burp UI 重放,并由 Logger 索引引用。
## 授权使用
这是一个进攻性安全工具。仅在使用您明确书面许可进行测试的系统上使用(漏洞赏金范围、签署的渗透测试、红队合同、内部实验室)。作者不对误用负责。
## 架构
```
LLM client <- stdio MCP -> Python MCP server <- HTTP -> Java Burp extension <- Montoya API -> Burp Suite
```
- Java 扩展在 `127.0.0.1:8111` 上公开 REST API,并通过 Burp 的代理监听器(`127.0.0.1:8080`)隧道 HTTP 流量,因此所有探测都显示在代理历史记录中。
- Python MCP 服务器是一个瘦客户端,LLM 通过 stdio 与其通信。
- 目标智能持久化到 `.burp-intel//`(git 忽略)。
## 功能
- MCP 工具表面覆盖侦察、扫描、利用、浏览器、身份验证、研究和报告。
- 通过 Burp 代理路由的 HTTP 发送工具(curl 风格、原始、重复器、入侵者、并发)。
- 由 JSON 知识库驱动的自适应扫描引擎(匹配器 + 工艺指导),映射到 OWASP Top 10(Web / API / LLM / 移动)、OWASP WSTG、PayloadsAllTheThings、HackTricks Web + Cloud — 请参阅 [覆盖率](#coverage) 表格。
- 原生漏洞类别协调器,没有第三方覆盖表面:`test_csrf`、`test_ssrf`、`test_ssti`(SSTImap 模型,多阶段:polyglot → 数学区分器 → 引擎特定能力探测 → 可选盲睡眠)、`test_xxe`、`test_websocket`(CSWSH 升级握手)、`test_prototype_pollution`。
- 原生身份验证攻击工具,无需外部依赖:`forge_jwt`(8 种攻击模式)、`crack_jwt_secret`(HS 字典)、`test_login_bypass`、`test_mfa_bypass`、`test_session_lifecycle`、`analyze_reset_tokens`(熵 + 顺序检测)。
- 通过 Burp 代理代理的第三方包装器:sqlmap、dalfox、commix、nuclei、ffuf、katana、subfinder、amass、wafw00f、arjun、gau、waybackurls、wpscan、nikto。
- **SAST + 机密层(v1.0)**:`audit_crawled_artifacts` opengrep-over-proxy-bodies(DOM 混淆 / proto 污染 / postMessage)、`run_opengrep_source` 源树 SAST、`run_gitleaks` + `run_trufflehog`(实时验证 = 高严重性门槛)、使用 `discover_common_files` `.git/HEAD` 链接与 `dump_exposed_git` 以重建存储库 + 提取机密。通过 `import_scope --format noir_json` 吞咽 Noir OpenAPI。
- **主动 LLM/MCP 探测(v1.0)**:`ai_prompt_injection`、`rag_injection`、`mcp_server_attacks`、`mcp_tool_poisoning`、`vector_db_injection`、`echoleak`(CVE-2025-32711)。声明式提示注入护栏(`inspect_for_prompt_injection`)。
- **CI 集成(v1.0)**:SARIF 2.1.0 + JUnit XML 导出器、合规性框架标签(OWASP / PCI-DSS / HIPAA / SOC2 / GDPR / CWE)、`intensity=safe|normal|aggressive` 标志、每项任务成本上限(`set_engagement_cost_cap`)、自动 PoC `generate_repro_script` 渲染可运行的 curl 从发现记录器的 logger_index。
- 保存发现管道,具有 7 个问题的门(`assess_finding`)和每个程序的策略覆盖。
- 潜行无头浏览器([CloakBrowser](https://github.com/CloakHQ/CloakBrowser) — 修补的 Chromium 二进制文件,具有源级别指纹修复,不是 JS shims)通过 Burp 代理。
- 快速历史记录查询:`get_proxy_count`(亚毫秒)、`since_index` 尾部轮询、`host` 精确匹配过滤器、ByteArray 在位体搜索。
- 持久目标内存,具有陈旧性检测和跨目标模式重用。
- 操作员覆盖表面,用于严重性、范围过滤器、NEVER-SUBMIT 类、置信度下限。
## 要求
- Burp Suite 专业版或社区版
- Java 21+
- Python 3.11+ 与 [uv](https://docs.astral.sh/uv/)
- 一个 MCP 兼容的 LLM 客户端(Claude Code、Claude Desktop 等)
可选:
- Go(用于 `subfinder`、`nuclei`、`katana`)
- Burp 专业版用于扫描器控制和 Collaborator
### Burp 版本兼容性
**专业版** — 完全支持。默认目标环境。
**社区版** — 支持手动设置。几乎所有功能都正常工作,因为扩展和 MCP 服务器使用 Burp 的 Montoya API 进行 HTTP/proxy/scope,而不是仅限 Pro 的扫描器管道。Pro 独有功能优雅地降级:
| Pro 独有功能 | 依赖于它的工具 | 社区解决方案 |
|---|---|---|
| 活跃扫描器 | `scan_url`、`crawl_target`、`get_scan_status`、`cancel_scan`、`get_scanner_findings`、`get_new_findings`、`get_issues_dashboard` | 使用 `auto_probe`(知识驱动式扫描)、`fuzz_parameter`、`fuzz_with_feedback` 和本机的 `test_*` 协调器(`test_csrf` / `test_ssrf` / `test_xxe` / `test_websocket` / `test_prototype_pollution` / `test_login_bypass` / `test_mfa_bypass`)。这些通过扩展的 HTTP API 运行,不需要 Burp 的扫描器。 |
| Burp Collaborator | `generate_collaborator_payload`、`auto_collaborator_test`、`get_collaborator_interactions`、`collaborator_pool_status` | 操作员提供一个 OOB 回调 URL — interact.sh / webhook.site / requestcatcher.com / 自托管 DNS 盒子 — 并显式将其传递到有效载荷中。规则 9a 禁止制造域名。 |
| Intruder 全速 | `send_to_intruder_configured` | 社区对 Intruder 严重限制。使用 `concurrent_requests`(通过 Burp 代理的 Python 端并行化)进行合法并行测试,而不受限制。 |
在会话开始时运行 `check_pro_features()` 以确认操作员实例公开的 Pro 功能 — MCP 服务器在运行时检测它们,因此社区用户会收到清晰的“不可用”消息,而不是静默挂起。
## 安装
选择您想要的自动化级别。
### 快速 — `uvx`(无需克隆 MCP 服务器)
MCP 服务器直接从源树运行,使用 `uvx`。您仍然需要在 Burp Suite 中加载 Burp 扩展 JAR — 请参阅下面的手动部分。
```
uvx --from "git+https://github.com/TyrusRC/burpsuite-swiss-knife-mcp.git#subdirectory=mcp-server" \
burpsuite-swiss-knife-mcp
```
或在 `.mcp.json` 中:
```
{
"mcpServers": {
"burpsuite": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/TyrusRC/burpsuite-swiss-knife-mcp.git#subdirectory=mcp-server",
"burpsuite-swiss-knife-mcp"
]
}
}
}
```
### 自动化(完整本地签出 — 扩展 + 服务器)
```
./setup.sh # Linux / macOS
./setup.ps1 # Windows PowerShell
./setup.bat # Windows double-click
```
该脚本安装 Java 21+、Maven、Python 3.11+、uv、Go(如果缺少),构建扩展,安装 MCP 服务器(它拉取 CloakBrowser 并预热其潜行 Chromium 下载),可选安装 ProjectDiscovery 工具,并编写 `.mcp.json`。
安装后运行 `./doctor.sh` 以验证安装。
### 手动
```
# 1. 构建 Burp 扩展
cd burp-extension
mvn package
# 在 Burp 中加载目标/praetor-burp-ext-1.0.0.jar:扩展 -> 添加 -> Java
# 2. 安装 MCP 服务器
cd ../mcp-server
uv venv
uv sync
# 3. 配置您的 MCP 客户端(见下文)
```
### `pipx`
```
pipx install "git+https://github.com/TyrusRC/burpsuite-swiss-knife-mcp.git#subdirectory=mcp-server"
burpsuite-swiss-knife-mcp # entrypoint
```
## 配置
在项目根目录中创建 `.mcp.json`。该文件被 git 忽略;每个开发者维护自己的。
```
{
"mcpServers": {
"burpsuite": {
"command": "/absolute/path/to/burpsuite-swiss-knife-mcp/mcp-server/.venv/bin/python",
"args": ["-m", "burpsuite_mcp"]
}
}
}
```
在 Windows 上,将命令替换为 `C:\\...\\.venv\\Scripts\\python.exe`。在 WSL 上,如果 Burp 在 Windows 主机上,请将 `env` 块添加到 Windows 主机 IP 并在瑞士军刀配置选项卡中将扩展绑定到 `0.0.0.0`。
### 环境变量
| 变量 | 默认 | 目的 |
|---|---|---|
| `BURP_API_HOST` | `127.0.0.1` | Burp 扩展 API 主机 |
| `BURP_API_PORT` | `8111` | Burp 扩展 API 端口 |
| `BURP_API_TIMEOUT` | `30` | HTTP 超时(秒) |
| `BURP_PROXY_HOST` | `127.0.0.1` | Burp 代理监听器主机 |
| `BURP_PROXY_PORT` | `8080` | Burp 代理监听器端口 |
Java 扩展还接受 JVM 系统属性 `swissknife.proxy.host` 和 `swissknife.proxy.port`(优先级最高)。
## 使用
一旦 `.mcp.json` 被您的 MCP 客户端加载,工具就对代理可用。一个典型的会话:
1. `configure_scope` 以设置包含/排除模式并自动过滤跟踪器域名。
2. `browser_crawl` 或 `discover_attack_surface` 以映射目标。
3. `auto_probe` 以在参数上运行知识驱动式探测。
4. 对每个疑似问题执行 `assess_finding` 后跟 `save_finding`。
5. `generate_report` 以导出发现。
代理通过 `.claude/skills/` 中的技能文件接收专家方法论。操作员通过传递覆盖标志或通过编辑 `.burp-intel/programs/.json` 每项任务策略来引导代理。
## 工具表面
MCP 服务器在以下组中公开工具。架构细节和每个工具的说明在 [CLAUDE.md](CLAUDE.md) 中。
| 组 | 示例 |
|---|---|
| 范围 & 配置 | `configure_scope`、`check_scope`、`get_scope` |
| 读取 | `get_proxy_history`、`get_proxy_count`、`get_sitemap`、`get_scanner_findings`、`get_websocket_history` |
| 分析 | `smart_analyze`、`find_injection_points`、`extract_js_secrets`、`analyze_dom` |
| 发送(通过 Burp) | `curl_request`、`send_raw_request`、`concurrent_requests`、`send_to_repeater` |
| 浏览器 | `browser_crawl`、`browser_navigate`、`browser_click`、`browser_execute_js` |
| 会话 | `create_session`、`session_request`、`extract_token`、`run_flow` |
| 自适应扫描 | `discover_attack_surface`、`auto_probe`、`quick_scan`、`full_recon` |
| 精确攻击 | `test_auth_matrix`、`test_race_condition`、`fuzz_parameter`、`test_parameter_pollution` |
| 漏洞类别原生 | `test_csrf`、`test_ssrf`、`test_ssti`(SSTImap 风格多阶段)、`test_xxe`、`test_websocket`(CSWSH)、`test_prototype_pollution` |
| 身份验证攻击 | `forge_jwt`、`crack_jwt_secret`、`test_login_bypass`、`test_mfa_bypass`、`test_session_lifecycle`、`analyze_reset_tokens`、`test_auth_matrix`、`compare_auth_states` |
| 边缘情况 | `test_cors`、`test_jwt`、`test_graphql`、`test_cloud_metadata`、`test_open_redirect` |
| 高级 | `test_host_header`、`test_request_smuggling`、`test_mass_assignment`、`test_business_logic` |
| 提取 | `extract_regex`、`extract_json_path`、`extract_css_selector`、`extract_headers` |
| 重复器 & 宏 |send_to_repeater_tracked`、`repeater_resend`、`create_macro`、`run_macro` |
| 侦察(第三方) | `run_subfinder`、`run_nuclei`、`run_katana`、`run_sqlmap`、`run_dalfox`、`run_ffuf`、`query_crtsh`、`analyze_dns`、`fetch_wayback_urls` |
| 子域名接管 | `test_subdomain_takeover` — 129 个供应商指纹(W8 nuclei 合并)+ DNS-only 信号模式(W9:ElasticBeanstalk 区域、Azure trafficmanager / azureedge / redis.cache.windows.net)。当 CNAME 解析但目标主机名没有 A 记录时,DNS-only 条目标记接管(跳过体指纹匹配)。请参阅 `.claude/skills/recon-takeover.md`。 |
| Collaborator | `generate_collaborator_payload`、`auto_collaborator_test`、`get_collaborator
标签:Burp Suite, DAST, JS文件枚举, MCP, Python, REST API, 代理监听, 内部实验室, 历史记录, 安全测试, 恶意软件分析, 攻击性安全, 数据展示, 无后门, 模型上下文协议, 漏洞报告, 知识驱动, 红队, 逆向工具