D24yK4r4/bb-mcp-server
GitHub: D24yK4r4/bb-mcp-server
一个隐私优先的MCP服务器,用于Claude Code驱动的漏洞赏金狩猎,确保敏感数据安全不被AI访问。
Stars: 3 | Forks: 0
# bb-mcp-server
一个面向隐私优先的 MCP 服务器,专为使用 Claude Code 进行漏洞赏金狩猎而设计。
**一项核心原则:** 敏感数据永不触及 AI。
```
Tool runs → Sanitization layer → AI model
↓
Real values stored locally only
(vault on disk, chmod 600, hash-chained)
```
AI 只会看到 `` 令牌。真实的 Cookie、Bearer 令牌、API 密钥、PII 和发现结果都保留在您的机器上。服务器强制执行作用域,将出站流量默认限制为每秒 5 次请求(rps),并将报告提交门槛限制为高 / 危急 / 特殊严重等级(漏洞赏金任务仅关注影响力)。
## 您将获得
- **30 个 MCP 工具**,用于侦察(subfinder、amass、httpx、nmap…)、Web 测试(curl、ffuf、feroxbuster、katana)、漏洞测试(nuclei、sqlmap、dalfox)、保险库查询、按需技能加载以及双输出报告生成。
- **验证器代理门控**(`validate_finding` → 生成验证器 → `record_verdict` → `create_report`)。在另一个独立代理根据结构化简报判断为“可利用”之前,无法提交任何发现结果;判定结果通过哈希链连接到每个项目的账本,并在报告生成时在服务器端解析。`force=True` 无法绕过此门控。
- **一个包含 60 多种模式的清理器**,可加密存储 Bearer 令牌、Cookie、JWT、AWS/Azure/GCP 凭据、SaaS 密钥(GitHub、Slack、Stripe、Twilio、SendGrid…)、PII(姓名、分级邮箱、电话号码)、数据库连接字符串、私钥等 — 所有数据均通过哈希链连接以检测篡改。
- **三个 Claude Code 钩子**用于包装服务器:
- `UserPromptSubmit` — 在会话开始时自动加载兼容的技能和参考文件,并附带单行用途说明,让 AI 知道何时可以调用。
- `PreToolUse` — 强制为每个涉及目标的工具调用弹出批准提示,并附带结构化摘要(工具、项目、目标、参数)。活跃的扫描器会收到额外警告。
- `PostToolUse` — 当工具输出中出现上下文信号时(云资产 → cloud-security 技能,Solidity → secure-contracts,CVSS 向量 → cvss_guide 等),自动注入技能/参考加载。每个触发条件每会话只触发一次。
- **平台感知的报告路由。** 当 `create_report` 运行时,钩子会读取项目的 `brief.md`,识别平台(Intigriti / Bugcrowd / HackerOne),并注入匹配的分类参考、通用报告模板、CVSS 指南和 CWE 映射表。
- **两步脚本审批**,结合 AST 和正则表达式分析、损害评分,以及硬性阻止列表(反向 Shell、Webshell、数据渗出工具)。
- **双输出报告**:一份用于 Claude 和平台的、经过清理的聊天安全 `report.md`;一份通过保险库替换生成的包含真实值的 `report_full.md`,权限设置为 `chmod 600`,且对 AI 永远不可见。
完整设计请参见 [`ARCHITECTURE.md`](ARCHITECTURE.md)。
## 快速开始
### 前置条件
### 安装
```
git clone https://github.com//bb-mcp-server.git
cd bb-mcp-server
# 服务器依赖项
pip install -r server/requirements.txt
# 选择一个 workspace + vault 位置
export BB_ROOT="$HOME/Documents/BugBounty"
export BB_VAULT="$HOME/.bb-vault"
mkdir -p "$BB_ROOT" "$BB_VAULT"
chmod 700 "$BB_VAULT"
# 将 reference templates 放入你的 workspace
cp -r reference-templates "$BB_ROOT/reference"
# 设置 Claude Code
mkdir -p "$BB_ROOT/.claude"
cp settings.example.json "$BB_ROOT/.claude/settings.json"
cp .mcp.example.json "$BB_ROOT/.mcp.json"
# 编辑两个文件以使用指向 bb-mcp-server/ 的绝对路径
# 使 hooks 可执行
chmod +x hooks/*.sh
```
### 自带技能 (BYOS)
此服务器旨在**协同** Claude Code 技能工作,而非捆绑它们。触发钩子会拾取任何放入 `~/.claude/skills/` 的技能。
您可能想要接入的技能领域(任何来源 — 社区包、供应商发布、您自己的 — 一旦放入技能目录,工作方式都相同):
| 技能领域 | 使用场景 |
|------------|----------|
| Web 应用代码审查 | 根据 OWASP Top 10 / ASVS 风格的清单审计应用程序代码 |
| 云攻击面 | 目标位于 AWS / Azure / GCP — SSRF→元数据、存储桶配置错误、IAM |
| UI / 浏览器流程测试 | 通过无头浏览器驱动单页应用(SPA) |
| 智能合约审计 | Solidity 静态分析 + 审计工作流 |
| 恶意软件检测规则编写 | 编写 YARA 风格的规则 |
| 静态代码分析 | 输出 SARIF 格式的分析器 |
| 依赖项卫生 | 锁定版本、检查安全公告、自动修复 |
| 词表与载荷变体 | 注入语料库、模糊测试输入 |
| 渗透测试手册 | CTF / 通用 Web 渗透测试清单 |
触发映射(哪个信号加载哪个技能)在 [`hooks/skill-context-trigger.sh`](hooks/skill-context-trigger.sh) 中配置 — 请为您的自定义技能扩展它。
### 首次会话
```
cd "$BB_ROOT"
claude
```
Claude Code 读取 `.mcp.json`,启动 bb-hunter MCP 服务器,`UserPromptSubmit` 钩子在您首次提示时注入技能和参考索引。之后:
1. **设置项目**:告知 Claude 项目名称、平台、作用域。它将根据 [`examples/program-brief.template.md`](examples/program-brief.template.md) 中的模板创建 `programs//` 目录和 `brief.md` 文件。
2. **阶段 1(侦察)**:Claude 提出命令。每个涉及目标的工具调用都会向您显示结构化的工具前确认。您进行批准。
3. **阶段 2(漏洞发现)**:相同的门控;输出被清理并存入保险库;云/合约/浏览器上下文会自动加载匹配的技能。
4. **阶段 3(报告)**:`create_report` 会拒绝低于“高”严重性的漏洞,除非您明确传递 `force=True`。平台特定的分类、报告模板、CVSS / CWE 参考资料会由钩子自动加载。
5. **阶段 4(质量保证)**:Claude 根据平台特定的质量检查列表进行自检。您阅读清理后的报告。如果批准,将其复制粘贴到平台上。
## 仓库布局
```
bb-mcp-server/
├── README.md ← this file
├── ARCHITECTURE.md ← full design + data flow + security layers
├── LICENSE ← EUPL-1.2 (primary)
├── LICENSE-AGPL-3.0 ← AGPL-3.0 (alternative, at your option)
├── COMMERCIAL.md ← commercial-licence option for orgs that can't use copyleft
├── TRADEMARK.md ← name / wordmark policy (separate from code licence)
├── DCO.md ← Developer Certificate of Origin (contribution sign-off)
│
├── server/ ← the MCP server (Python)
│ ├── server.py ← FastMCP entry point + tool registration
│ ├── config.py ← allowlists, paths, redaction patterns, limits
│ ├── core/ ← executor, sanitizer, scope, approver, analyzer
│ ├── tools/ ← recon, web, vuln, utils tool wrappers
│ ├── vault/ ← hash-chained, chmod-600 vault writer
│ ├── audit/ ← append-only audit log
│ ├── reports/ ← dual-output report generator
│ ├── requirements.txt
│ ├── setup.sh
│ └── test_*.py ← unit + integration tests
│
├── hooks/ ← Claude Code-side glue
│ ├── autoload-skills.sh
│ ├── pre-tool-confirm.sh
│ └── skill-context-trigger.sh
│
├── reference-templates/ ← drop into your workspace's reference/
│ ├── payloads.md
│ ├── tools.md
│ ├── cvss_guide.md
│ ├── cwe_map.md
│ ├── report_template.md
│ ├── intigriti_taxonomy.md
│ ├── bugcrowd_vrt.md
│ └── hackerone_taxonomy.md
│
├── examples/
│ └── program-brief.template.md
│
├── .mcp.example.json ← Claude Code MCP registration
└── settings.example.json ← Claude Code project settings (hooks + perms)
```
## 安全模型
完整分解请参见 [`ARCHITECTURE.md`](ARCHITECTURE.md)。简而言之,有 13 层相互叠加:
1. 进程隔离(firejail / systemd 加固,可选)
2. 文件系统最小权限(显式读/写白名单)
3. 工具白名单 + 阻止列表(无 Shell,无包管理器,无 SSH)
4. 参数验证(无 Shell 元字符,无空字节,无目录遍历)
5. 60 多种清理模式(认证头、SaaS 令牌、云凭据、PII)
6. 保险库完整性(SHA-256 哈希链,chmod 600,仅追加)
7. 结合 AST 分析的两步脚本审批
8. 输出 + 速率限制(输出上限 50 行 / 8 KB;默认 5 rps)
9. 禁止的载荷模式(DROP、rm -rf、反向 Shell 等)
10. 锁定依赖项 + pip-audit
11. GPG 报告签名(可选)
12. `create_report` 上的严重性门控(仅影响任务)
13. 钩子架构(工具前/后,提示提交)— 上下文感知的技能加载 + 每工具确认
## 这不是什么
- **不是扫描器。** 它是围绕扫描器的清理包装器。
- **不是技能的替代品。** 技能(第三方)带来测试知识。此服务器带来安全性和工作流护栏。
- **不是自主的。** 每个涉及目标的调用都受操作员批准门控。AI 提出建议;操作员做出决定。
- **不适用于未授权测试。** 作用域从 `brief.md` 强制执行 — 超出范围 = 阻止。
## 许可证
采用双重许可,您可选择其一:
- **[欧洲联盟公共许可证 v1.2](LICENSE)** (EUPL-1.2) — 主要
- **[GNU Affero 通用公共许可证 v3.0](LICENSE-AGPL-3.0)** (AGPL-3.0) — 备选
两者均为强 copyleft 许可证,包含网络使用条款:将修改后的版本作为托管服务运行,即有义务向该服务的用户公开您的修改源代码。
源文件带有 SPDX 头:`# SPDX-License-Identifier: EUPL-1.2 OR AGPL-3.0`。
### 为何选择此许可证而非 MIT / Apache / GPLv3
bb-mcp-server 最初采用 MIT 许可证,并于 2026 年 5 月重新许可。原因有四:
1. **它堵住了 SaaS 漏洞。** MIT 允许公司获取代码、进行修改,并且永不分享 — 包括将其作为托管服务运行。GPLv3 有同样的问题:它仅在*分发*时触发,而非网络使用。EUPL-1.2(第 13 条)和 AGPL-3.0(第 13 条)都将“向公众传播”/网络使用视为触发源代码公开的条件。对于 MCP **服务器** — 这种明确设计为服务运行的东西 — 堵住这个漏洞正是关键所在。
2. **它符合项目辖区。** EUPL-1.2 以欧盟法律语言起草,拥有 23 种具有同等法律效力的官方译文,并引用欧盟法律处理保修/责任条款 — 因此欧盟法院无需翻译或重新解释美式“按原样”的样板条款。AGPL-3.0 是为欧盟外用户准备的全球后备方案,他们可能对 EUPL 不熟悉。
3. **它保护了作为安全工具的成果。** 一个漏洞赏金 MCP 服务器正是那种会被整合进商业渗透测试平台的代码。没有 copyleft,加固工作(速率限制、作用域检查、保险库、审计日志、验证器门控)可能被悄悄吸收进闭源产品,而下游操作员永远看不到这些安全改进。Copyleft + 网络条款意味着任何运行修改版 bb-mcp-server 的人都必须公开其修改 — 防御者受益,守门人无益。
4. **双重许可保持了可采用性。** EUPL-1.2 的附录明确列出了 AGPL-3.0、GPL-2.0/3.0、MPL-2.0、OSL、EPL 等兼容许可证,因此衍生作品可以重新许可而不会陷入死胡同。AGPL-3.0 是许多安全工具(MISP、OpenCTI、BloodHound CE、OWASP ZAP 的部分内容)已经使用的许可证,因此对注重安全的贡献者来说很熟悉。提供两种选择让贡献者或下游项目可以选择最适合其技术栈的许可。
**诚实的权衡:** 少数企业用户不会接触 AGPL / EUPL,因为其内部法律政策禁止 copyleft 网络使用条款(Google 内部就禁止使用 AGPL;许多初创公司效仿)。这种采用是有意放弃的 — 这些组织恰恰是最可能将代码吸收进闭源产品的。MIT 为“不惜一切代价的采用”而优化;EUPL / AGPL 则为*“使用此软件的人会回馈”*而优化。
### 对先前下载者的向后兼容性
bb-mcp-server v0.2.0 及更早版本在 MIT 许可证下发布。任何获得这些版本的用户,在这些副本上永久保留 MIT 许可证 — 重新许可仅适用于 2026-05-09 及之后的提交和发布。您无需重新许可或重新下载已拥有的任何内容。
### 商业许可
如果您的组织因法律或政策原因无法使用 AGPL 或 copyleft 网络使用条款,可以提供**商业许可**。同样的代码,同样的发布流,用专有条款替代 EUPL-1.2 / AGPL-3.0。详情及联系方式请参见 [`COMMERCIAL.md`](COMMERCIAL.md)。
### 商标
“bb-mcp-server”名称是项目作者的商标。分支和衍生作品必须重命名 — 详见 [`TRADEMARK.md`](TRADEMARK.md)。许可证涵盖代码;商标政策涵盖名称。
### 贡献
所有贡献都需要 `Signed-off-by:` 尾注([开发者原产地证书](DCO.md))。完整流程和 DCO 签署规则请参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
## 致谢
- 所有 Claude Code 技能均为第三方。此服务器只是围绕它们的外壳 — 请单独安装所需的技能包,并在重新分发前检查每个技能包的许可证。
- Bugcrowd VRT(位于 `reference-templates/bugcrowd_vrt.md`)来源于 上的公共分类。
- HackerOne 和 Intigriti 报告字段参考源自其公开提交界面;提交前请查阅两个平台以获取当前权威副本。
标签:Cutter, 逆向工具