renzi25031469/Hunter

GitHub: renzi25031469/Hunter

一款基于 Bash 的自动化 Bug Bounty 侦察框架,整合多款安全工具实现端到端的信息收集与漏洞扫描。

Stars: 1 | Forks: 0

![alt text](https://github.com/renzi25031469/Hunter/blob/main/hunter_banner_cyan.svg?raw=true)

Bug Bounty Recon Framework
v2.0 · by Renzi · Public & Private Programs

# 🇧🇷 葡萄牙语 ## 什么是 Hunter? **Hunter** 是一个用 Bash 编写的自动化 Bug Bounty 侦察框架。它将多种安全工具编排成一个链式 pipeline,涵盖了从子域名枚举到漏洞扫描、JavaScript 分析以及 Web Archive 敏感文件发现的全过程——所有操作只需一条命令即可完成。 ## ⚙️ 安装与要求 在运行 Hunter 之前,请确保已安装以下工具并可在 `PATH` 中找到: | 工具 | 用途 | |------------------|-------------------------------------------------| | `subfinder` | 被动子域名枚举 | | `assetfinder` | 通过公开来源进行子域名发现 | | `dnsx` | DNS 解析与暴力破解 | | `httpx` | 存活主机探测 | | `nuclei` | 基于 template 的漏洞扫描 | | `naabu` | 端口扫描器 | | `katana` | 主动 Web 爬虫 | | `urlfinder` | 被动 URL 收集 | | `ffuf` | 备份文件模糊测试 (Fuzzing) | | `uro` | URL 去重与过滤 | | `uncover` | 通过查询语句执行 Shodan/Fofa 查询 | | `slicepathsurl` | URL 路径分割 | | `curl` | Wayback Machine CDX API 查询 | ## 🚀 使用方法 ``` ██╗ ██╗██╗ ██╗███╗ ██╗████████╗███████╗██████╗ ██║ ██║██║ ██║████╗ ██║╚══██╔══╝██╔════╝██╔══██╗ ███████║██║ ██║██╔██╗ ██║ ██║ █████╗ ██████╔╝ ██╔══██║██║ ██║██║╚██╗██║ ██║ ██╔══╝ ██╔══██╗ ██║ ██║╚██████╔╝██║ ╚████║ ██║ ███████╗██║ ██║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Bug Bounty Recon Framework | v2.0 by Renzi ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Usage: ./hunter.sh -d -w [OPTIONS] Required: -d, --domains Domains list (one per line) -w, --wordlist DNS brute-force wordlist Options: -o, --output Output directory (default: ./hunter-output) -b, --background Run in background, detach from terminal -h, --help Show this help message Examples: # Run in foreground ./hunter.sh -d domains.txt -w wordlist.txt # Run in background (detached, logs to hunter-output/hunter.log) ./hunter.sh -d domains.txt -w wordlist.txt -o ./results -b ``` ### 必需参数 | Flag | 描述 | |-------------------|----------------------------------------| | `-d, --domains` | 包含目标域名的文件(每行一个) | | `-w, --wordlist` | 用于 DNS 暴力破解的字典 | ### 选项 | Flag | 描述 | |-------------------|-----------------------------------------------------------------| | `-o, --output` | 输出目录(默认:`./hunter-output`) | | `-b, --background`| 在后台与终端分离运行 | | `-h, --help` | 显示帮助信息 | ### 示例 ``` # 正常执行(foreground) ./hunter.sh -d domains.txt -w wordlist.txt # background 执行并带有自定义输出目录 ./hunter.sh -d domains.txt -w wordlist.txt -o ./results -b ``` ## 🔍 Pipeline 阶段 ### 阶段 1 — 子域名枚举 结合三个来源: - **subfinder** — 使用所有可用来源进行递归被动枚举 - **assetfinder** — 通过公开来源获取子域名 - **dnsx** — 使用提供的字典进行 DNS 暴力破解(可选) 最后,结果将被合并并去重至 `subdomains/all-subdomains.txt`。 ### 阶段 3 — 存活主机探测 (httpx) 检查哪些子域名在 `80, 443, 8080, 8888, 8443` 端口上响应 HTTP/HTTPS,接受状态码 `200, 301, 302, 404`。结果保存在 `urls/live-hosts.txt`。 ### 阶段 4 — Nuclei 扫描 (httpx 目标) 针对存活主机运行 Nuclei,严重性级别为:`critical, high, medium, low, unknown`。 ### 阶段 5 — Shodan / Uncover 根据域名(SSL、hostname、证书)自动生成 Shodan 查询,并使用 **uncover** 查找暴露的主机。随后结果将经过 Nuclei 扫描。 ### 阶段 6 — 被动 URL 收集 + DAST - **urlfinder** 从 AlienVault、CommonCrawl、Wayback、URLScan 和 VirusTotal 等来源收集 URL - URL 使用 `uro` 进行过滤,并使用 `httpx` 进行探测 - Nuclei 以 **DAST**(动态应用程序安全测试)模式运行 ### 阶段 7 — 主动爬虫 (katana) + DAST - **katana** 对子域名进行主动爬取 - URL 使用 `uro` 去重并使用 `httpx` 探测 - 对结果应用 Nuclei DAST 扫描 ### 阶段 8 — SlicePath URL 扫描 合并 katana 和被动收集的 URL,应用 **slicepathsurl** 生成最多 3 层深度的路径变体,探测存活主机并运行 Nuclei(标准 + DAST)。 ### 阶段 9 — 端口扫描 (naabu) + Nuclei 扫描 top-1000 端口,**排除**已被 Web 探测覆盖的端口。针对在非 Web 端口上发现的服务运行 Nuclei。 ### 阶段 10 — 自定义 Nuclei Templates (coffinxp) 如果目录 `../coffinxp/nuclei-templates/` 存在,则使用私有/自定义 templates 对存活主机运行 Nuclei。 ### 阶段 11 — JavaScript 文件分析 - **katana** 映射可访问的 `.js` 文件 - **nuclei** 应用 `exposures` templates 搜寻暴露在 JavaScript 中的密钥、token 和敏感数据 ### 阶段 12 — 备份文件发现 使用 **ffuf** 通过专用字典对域名上的备份文件进行模糊测试 (Fuzzing)。结果以 Markdown 格式保存。 ### 阶段 13 — Web Archive 分析 针对每个域名查询 Wayback Machine CDX API,过滤指向敏感扩展名(`.sql`、`.env`、`.zip`、`.bak`、`.pem`、`.key`、`.config` 等)的 URL,并验证哪些 URL 仍然返回 HTTP 200。 ## 📁 输出结构 ``` hunter-output/ ├── subdomains/ │ ├── subfinder.txt │ ├── assetfinder.txt │ ├── dnsx.txt │ └── all-subdomains.txt ← todos os subdomínios mesclados ├── urls/ │ ├── live-hosts.txt ← hosts ativos verificados │ ├── passive-urls.txt │ ├── passive-urls-filtered.txt │ ├── katana-crawl.txt │ ├── katana-filtered.txt │ ├── slice-paths.txt │ ├── js-files.txt │ └── webarchive-sensitive.txt ├── nuclei/ │ ├── nuclei-httpx.txt │ ├── nuclei-shodan.txt │ ├── nuclei-dast-passive.txt │ ├── nuclei-dast-katana.txt │ ├── nuclei-slice.txt │ ├── nuclei-slice-dast.txt │ ├── nuclei-naabu.txt │ ├── nuclei-coffinxp.txt │ └── nuclei-js.txt └── misc/ ├── shodan-queries.txt ├── shodan-hosts.txt ├── non-web-ports.txt ├── webarchive-raw.txt └── backup-files.txt ``` ## ⚠️ 免责声明 本工具**专为授权的 Bug Bounty 计划和渗透测试而开发**。未经授权对第三方系统使用是非法的。作者不对本工具的滥用承担责任。 # 🇺🇸 英语 ## 什么是 Hunter? **Hunter** 是一个用 Bash 编写的自动化 Bug Bounty 侦察框架。它将多种安全工具编排成一个链式 pipeline,涵盖了从子域名枚举到漏洞扫描、JavaScript 分析以及 Web Archive 敏感文件发现的全过程——所有操作只需一条命令即可完成。 ## ⚙️ 安装与要求 在运行 Hunter 之前,请确保已安装以下工具并可在 `PATH` 中找到: | 工具 | 用途 | |------------------|--------------------------------------------------| | `subfinder` | 被动子域名枚举 | | `assetfinder` | 通过公开来源进行子域名发现 | | `dnsx` | DNS 解析与暴力破解 | | `httpx` | 存活主机探测 | | `nuclei` | 基于 template 的漏洞扫描 | | `naabu` | 端口扫描器 | | `katana` | 主动 Web 爬虫 | | `urlfinder` | 被动 URL 收集 | | `ffuf` | 备份文件模糊测试 (Fuzzing) | | `uro` | URL 去重与过滤 | | `uncover` | 通过查询文件执行 Shodan/Fofa 查询 | | `slicepathsurl` | URL 路径分割 | | `curl` | Wayback Machine CDX API 查询 | ## 🚀 使用方法 ``` ██╗ ██╗██╗ ██╗███╗ ██╗████████╗███████╗██████╗ ██║ ██║██║ ██║████╗ ██║╚══██╔══╝██╔════╝██╔══██╗ ███████║██║ ██║██╔██╗ ██║ ██║ █████╗ ██████╔╝ ██╔══██║██║ ██║██║╚██╗██║ ██║ ██╔══╝ ██╔══██╗ ██║ ██║╚██████╔╝██║ ╚████║ ██║ ███████╗██║ ██║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Bug Bounty Recon Framework | v2.0 by Renzi ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Usage: ./hunter.sh -d -w [OPTIONS] Required: -d, --domains Domains list (one per line) -w, --wordlist DNS brute-force wordlist Options: -o, --output Output directory (default: ./hunter-output) -b, --background Run in background, detach from terminal -h, --help Show this help message Examples: # Run in foreground ./hunter.sh -d domains.txt -w wordlist.txt # Run in background (detached, logs to hunter-output/hunter.log) ./hunter.sh -d domains.txt -w wordlist.txt -o ./results -b ``` ### 必需参数 | Flag | 描述 | |-------------------|--------------------------------------------------| | `-d, --domains` | 包含目标域名的文件(每行一个) | | `-w, --wordlist` | 用于 DNS 暴力破解的字典 | ### 选项 | Flag | 描述 | |-------------------|-----------------------------------------------------------------| | `-o, --output` | 输出目录(默认:`./hunter-output`) | | `-b, --background`| 在后台与终端分离运行 | | `-h, --help` | 显示帮助信息 | ### 示例 ``` # 正常执行(foreground) ./hunter.sh -d domains.txt -w wordlist.txt # background 执行并带有自定义输出目录 ./hunter.sh -d domains.txt -w wordlist.txt -o ./results -b ``` ## 🔍 Pipeline 阶段 ### 阶段 1 — 子域名枚举 结合三个来源: - **subfinder** — 使用所有可用来源进行递归被动枚举 - **assetfinder** — 通过公开来源获取子域名 - **dnsx** — 使用提供的字典进行 DNS 暴力破解(可选) 结果将被合并并去重至 `subdomains/all-subdomains.txt`。 ### 阶段 3 — 存活主机探测 (httpx) 检查哪些子域名在 `80, 443, 8080, 8888, 8443` 端口上响应 HTTP/HTTPS,接受状态码 `200, 301, 302, 404`。结果保存在 `urls/live-hosts.txt`。 ### 阶段 4 — Nuclei 扫描 (httpx 目标) 针对存活主机运行 Nuclei,严重性级别为:`critical, high, medium, low, unknown`。 ### 阶段 5 — Shodan / Uncover 根据域名(SSL、hostname、证书)自动生成 Shodan 查询,并使用 **uncover** 查找暴露的主机。随后结果将经过 Nuclei 扫描。 ### 阶段 6 — 被动 URL 收集 + DAST - **urlfinder** 从 AlienVault、CommonCrawl、Wayback、URLScan 和 VirusTotal 收集 URL - URL 使用 `uro` 进行过滤,并使用 `httpx` 进行探测 - Nuclei 以 **DAST**(动态应用程序安全测试)模式运行 ### 阶段 7 — 主动爬虫 (katana) + DAST - **katana** 对子域名进行主动爬取 - URL 使用 `uro` 去重并使用 `httpx` 探测 - 对结果应用 Nuclei DAST 扫描 ### 阶段 8 — SlicePath URL 扫描 合并 katana 和被动收集的 URL,应用 **slicepathsurl** 生成最多 3 层深度的路径变体,探测存活主机,并运行 Nuclei(标准 + DAST)。 ### 阶段 9 — 端口扫描 (naabu) + Nuclei 扫描 top-1000 端口,**排除**已被 Web 探测覆盖的端口。针对在非 Web 端口上发现的服务运行 Nuclei。 ### 阶段 10 — 自定义 Nuclei Templates (coffinxp) 如果目录 `../coffinxp/nuclei-templates/` 存在,则使用私有/自定义 templates 对存活主机运行 Nuclei。 ### 阶段 11 — JavaScript 文件分析 - **katana** 映射可访问的 `.js` 文件 - **nuclei** 应用 `exposures` templates 搜寻暴露在 JavaScript 中的密钥、token 和敏感数据 ### 阶段 12 — 备份文件发现 使用 **ffuf** 通过专用字典对所有域名上的备份文件进行模糊测试 (Fuzzing)。结果以 Markdown 格式保存。 ### 阶段 13 — Web Archive 分析 针对每个域名查询 Wayback Machine CDX API,过滤指向敏感扩展名(`.sql`、`.env`、`.zip`、`.bak`、`.pem`、`.key`、`.config` 等)的 URL,并验证哪些 URL 仍然返回 HTTP 200。 ## 📁 输出结构 ``` hunter-output/ ├── subdomains/ │ ├── subfinder.txt │ ├── assetfinder.txt │ ├── dnsx.txt │ └── all-subdomains.txt ← all merged subdomains ├── urls/ │ ├── live-hosts.txt ← verified live hosts │ ├── passive-urls.txt │ ├── passive-urls-filtered.txt │ ├── katana-crawl.txt │ ├── katana-filtered.txt │ ├── slice-paths.txt │ ├── js-files.txt │ └── webarchive-sensitive.txt ├── nuclei/ │ ├── nuclei-httpx.txt │ ├── nuclei-shodan.txt │ ├── nuclei-dast-passive.txt │ ├── nuclei-dast-katana.txt │ ├── nuclei-slice.txt │ ├── nuclei-slice-dast.txt │ ├── nuclei-naabu.txt │ ├── nuclei-coffinxp.txt │ └── nuclei-js.txt └── misc/ ├── shodan-queries.txt ├── shodan-hosts.txt ├── non-web-ports.txt ├── webarchive-raw.txt └── backup-files.txt ``` ## ⚠️ 免责声明 本工具**专为授权的 Bug Bounty 计划和渗透测试而开发**。未经授权对第三方系统使用是非法的。作者不对本工具的滥用承担责任。
标签:Bash脚本, Bug Bounty, GitHub, 可自定义解析器, 安全工具, 实时处理, 密码管理, 渗透测试, 漏洞扫描, 自动化侦察