hacker-00x1/Bug-Bounty-Tootkit
GitHub: hacker-00x1/Bug-Bounty-Tootkit
面向 Bug Bounty 猎人的自动化侦察与漏洞扫描器,通过并行流水线执行全面侦察和二十余项漏洞检测,并支持断点恢复与多格式报告生成。
Stars: 0 | Forks: 0
# Hacker00X1 — Bug Bounty 工具包
专为 Bug Bounty 猎人设计的自动化侦察与漏洞扫描器。在并行的 4 阶段流水线中执行全面侦察、端口扫描、爬虫以及 20 多项漏洞检查,随后生成适配 HTML、JSON、OWASP 和 HackerOne 的 markdown 报告。
## 快速开始
```
# 1. 安装依赖(只需一次)
pip install -r requirements.txt
# 针对目标运行
python bb.py example.com
```
报告默认保存在 `reports/` 目录下。
## 用法
```
python bb.py [TARGET] [OPTIONS]
python bb.py --target-list targets.txt [OPTIONS]
```
### 示例
```
# 完整扫描
python bb.py example.com
# 扩展端口范围的完整 URL
python bb.py https://api.example.com --ports extended
# 生成所有报告类型
python bb.py example.com --report-owasp --export-h1
# H1 triage 模式 — 仅限 CRITICAL/HIGH 已确认的发现,自动包含 HackerOne 报告
python bb.py example.com --triage
# 跳过慢速模块以进行快速扫描
python bb.py example.com --skip-ports --skip-subdomains --skip-crawl
# 扫描目标列表,为每个目标输出 HackerOne 报告
python bb.py --target-list targets.txt -o /tmp/reports --export-h1
# 自定义输出目录和线程
python bb.py example.com -o /tmp/myreports --threads 20 --timeout 8
# Quiet 模式 — 最小化控制台输出
python bb.py example.com -q --json-only
# 从最后完成的阶段恢复中断的扫描
python bb.py example.com --resume
# 列出所有目标的所有进行中的 checkpoints
python bb.py --list-checkpoints
```
### targets.txt 格式
```
# 以 # 开头的行是注释,将被跳过
example.com
sub.example.com
https://api.example.com
# 空行也会被跳过
staging.example.com
```
## 所有参数
### 核心
| 参数 | 简写 | 默认值 | 描述 |
|------|-------|---------|-------------|
| `TARGET` | | — | 要扫描的域名或完整 URL |
| `--target-list` | `-T` | — | 每行包含一个目标的文件 |
| `--config` | `-c` | `config.yaml` | 自定义 YAML 配置文件 |
| `--output-dir` | `-o` | `reports/` | 报告输出目录 |
| `--threads` | `-t` | 30 | 并发线程数 |
| `--timeout` | | 4 | 请求超时时间(秒) |
| `--quiet` | `-q` | off | 最小化控制台输出 |
### 报告
| 参数 | 描述 |
|------|-------------|
| `--no-report` | 跳过保存任何报告 |
| `--json-only` | 仅保存 JSON 报告(跳过 HTML) |
| `--report-owasp` | 生成 OWASP Top 10 合规 HTML 报告 |
| `--export-h1` | 生成适配 HackerOne 的 markdown 报告 |
### H1 分诊模式
| 参数 | 描述 |
|------|-------------|
| `--triage` | 仅保留状态为**已确认**或**极可能**的 CRITICAL/HIGH 发现。自动启用 `--export-h1`。在提交给 HackerOne 之前立即使用,可去除干扰并专注于高价值漏洞。 |
### 恢复与检查点
| 参数 | 描述 |
|------|-------------|
| `--resume` | 从上次完成的阶段恢复中断的扫描。跳过已完成阶段的所有网络 I/O,并从扫描崩溃或被终止的地方继续。 |
| `--list-checkpoints` | 显示所有进行中的扫描检查点及其阶段状态、进度条、存在时间和开始时间——随后退出。 |
### 扫描控制
| 参数 | 描述 |
|------|-------------|
| `--ports` | 端口范围:`common`(默认)、`extended` 或 `all` |
| `--ignore-ssl` | 忽略 SSL 证书错误 |
| `--skip-validate` | 跳过扫描后的发现结果重新验证(速度更快,但存在更多误报) |
| `--wordlist-subdomains` | 自定义子域名字典 |
| `--wordlist-dirs` | 自定义目录 fuzzing 字典 |
| `--scope-file` `-s` | JSON/YAML 范围文件——从所有报告中剔除超出范围的发现 |
### 跳过参数
| 参数 | 跳过项 |
|------|-------|
| `--skip-waf` | WAF 及速率限制指纹识别 |
| `--skip-ports` | 端口扫描 |
| `--skip-subdomains` | 子域名枚举 |
| `--skip-dirfuzz` | 目录 fuzzing |
| `--skip-vulns` | 核心漏洞检查 |
| `--skip-takeover` | 子域名接管检测 |
| `--skip-xss-gen` | 上下文感知的 XSS 分析 |
| `--skip-js` | JavaScript 文件分析 |
| `--skip-cors-deep` | 深度 CORS 错误配置扫描 |
| `--skip-smuggle` | HTTP 请求走私检测 |
| `--skip-redirect` | 开放重定向链分析 |
| `--skip-crawl` | 被动链接爬虫 |
| `--skip-owasp` | OWASP Top 10 检查 |
| `--skip-sqli` | SQL 注入模块 |
| `--skip-auth` | 身份验证测试 |
| `--skip-pathtraversal` | 路径遍历 / LFI |
| `--skip-cmdinject` | 命令注入 |
| `--skip-bizlogic` | 业务逻辑漏洞 |
| `--skip-infodisclosure` | 信息泄露 |
| `--skip-accesscontrol` | 访问控制 / IDOR |
| `--skip-fileupload` | 文件上传漏洞 |
| `--skip-raceconditions` | 竞态条件检测 |
| `--skip-ssrf` | SSRF 测试 |
| `--skip-xxe` | XXE 注入 |
| `--skip-nosqli` | NoSQL 注入 |
| `--skip-apitest` | API 端点测试 |
| `--skip-webcache` | Web 缓存欺骗/中毒 |
### 爬虫选项
| 参数 | 默认值 | 描述 |
|------|---------|-------------|
| `--crawl-depth` | 2 | 最大爬取深度 |
| `--crawl-pages` | 60 | 最大爬取页面数 |
| `--crawl-scope` | `domain` | `domain` = 仅同一主机,`subdomains` = 包含所有子域名 |
| `--crawl-delay` | 0 | 对同一主机的请求间隔毫秒数 |
| `--no-robots` | off | 忽略 `robots.txt` |
## 扫描流水线
每个目标都会通过一个**并行的 4 阶段流水线**运行。相互独立的阶段会同时触发,与顺序执行的方法相比,大幅缩短了总扫描时间。
```
IP Resolution
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 1 — Parallel ║
║ WAF fingerprinting · DNS records · Subdomain enum · Port scan ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 2 — Sequential ║
║ Homepage fetch · Technology detection · Directory fuzzing ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 3 — Parallel ║
║ Passive crawler · Subdomain takeover detection ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 4 — All modules simultaneously (20+ threads) ║
║ Core vulns · JS analysis · Deep CORS · HTTP smuggling ║
║ XSS generation · Open redirects · OWASP Top 10 ║
║ SQLi · Auth · Path traversal · Cmd injection · Biz logic ║
║ Info disclosure · Access control · File upload ║
║ Race conditions · SSRF · XXE · NoSQLi · API testing ║
║ Web cache deception/poisoning ║
╚══════════════════════════════════════════════════════════════════╝
↓
Post-scan validation (re-tests each finding, removes false positives)
↓
Report generation JSON + HTML + OWASP HTML + HackerOne MD
```
## 恢复与检查点
针对复杂目标的长时间扫描可能需要 30 分钟以上。如果扫描崩溃、断网或在运行期间被终止,`--resume` 可让你准确地从停止的地方继续——完全没有重复的网络 I/O。
### 工作原理
每个阶段完成后,其完整结果会被序列化到:
```
{output-dir}/.checkpoints/{domain}.json
```
在恢复运行时,已完成的阶段会从磁盘加载,并完全跳过其工作。只有剩余的阶段会实际运行。
### 工作流
```
# 扫描在 Phase 4 期间崩溃
python bb.py example.com
# 恢复 — Phases 1/2/3 从磁盘加载,Phase 4 从头重新运行
python bb.py example.com --resume
```
恢复时的控制台输出:
```
⏩ Resume Mode ──────────────────────────────────────────
Checkpoint : reports/.checkpoints/example_com.json
Created : 2026-05-31T10:02:44
Completed : p1, p2, p3
Skipping completed phases — running only remaining work.
━━ Phase 1/4 — ⏩ loaded from checkpoint
━━ Phase 2/4 — ⏩ loaded from checkpoint
━━ Phase 3/4 — ⏩ loaded from checkpoint
━━ Phase 4/4 — Parallel vulnerability scan (22 modules)
```
当扫描成功完成后,检查点文件会被**自动删除**,因此陈旧的数据绝不会干扰未来的全新扫描。
### 列出检查点
```
python bb.py --list-checkpoints
# 或使用自定义输出目录:
python bb.py --list-checkpoints -o /tmp/reports
```
显示所有进行中的扫描表:
```
╭─ ⏸ Checkpoint Registry ─ 3 in-progress scans ────────────────────────╮
│ Scans that were interrupted mid-run. │
│ Resume any with: python bb.py --resume │
╰───────────────────────────────────────────────────────────────────────────╯
# Domain Phases Progress Last seen
1 example.com ● Recon ● Web ● Crawl ○ Vulns ██████░░ 2h 14m ago
2 api.target.io ● Recon ● Web ○ Crawl ○ Vulns ████░░░░ 45m ago
3 staging.app.com ● Recon ○ Web ○ Crawl ○ Vulns ██░░░░░░ 8d ago
```
绿点 `●` = 阶段完成并已保存。暗色 `○` = 尚未运行。
## H1 分诊模式 (`--triage`)
将扫描输出过滤为仅保留最有可能被 HackerOne 接受的漏洞:
- 仅保留 **CRITICAL** 和 **HIGH** 严重程度的发现
- 仅保留置信度为**已确认**或**极可能**的发现
- 自动启用 `--export-h1`(始终会生成 HackerOne markdown 报告)
- 最后打印一个绿色的汇总面板,显示具有可操作性的统计数据
```
# 推荐的提交前工作流
python bb.py example.com --triage
```
当你准备好撰写漏洞报告时,在全面扫描完成后使用此模式——没有干扰,没有低置信度的推测性发现。
## 报告类型
| 文件 | 生成时机 |
|------|---------------|
| `_.json` | 总是生成(除非使用 `--no-report`) |
| `_.html` | 总是生成,除非使用 `--json-only` |
| `__owasp.html` | 使用 `--report-owasp` 参数时 |
| `__hackerone.md` | 使用 `--export-h1` 或 `--triage` 时 |
### HackerOne 报告 (`--export-h1` / `--triage`)
生成一个可直接提交的 markdown 文件,包含:
- 执行摘要表(Critical / High / Medium / Low / Info 统计)
- 侦察概述(WAF、子域名、开放端口、技术栈)
- 针对每个 Critical/High/Medium 发现的提交块包含:
- **摘要**和**严重程度**(映射到 HackerOne 的评级标准)
- **弱点** — 自动映射的 CWE ID(涵盖 25 种以上漏洞类型)
- **受影响资产**、**复现步骤**、**影响**、**修复建议**
- **支持材料**(payload、参数、方法等)
- 披露政策提醒
## 多目标模式
使用 `--target-list` 时,每个目标都会独立运行完整的流水线,最后会打印出一个对比表,并排显示每个目标的 Critical / High / Medium / Low 统计、持续时间以及生成的报告类型。
## 配置
编辑 `config.yaml` 以设置线程、超时、端口列表、DNS 记录类型等持久化默认值。CLI 参数始终会覆盖配置文件中的值。
## 依赖要求
```
requests>=2.31.0
dnspython>=2.4.2
rich>=13.7.0
click>=8.1.7
pyyaml>=6.0.1
urllib3>=2.1.0
beautifulsoup4>=4.12.2
lxml>=5.1.0
```
安装方式:`pip install -r requirements.txt`
需要 Python 3.10+ 版本。
## 法律声明
仅扫描你拥有或获得明确书面测试授权的目标。未经授权的扫描可能会违反计算机犯罪相关法律。在提交报告之前,请务必遵守项目方 responsible disclosure 政策。
## 快速开始
```
# 1. 安装依赖(只需一次)
pip install -r requirements.txt
# 针对目标运行
python bb.py example.com
```
报告默认保存在 `reports/` 目录下。
## 用法
```
python bb.py [TARGET] [OPTIONS]
python bb.py --target-list targets.txt [OPTIONS]
```
### 示例
```
# 完整扫描
python bb.py example.com
# 扩展端口范围的完整 URL
python bb.py https://api.example.com --ports extended
# 生成所有报告类型
python bb.py example.com --report-owasp --export-h1
# H1 triage 模式 — 仅限 CRITICAL/HIGH 已确认的发现,自动包含 HackerOne 报告
python bb.py example.com --triage
# 跳过慢速模块以进行快速扫描
python bb.py example.com --skip-ports --skip-subdomains --skip-crawl
# 扫描目标列表,为每个目标输出 HackerOne 报告
python bb.py --target-list targets.txt -o /tmp/reports --export-h1
# 自定义输出目录和线程
python bb.py example.com -o /tmp/myreports --threads 20 --timeout 8
# Quiet 模式 — 最小化控制台输出
python bb.py example.com -q --json-only
# 从最后完成的阶段恢复中断的扫描
python bb.py example.com --resume
# 列出所有目标的所有进行中的 checkpoints
python bb.py --list-checkpoints
```
### targets.txt 格式
```
# 以 # 开头的行是注释,将被跳过
example.com
sub.example.com
https://api.example.com
# 空行也会被跳过
staging.example.com
```
## 所有参数
### 核心
| 参数 | 简写 | 默认值 | 描述 |
|------|-------|---------|-------------|
| `TARGET` | | — | 要扫描的域名或完整 URL |
| `--target-list` | `-T` | — | 每行包含一个目标的文件 |
| `--config` | `-c` | `config.yaml` | 自定义 YAML 配置文件 |
| `--output-dir` | `-o` | `reports/` | 报告输出目录 |
| `--threads` | `-t` | 30 | 并发线程数 |
| `--timeout` | | 4 | 请求超时时间(秒) |
| `--quiet` | `-q` | off | 最小化控制台输出 |
### 报告
| 参数 | 描述 |
|------|-------------|
| `--no-report` | 跳过保存任何报告 |
| `--json-only` | 仅保存 JSON 报告(跳过 HTML) |
| `--report-owasp` | 生成 OWASP Top 10 合规 HTML 报告 |
| `--export-h1` | 生成适配 HackerOne 的 markdown 报告 |
### H1 分诊模式
| 参数 | 描述 |
|------|-------------|
| `--triage` | 仅保留状态为**已确认**或**极可能**的 CRITICAL/HIGH 发现。自动启用 `--export-h1`。在提交给 HackerOne 之前立即使用,可去除干扰并专注于高价值漏洞。 |
### 恢复与检查点
| 参数 | 描述 |
|------|-------------|
| `--resume` | 从上次完成的阶段恢复中断的扫描。跳过已完成阶段的所有网络 I/O,并从扫描崩溃或被终止的地方继续。 |
| `--list-checkpoints` | 显示所有进行中的扫描检查点及其阶段状态、进度条、存在时间和开始时间——随后退出。 |
### 扫描控制
| 参数 | 描述 |
|------|-------------|
| `--ports` | 端口范围:`common`(默认)、`extended` 或 `all` |
| `--ignore-ssl` | 忽略 SSL 证书错误 |
| `--skip-validate` | 跳过扫描后的发现结果重新验证(速度更快,但存在更多误报) |
| `--wordlist-subdomains` | 自定义子域名字典 |
| `--wordlist-dirs` | 自定义目录 fuzzing 字典 |
| `--scope-file` `-s` | JSON/YAML 范围文件——从所有报告中剔除超出范围的发现 |
### 跳过参数
| 参数 | 跳过项 |
|------|-------|
| `--skip-waf` | WAF 及速率限制指纹识别 |
| `--skip-ports` | 端口扫描 |
| `--skip-subdomains` | 子域名枚举 |
| `--skip-dirfuzz` | 目录 fuzzing |
| `--skip-vulns` | 核心漏洞检查 |
| `--skip-takeover` | 子域名接管检测 |
| `--skip-xss-gen` | 上下文感知的 XSS 分析 |
| `--skip-js` | JavaScript 文件分析 |
| `--skip-cors-deep` | 深度 CORS 错误配置扫描 |
| `--skip-smuggle` | HTTP 请求走私检测 |
| `--skip-redirect` | 开放重定向链分析 |
| `--skip-crawl` | 被动链接爬虫 |
| `--skip-owasp` | OWASP Top 10 检查 |
| `--skip-sqli` | SQL 注入模块 |
| `--skip-auth` | 身份验证测试 |
| `--skip-pathtraversal` | 路径遍历 / LFI |
| `--skip-cmdinject` | 命令注入 |
| `--skip-bizlogic` | 业务逻辑漏洞 |
| `--skip-infodisclosure` | 信息泄露 |
| `--skip-accesscontrol` | 访问控制 / IDOR |
| `--skip-fileupload` | 文件上传漏洞 |
| `--skip-raceconditions` | 竞态条件检测 |
| `--skip-ssrf` | SSRF 测试 |
| `--skip-xxe` | XXE 注入 |
| `--skip-nosqli` | NoSQL 注入 |
| `--skip-apitest` | API 端点测试 |
| `--skip-webcache` | Web 缓存欺骗/中毒 |
### 爬虫选项
| 参数 | 默认值 | 描述 |
|------|---------|-------------|
| `--crawl-depth` | 2 | 最大爬取深度 |
| `--crawl-pages` | 60 | 最大爬取页面数 |
| `--crawl-scope` | `domain` | `domain` = 仅同一主机,`subdomains` = 包含所有子域名 |
| `--crawl-delay` | 0 | 对同一主机的请求间隔毫秒数 |
| `--no-robots` | off | 忽略 `robots.txt` |
## 扫描流水线
每个目标都会通过一个**并行的 4 阶段流水线**运行。相互独立的阶段会同时触发,与顺序执行的方法相比,大幅缩短了总扫描时间。
```
IP Resolution
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 1 — Parallel ║
║ WAF fingerprinting · DNS records · Subdomain enum · Port scan ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 2 — Sequential ║
║ Homepage fetch · Technology detection · Directory fuzzing ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 3 — Parallel ║
║ Passive crawler · Subdomain takeover detection ║
╚══════════════════════════════════════════════════════════════════╝
↓
╔══════════════════════════════════════════════════════════════════╗
║ PHASE 4 — All modules simultaneously (20+ threads) ║
║ Core vulns · JS analysis · Deep CORS · HTTP smuggling ║
║ XSS generation · Open redirects · OWASP Top 10 ║
║ SQLi · Auth · Path traversal · Cmd injection · Biz logic ║
║ Info disclosure · Access control · File upload ║
║ Race conditions · SSRF · XXE · NoSQLi · API testing ║
║ Web cache deception/poisoning ║
╚══════════════════════════════════════════════════════════════════╝
↓
Post-scan validation (re-tests each finding, removes false positives)
↓
Report generation JSON + HTML + OWASP HTML + HackerOne MD
```
## 恢复与检查点
针对复杂目标的长时间扫描可能需要 30 分钟以上。如果扫描崩溃、断网或在运行期间被终止,`--resume` 可让你准确地从停止的地方继续——完全没有重复的网络 I/O。
### 工作原理
每个阶段完成后,其完整结果会被序列化到:
```
{output-dir}/.checkpoints/{domain}.json
```
在恢复运行时,已完成的阶段会从磁盘加载,并完全跳过其工作。只有剩余的阶段会实际运行。
### 工作流
```
# 扫描在 Phase 4 期间崩溃
python bb.py example.com
# 恢复 — Phases 1/2/3 从磁盘加载,Phase 4 从头重新运行
python bb.py example.com --resume
```
恢复时的控制台输出:
```
⏩ Resume Mode ──────────────────────────────────────────
Checkpoint : reports/.checkpoints/example_com.json
Created : 2026-05-31T10:02:44
Completed : p1, p2, p3
Skipping completed phases — running only remaining work.
━━ Phase 1/4 — ⏩ loaded from checkpoint
━━ Phase 2/4 — ⏩ loaded from checkpoint
━━ Phase 3/4 — ⏩ loaded from checkpoint
━━ Phase 4/4 — Parallel vulnerability scan (22 modules)
```
当扫描成功完成后,检查点文件会被**自动删除**,因此陈旧的数据绝不会干扰未来的全新扫描。
### 列出检查点
```
python bb.py --list-checkpoints
# 或使用自定义输出目录:
python bb.py --list-checkpoints -o /tmp/reports
```
显示所有进行中的扫描表:
```
╭─ ⏸ Checkpoint Registry ─ 3 in-progress scans ────────────────────────╮
│ Scans that were interrupted mid-run. │
│ Resume any with: python bb.py 标签:DOE合作, Homebrew安装, Python, 多模态安全, 实时处理, 密码管理, 插件系统, 无后门, 逆向工具, 防御加固, 防御框架