airtasystems/Genbounty-LLM-Hunter-Community-Free
GitHub: airtasystems/Genbounty-LLM-Hunter-Community-Free
Genbounty LLM Hunter 是一款社区版 LLM 安全评估工具包,帮助白帽子和赏金猎人对 AI 应用进行可重复的漏洞挖掘 pipeline。
Stars: 1 | Forks: 1
# Genbounty LLM Hunter

**Genbounty LLM Hunter** 是一个开源的**社区版**工具包,用于**AI 漏洞赏金挖掘**、**LLM 安全测试**,以及对聊天机器人、AI agent 和基于 LLM 的 API 进行**授权的白帽评估**。它帮助研究人员和赏金猎人从手动 prompt 测试转向可重复的 pipeline:**生成对抗性测试**、**执行测试**、**筛选严重程度**,并将**结构化结果**导出为 JSON 或发送至 [Genbounty](https://genbounty.com) 平台。
### 社区版(免费)与 Premium 版对比
| | **社区版**(本仓库) | **Premium 版** |
|--|---------------------------|-------------|
| 策略 | `zero_shot`, `jailbreak` | 高级扩展包(multi-shot, CoT/ToT, adaptive, multimodal, …) |
| 生成 | 开环 / 隐蔽优先 | 闭环 **Enhance and Run**,理论接受/拒绝 |
| 技术 | 通用谱系 | 完整分类注册表 + 合成 |
| Recon | `recon.json` 基线 | Hunt intel, Recon Round, extract-from-report |
| 载荷 / 多模态 | 仅 UI 预览 | 文件上传工件生成 |
| Prompt 转换 | 仅 UI 预览 | 混淆、翻译、加密、重构 等 |
| Play 编写 | 简单 CRUD | AI Create play, Advanced / JSON 编辑器 |
| 浏览器规模 | 人工获取路径 | 网络捕获,池化 / 隐蔽扩展 |
Premium:在 **[genbounty.com/llm-hunter](https://genbounty.com/llm-hunter)** 解锁完整产品。
使用社区版通过基于 play 的狩猎来挖掘 **prompt injection**、**jailbreak**、**系统 prompt 泄露**、**敏感数据披露**以及相关的 LLM 故障。测试通过**浏览器自动化**(Playwright)或直接的 **HTTP API** 提交来运行。
与静态检查清单或一次性的 ChatGPT 会话不同,Genbounty Hunter 从安全准则中**生成与分类对齐的攻击套件**,为每个测试用例捕获 **prompt/响应证据**,运行 **AI 辅助的结果评估**(严重程度 + 判断推理),并以可下载的 JSON 或通过 Genbounty 的安全评估导入 API **交付报告**——非常适合**漏洞赏金计划**、**渗透测试交付物**以及发布前的 **ML 安全回归测试**。
**完整文档:** [documentation/](documentation/README.md)
## 功能概述(社区版 pipeline)
| 步骤 | UI 标签页 | 输出 |
|------|--------|--------|
| **连接目标** | Connect Target | `config.yaml`(选择器或 API 传输),可选认证 |
| **Recon** | Recon | `recon.json`(组件基线)。Hunt intel / Recon Round 属于 **Premium**。 |
| **生成测试** | Generate Tests | `browser-bot/sites///tests/` 下的 Suite JSON(`zero_shot` / `jailbreak`) |
| **构建工件** | Multimodal | **Premium** 预览 - [解锁](https://genbounty.com/llm-hunter) |
| **编辑套件** | Test Management | 对分类和 prompt 进行就地编辑 |
| **运行测试** | Run Tests | `run_log.json` → `attack_log.json`(Enhance / 转换属于 **Premium**) |
| **评估结果** | Finding Assessment | `pipeline_report.json`(每个 prompt 的严重程度 + 推理) |
| **提交** | Create Bug Bounty Report | 下载过滤后的 `pipeline_report.json`,或 POST 到 Genbounty |
```
connect → recon → generate → run → finding assessment → create bug bounty report
```
**范围:**仅限可观察的黑盒行为(prompt、响应)。请仅测试您获准评估的系统。
## 适用人群
- 针对 AI 聊天机器人、agent 和基于 API 的 LLM 应用(在 Genbounty 或类似计划中)进行测试的**漏洞赏金猎人**。
- 在客户测试环境中进行结构化狩猎并导出证据的**白帽子 / 渗透测试人员**。
- 在每次发布时进行回归测试,并比较不同构建版本间 `category_rollup` 的 **Appsec / MLsec** 人员。
## 前置条件
1. 复制 [`.env.example`](.env.example) → `.env` 并设置 `GEMINI_API_KEY`(用于测试生成 + 结果评估)。
2. 通过 **Connect Target** 将目标注册在 `browser-bot/sites///` 下。
3. 运行 **Recon** 以生成 `recon.json`(生成 / 活动规划使用的组件基线)。
4. 对于 **提交至 Genbounty**(可选):`GENBOUNTY_HOST`、`GENBOUNTY_API_KEY` 以及计划的 `user_id`(参见 [导出与报告](documentation/12-export-and-reporting.md))。**导出为 JSON** 不需要平台凭证。
## 环境要求
- Python 3.10+
- Chromium (Playwright)。首次运行时,`start.py` 会自动安装 Playwright 的 Chromium。
### Python / `python3` 故障排除
在 Debian、Ubuntu 和 WSL 上,通常缺少 `python` 命令;仅安装了 `python3`。
| 症状 | 修复方法 |
|---------|-----|
| `python: command not found` | 使用 `python3` 运行命令(例如 `python3 start.py`) |
| 希望在终端中使用 `python` | 在 `~/.bash_aliases` 中添加:`alias python=python3`,然后执行 `source ~/.bashrc` 或打开一个新的 shell |
| 在脚本 / CI 中仍然缺少 `python` | 别名仅适用于**交互式** bash;请使用 `python3`,或安装 `python-is-python3`(`sudo apt install python-is-python3`)以获取系统级的 `python` shim |
| Python 版本错误或过旧 | `python3 --version`(需要 3.10+);如果手动创建环境,请使用 `python3 -m venv` |
`start.py` 在首次运行后使用项目 venv 的 Python;问题通常出在您用于引导的**宿主机**解释器上(`python` 与 `python3`)。
### Playwright 在 Ubuntu 26.04 上的支持
Playwright 1.60 不提供 `ubuntu26.04-x64` 浏览器构建版本。`start.py` 会在 Ubuntu 26+ 上将 `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE` 设置为 Ubuntu 24.04 构建版本,并在需要时重试安装。
| 症状 | 修复方法 |
|---------|-----|
| `Playwright does not support chromium on ubuntu26.04-x64` | 重新运行 `python3 start.py`(如果缺少 Chromium,将再次运行安装) |
| 手动安装 | `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 python3 -m playwright install chromium`(引导后使用 venv 的 `python`) |
| 浏览器启动失败(缺少库) | `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 python3 -m playwright install-deps` |
## 快速开始(Web UI)
```
python start.py
```
打开 **http://localhost:8000**。在侧边栏中的工作流:
1. **Connect Target** - 浏览器发现或 API 探测;保存 `config.yaml`。
2. **Recon** - 浏览器探测写入 `recon.json`。(Intel / Recon Round 标签页是 Premium 预览。)
3. **Generate Tests** - 选择一个 playbook + `zero_shot` 或 `jailbreak`;隐蔽优先的开环 prompt。
4. **Run Tests** - 执行测试套件;实时截图和结果表格。
5. **Finding Assessment** - 判断严重程度(`indeterminate` … `critical`);写入 `pipeline_report.json`。
6. **Create Bug Bounty Report** - 下载一份或批量(过去 1 小时 / 4 小时 / 24 小时)报告为 JSON,或在配置凭证后提交至 Genbounty。
## 本地测试目标
```
python test-target/app.py
```
使用站点 `localhost:3000`,组件为 `chat`(或根据您的设置选择 `main`)。请参见 [test-target/README.md](test-target/README.md)。
## Play(攻击假设)
Play 是保存在 `playbooks/*.json`(schema v3)下、由假设驱动的准则。每个 play 包含:
- **标题** + **play**(一句话的攻击假设)
- **分类**,用于 UI 分组(Prompt Injection, Sandbox/Code, RAG/Upload 等)
- **1–3 个准则分类**,包含用于生成和评估的 `exploited_if` / `mitigated_if`
- **`recommended_strategies`** - 活动默认值(社区版仅使用 `zero_shot` / `jailbreak`)
在 UI 中编辑 play(**Plays** 标签页 → **Simple** 编辑器,或 **New from template**)。AI **Create play**、**Regenerate**、**Advanced** 和 **JSON** 编辑器属于 **Premium**。
| 标题 | Play | 分类 |
|-------|------|----------|
| 直接指令覆盖 | (见随附 playbook) | Prompt / Instruction |
Play 在 **Plays** 和 **Generate** 标签页中按分类分组。内置示例:
`playbooks/direct_instruction_override.json`。模板:`playbooks/_template.json`。
**活动默认值:** `GET /api/campaign/plan` 会根据
`recon.json` 中的能力优先使用 jailbreak,然后是 zero_shot。
## 策略
| 策略 | 作用 | 版本 |
|----------|------|---------|
| `zero_shot` | 单消息攻击(默认隐蔽优先) | 社区版 |
| `jailbreak` | 专注于越狱的技术 | 社区版 |
| `multi_shot`, `few_shot`, `iterative`, CoT / ToT / … | 高级扩展包 | **Premium** |
| `adaptive`, `multimodal` | 基于响应的后续操作 / 文件上传狩猎 | **Premium** |
默认 play:`playbooks/` 下第一个可用的 play(例如 **`direct_instruction_override`**)。
## 多模态 / 文件上传狩猎
**Premium。** 多模态交付和载荷生成器包含在
[Genbounty LLM Hunter Premium](https://genbounty.com/llm-hunter) 中。社区版的多模态标签页
是锁定的预览状态(API 返回 410)。
## CLI(自动化 / CI)
Web UI(`python start.py`)是主要界面。`main.py` 子命令仅用于脚本编写:
```
python main.py generate --strategy zero_shot --playbook sandbox_breakout --site localhost:3000 --component chat
python main.py run browser-bot/sites/localhost:3000/chat/tests/zero-shot/sandbox-breakout.json \
--site localhost:3000 --component chat --assess
python main.py security-assess path/to/attack_log.json
python main.py export path/to/pipeline_report.json
```
子命令:`generate`, `run`, `security-assess`, `export`。发现、登录和 playbook 仅限 Web UI 使用。社区版 CLI 生成支持 `zero_shot` 和 `jailbreak`。
## 工件
| 文件 | 生成时间 |
|------|------|
| Suite JSON | 生成后 - `playbook`, `playbook_id`, `categories[].prompts[]`, 每个 prompt 可选的 `generation_profile` / `probe_class` |
| `run_log.json` | 原始运行记录 |
| `attack_log.json` | 用于评估的标准化日志 |
| `pipeline_report.json` | 结果评估后 - `adversarial_results[]`, 可选的 `category_rollup` |
导出将 `pipeline_report.json` → 映射为安全评估 JSON(Web UI **Export as JSON**,与
Genbounty 提交的格式相同),或将该 payload POST 到 Genbounty
**`/api/v2/security-assessments/import`**(分批处理,默认每次 POST 25 个结果)。请参见
[导出与报告](documentation/12-export-and-reporting.md)。
## 配置
| 来源 | 用途 |
|--------|---------|
| [`.env`](.env) | `GEMINI_API_KEY`, `GENBOUNTY_HOST`, `GENBOUNTY_API_KEY`, `GENBOUNTY_USER_ID`, 导出微调 |
| [`.config`](.config) | `GEMINI_MODEL`, `GEMINI_JUDGE` |
| `config.defaults.yaml` | 全局 browser-bot 默认设置 |
| `browser-bot/sites///config.yaml` | 每个目标的选择器、API URL、设置覆盖 |
### 生成环境变量(社区版)
| 变量 | 默认值 | 用途 |
|----------|---------|---------|
| `GENBOUNTY_DETECTION_FLOOR` | `skip` | `skip`(隐蔽优先),`required`(始终包含直接探测),`optional` |
| `GENBOUNTY_OPEN_LOOP_PROMPTS` | `4` | 开环生成时分类的 prompt 数量 |
| `GENBOUNTY_SKIP_DETECTION_FLOOR_AT_RUN` | `0` | 在执行时跳过 `probe_class=detection_floor` 的 prompt |
闭环 / Enhance / 转换 / 预检变量(`GENBOUNTY_CLOSED_LOOP_PROMPTS`,
`GENBOUNTY_AUTO_FEEDBACK`, `GENBOUNTY_GEN_TRANSFORMS`, …)仅适用于 **Premium** - 在这里
设置它们不会产生任何效果。请参见 [09 - 配置](documentation/09-configuration.md)。
## 项目结构
- `start.py` - 引导 venv 并启动 Web UI
- `main.py` - 脚本 CLI(`generate`, `run`, `security-assess`, `export`);Web UI 是主要的
- `web/` - FastAPI 后端 + SPA(带有 Premium 预览的社区版 UI)
- `generate-tests/` - 攻击生成(`core.py`, `strategies/`)
- `browser-bot/` - Playwright / API 测试运行器
- `risk-level-agent/` - Playbook 专家 + 用于结果评估的判断器
- `pipeline/` - `convert_log.py`, `security_assess.py`, `export_security.py`, …
- `playbooks/` - 安全 playbook 和模板
- `payloads/` - 多模态生成器(Premium 产品路径;在此构建版本中受限)
- `test-target/` - 用于实验室运行的本地易受攻击助手
- `documentation/` - 面向用户的 wiki
- `blog/` — 公告帖子和风格说明
## 授权
仅对您获得许可测试的目标和计划使用。本工具包会自动执行攻击性 prompt 并导出测试结果;您需对测试范围、速率限制和计划规则负责。
## 许可证
MIT - 请参见 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, LLM测试, 浏览器自动化, 特征检测, 逆向工具