TyrusRC/praetor

GitHub: TyrusRC/praetor

Praetor 是一款基于 Burp Suite 的代理型 DAST 协调器,用于自动化渗透测试。

Stars: 2 | Forks: 1

# Praetor *Burp Suite 的代理型 DAST 协调器。* [![MCP 徽章](https://lobehub.com/badge/mcp/tyrusrc-burpsuite-swiss-knife-mcp)](https://lobehub.com/mcp/tyrusrc-burpsuite-swiss-knife-mcp) [![许可证](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE) [![版本](https://img.shields.io/badge/version-1.0.0-blue)](https://github.com/TyrusRC/burpsuite-swiss-knife-mcp/releases) [![Java](https://img.shields.io/badge/java-21%2B-blue)](https://adoptium.net/temurin/releases/?version=21) [![Python](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org/) [![MCP](https://img.shields.io/badge/MCP-stdio-blue)](https://modelcontextprotocol.io/) [![平台](https://img.shields.io/badge/platforms-linux%20%7C%20macos%20%7C%20windows%20%7C%20wsl-blue)](#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, 代理监听, 内部实验室, 历史记录, 安全测试, 恶意软件分析, 攻击性安全, 数据展示, 无后门, 模型上下文协议, 漏洞报告, 知识驱动, 红队, 逆向工具