PatrikFehrenbach/h1-brain
GitHub: PatrikFehrenbach/h1-brain
一个 MCP 服务器,将你的 HackerOne 漏洞赏金历史同步到本地 SQLite 数据库,让 AI 助手能够分析过往报告、项目范围和漏洞模式,为新目标生成个性化的攻击简报。
Stars: 0 | Forks: 0
# h1-brain
一个将你的 AI 助手连接到 HackerOne 的 MCP server。它将你的漏洞赏金历史、项目范围和报告详情拉取到本地 SQLite 数据库中,然后暴露工具,让任何兼容 MCP 的客户端(Claude Desktop、Claude Code 等)都能搜索、分析并基于你过去的工作进行构建。
核心工具 `hack(handle)` 仅需一次调用即可生成完整的黑客会话简报:来自 API 的最新范围、你在该项目上的过往发现、来自你全局战绩的漏洞类型模式、未触及的资产,以及建议的攻击向量 —— 所有内容都格式化为可执行的 AI 指令。
## 环境要求
- Python 3.10+
- 一个 HackerOne API token([在此生成](https://hackerone.com/settings/api_token))
## 设置
```
git clone https://github.com/user/h1-brain.git
cd h1-brain
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
## 连接到 Claude
### Claude Desktop
添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`:
```
{
"mcpServers": {
"h1-brain": {
"command": "/path/to/h1-brain/venv/bin/python",
"args": ["/path/to/h1-brain/server.py"],
"env": {
"H1_USERNAME": "your_hackerone_username",
"H1_API_TOKEN": "your_api_token"
}
}
}
}
```
保存后重启 Claude Desktop。
### Claude Code
```
claude mcp add h1-brain \
-e H1_USERNAME=your_hackerone_username \
-e H1_API_TOKEN=your_api_token \
-- /path/to/h1-brain/venv/bin/python /path/to/h1-brain/server.py
```
或者手动添加到 `.claude/settings.json`:
```
{
"mcpServers": {
"h1-brain": {
"command": "/path/to/h1-brain/venv/bin/python",
"args": ["/path/to/h1-brain/server.py"],
"env": {
"H1_USERNAME": "your_hackerone_username",
"H1_API_TOKEN": "your_api_token"
}
}
}
}
```
## 首次运行
连接后,填充你的本地数据库:
1. **`fetch_rewarded_reports`** —— 拉取所有已获得赏金的报告,包括完整的漏洞描述和附件元数据。这是最重要的一步。
2. **`fetch_programs`** —— 拉取你有权访问的所有项目。
这些只需运行一次。定期重新运行以同步新报告。
## 工具
### `hack(handle)`
主要入口点。一次调用即可完成所有工作:
1. 从 HackerOne API 获取最新的项目范围
2. 从本地数据库拉取你在该项目的过往奖励报告
3. 交叉引用你的完整报告历史以寻找漏洞模式
4. 识别你尚未报告过的范围内未触及资产
5. 根据在其他项目中成功但在该项目尚未发现的漏洞类型建议攻击向量
6. 返回结构化的 markdown 简报,其中包含嵌入式 agent 指令
输出设计为可直接用作 agent 指令 —— AI 阅读简报后立即知道范围、历史记录以及重点聚焦哪里。
**简报结构:**
- **Scope (范围)** —— 符合赏金资格和非赏金资产,包含严重程度上限和指令
- **Your Past Findings (你的过往发现)** —— 在该项目上获得奖励的报告,包含严重程度、漏洞类型和赏金金额
- **Weakness Types That Worked (有效的漏洞类型)** —— 你在此处获得奖励的每种漏洞类型的频率
- **Untouched Scope (未触及的范围)** —— 零发现的符合赏金资格的资产
- **Suggested Attack Vectors (建议的攻击向量)** —— 在其他项目中获得奖励但在此处尚未发现的漏洞类型,按频率排名
- **Instructions (指令)** —— 指导 AI 在定义的范围内提供协助
### 搜索工具
这些工具查询本地 SQLite 数据库。无 API 调用,即时结果。
| 工具 | 描述 |
|------|-------------|
| `search_reports(query, program, weakness, severity, limit)` | 按标题、项目 handle、漏洞类型(如 `"SSRF"`、`"XSS"`)或严重程度评级(`critical`、`high`、`medium`、`low`)搜索报告。所有过滤器均为可选,并以 AND 逻辑组合。返回按赏金金额排序的结果及漏洞片段。 |
| `search_programs(query, bounty_only, limit)` | 按 handle 或名称搜索项目。可选择仅筛选提供赏金的项目。 |
| `search_scopes(program, asset, bounty_only, limit)` | 搜索所有已存储项目中的资产。按项目 handle、资产标识符或赏金资格进行筛选。 |
| `get_report(report_id)` | 完整报告详情:元数据、严重程度、漏洞类型、赏金、漏洞描述以及带 ID 的附件列表。 |
| `get_report_summary()` | 所有已奖励报告的摘要,按项目分组,包含报告数量和赏金总额。 |
### 附件工具
| 工具 | 描述 |
|------|-------------|
| `fetch_attachment(report_id, attachment_id?)` | 获取报告附件的最新下载 URL。URL 约一小时后过期。如果省略 `attachment_id`,则返回该报告所有附件的 URL。 |
附件元数据(文件名、类型、大小)在 `fetch_rewarded_reports` 期间存储在本地。实际文件位于 S3 上并带有过期 URL,因此 `fetch_attachment` 每次都会调用 API 以获取新链接。
### 数据同步工具
这些工具从 HackerOne API 获取数据并将其存储在本地。
| 工具 | 描述 |
|------|-------------|
| `fetch_rewarded_reports` | 拉取所有已授予赏金的报告,包含完整详情、漏洞描述和附件元数据。并发获取报告详情(一次 10 个)。 |
| `fetch_programs` | 拉取所有可访问的项目。 |
| `fetch_program_scopes(handle)` | 拉取特定项目的结构化范围。由 `hack()` 自动调用。 |
## 架构
```
server.py Single-file MCP server
h1_data.db SQLite database (auto-created on first run)
requirements.txt Python dependencies (mcp, httpx)
```
### 数据库 Schema
- **reports** —— id, title, state, dates, program_handle, weakness (name + CWE), severity (rating + score), bounty (amount + currency), vulnerability_information, disclosed_at
- **programs** —— id, handle, name, submission_state, offers_bounties, currency
- **scopes** —— id, program_handle, asset_identifier, asset_type, bounty/submission eligibility, max_severity, instruction
- **attachments** —— id, report_id, file_name, content_type, file_size, created_at
所有表都在常用查询字段上建立了索引。数据库使用 WAL 模式以支持并发读取。
### API 集成
- 通过 HackerOne API v1 Basic Auth 进行认证
- 自动处理分页(每页 100 项)
- 速率限制处理及自动重试(遇到 429 时退避 60 秒)
- 并发报告详情获取(信号量限制为 10)
## 作者
**Patrik Grobshäuser** — [LinkedIn](https://www.linkedin.com/in/patrikfehrenbach/) · [X](https://x.com/itsecurityguard)
## 许可证
MIT
标签:AI安全助手, API集成, Claude集成, HackerOne, MCP服务器, Python, 可观测性, 域名收集, 实时处理, 密码管理, 无后门, 本地数据库, 白帽黑客, 知识库管理, 自动化攻击分析, 运行时操纵, 逆向工具