renzi25031469/Hunter
GitHub: renzi25031469/Hunter
一款基于 Bash 的自动化 Bug Bounty 侦察框架,整合多款安全工具实现端到端的信息收集与漏洞扫描。
Stars: 1 | Forks: 0

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, 可自定义解析器, 安全工具, 实时处理, 密码管理, 渗透测试, 漏洞扫描, 自动化侦察