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 报告。 bb-toolkit ## 快速开始 ``` # 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 政策。
标签:DOE合作, Homebrew安装, Python, 多模态安全, 实时处理, 密码管理, 插件系统, 无后门, 逆向工具, 防御加固, 防御框架