LifeJiggy/SubDom
GitHub: LifeJiggy/SubDom
SubDom 是一款集多源子域名枚举、目录暴力破解与多项 Web 侦察分析功能于一体的漏洞赏金侦察工具。
Stars: 3 | Forks: 0
# Bug Bounty Beast v7.0
一款强大且经过强化的子域名与目录枚举工具,专为漏洞赏金和 Web 应用侦察而设计。该脚本通过被动和主动扫描技术自动发现潜在的攻击向量,包含 30 项新功能和 10 项系统级强化改进。
## 功能
### 核心枚举
- **多源子域名枚举**(9 个来源):
- **被动:** DNS、crt.sh、Wayback Machine、Anubis、Hackertarget、Certspotter、Facebook CT
- **GitHub 泄露搜索:** 发现在公开代码库中泄露的子域名
- **主动暴力破解:** 基于字典的 HTTP 暴力破解,带有通配符过滤
- **主动子域名探测:** 通过 HTTPS/HTTP 回退验证发现的子域名 (HTTP 200)
- **目录暴力破解:** 带有进度条的基线对比扫描
- **递归子域名枚举:** 发现更深层的嵌套 (`*.api.target.com`)
### 侦察与分析 (Feature #2-5, #10, #15-17)
- **通配符 DNS 检测:** 自动检测并过滤通配符 DNS 的误报
- **技术指纹识别:** 从响应头和 HTML 中检测服务器、框架、CMS、分析工具
- **IP 解析与 ASN 查询:** 解析 IP,识别云提供商 (AWS/GCP/Azure/Cloudflare)
- **端口扫描:** 针对存活主机的热门端口 (21-50000) 进行快速 connect 扫描
- **DNS 记录扩展:** 枚举 MX、TXT、CNAME、NS、SOA、CAA、SRV 记录
- **HTTP 方法指纹识别:** 测试 GET/POST/PUT/DELETE/OPTIONS/TRACE/PATCH/HEAD
- **虚拟主机检测:** 识别 vhost 异常和默认内容
- **子域名接管检查:** 检测指向 30 多项无人认领服务的悬挂 CNAME
### 输出与报告 (Feature #4, #12, #19-20)
- **JSON + CSV 导出:** 用于工具集成的机器可读输出
- **扫描对比/Diff:** 高亮显示两次扫描间新增/移除的子域名
- **扫描恢复/检查点:** 从保存的状态中恢复中断的扫描
- **多域名批处理模式:** 从文件中并发处理多个目标
- **彩色终端输出:** ANSI 颜色编码结果(绿色=找到,红色=严重,黄色=警告)
- **带有预计到达时间的进度条:** 为每个扫描阶段提供实时进度指示
### 强化 (10 项系统级改进)
1. **信号处理 + 优雅关闭:** 优雅地处理 SIGINT/SIGTERM 并保存部分结果
2. **SSL/TLS 错误弹性:** 通过退避机制处理 SSLError、ConnectionReset
3. **速率限制自适应线程:** 针对每个服务在遇到 HTTP 429/403 时自动退避
4. **请求会话池:** 通过 `requests.Session` 复用连接(20 个连接的池)
5. **熔断器:** 连续 N 次失败后停止猛烈请求目标
6. **输出原子性:** 采用“临时文件-然后-重命名”机制,防止输出文件损坏
7. **重复抑制:** 在打印和写入层进行正确的去重(修复 CRT.sh 刷屏问题)
8. **内存受限的结果:** 可配置的上限防止在大型目标上出现 OOM
9. **输入验证与清理:** 域名正则表达式验证,防止路径遍历
10. **指数退避与抖动:** 采用正确的重试延迟,取代固定的随机睡眠
## 设置与安装
```
git clone
cd Subdom
pip install -r requirements.txt
```
### 必需的库
```
requests
beautifulsoup4
dnspython
pyopenssl
cryptography
service-identity
```
## 使用方法
### 基础示例
```
# 对目标运行所有 enumeration 步骤
python Subdom.py -d example.com --all --verbose
# 仅运行 passive subdomain enumeration
python Subdom.py -d example.com --passive --threads 20
# 包含所有分析功能的全面 recon
python Subdom.py -d example.com --all --fingerprint --resolve --scan-ports --dns-records --json --verbose
# 检查 subdomain takeover
python Subdom.py -d example.com --passive --takeover --verbose
# 对先前发现的目标进行 Directory enumeration
python Subdom.py -d example.com --dir --dir-wordlist /path/to/my/dirs.txt
# 与先前的 scan 进行比较
python Subdom.py -d example.com --passive --diff bug_bounty_output/previous_scan_passive.txt
# Batch scan 多个 domains
python Subdom.py --batch targets.txt --all --json --verbose
# 仅验证 domain 格式
python Subdom.py -d example.com --validate
```
### 命令行参数
| 参数 | 描述 |
|---|---|
| `-d`, `--domain` | 目标域名 (例如,`example.com`) |
| `--batch` | 包含多个目标域名的文件(每行一个) |
| `-t`, `--threads` | 线程数 (默认: 10) |
| `--passive` | 仅运行被动子域名枚举 |
| `--active` | 仅运行主动 (暴力破解) 子域名枚举 |
| `--probe` | 仅探测存活 (HTTP 200) 的子域名 |
| `--dir` | 仅运行目录枚举 |
| `--all` | 运行所有枚举步骤 (默认) |
| `--fingerprint` | 启用技术栈指纹识别 |
| `--resolve` | 启用 IP 解析和云提供商检测 |
| `--scan-ports` | 启用针对存活主机的端口扫描 |
| `--dns-records` | 枚举完整的 DNS 记录 (MX、TXT、NS 等) |
| `--methods` | HTTP 方法指纹识别 (GET/POST/PUT/DELETE 等) |
| `--vhost` | 虚拟主机异常检测 |
| `--takeover` | 子域名接管检查 (30 多项服务) |
| `--recursive` | 递归子域名枚举 |
| `--recursive-depth` | 递归深度 (默认: 1) |
| `--diff` | 与上一次扫描文件进行对比 |
| `--resume` | 从上一个检查点恢复 |
| `--json` | 将结果导出为 JSON |
| `--csv` | 将结果导出为 CSV |
| `--validate` | 仅验证输入,不进行扫描 |
| `--sub-wordlist` | 自定义子域名字典路径 |
| `--dir-wordlist` | 自定义目录字典路径 |
| `--proxies` | 用于绕过 WAF 的代理列表文件 |
| `--output` | 自定义输出文件前缀 |
| `--verbose` | 启用详细输出 |
| `--timeout` | 请求超时时间,以秒为单位 (默认: 5) |
## 输出文件
所有结果均保存在 `bug_bounty_output/` 中:
| 文件 | 描述 |
|---|---|
| `*_passive.txt` | 被动子域名枚举结果 |
| `*_active.txt` | 主动 (暴力破解) 子域名结果 |
| `*_active_200.txt` | 存活子域名 (HTTP 200) |
| `*_dirs.txt` | 发现的目录 |
| `*_full_report.json` | 完整的 JSON 报告 |
| `*_report.csv` | 用于电子表格分析的 CSV 导出 |
| `*_resolve.json` | IP 解析和 ASN 数据 |
| `*_ports.json` | 端口扫描结果 |
| `*_tech.json` | 技术指纹数据 |
| `*_dns_records.json` | DNS 记录枚举 |
| `*_methods.json` | HTTP 方法指纹识别 |
| `*_vhost.json` | 虚拟主机检测数据 |
| `*_takeover.json` | 子域名接管发现 |
| `.*_checkpoint.json` | 用于恢复的扫描状态 |
## WAF 绕过
该工具包含 50 多个 WAF 绕过头,以及:
- 随机 User-Agent 轮换 (10 种现代浏览器)
- IP 欺骗头 (X-Forwarded-For、CF-Connecting-IP、True-Client-IP 等)
- 速率限制绕过头 (X-Bypass-WAF、X-Ignore-RateLimit 等)
- 代理轮换支持
- 带有指数退避的自适应速率限制
## 许可证
MIT 许可证
标签:GitHub, Web安全, 大数据, 子域名枚举, 实时处理, 密码管理, 目录扫描, 系统安全, 蓝队分析, 逆向工具