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安全, 大数据, 子域名枚举, 实时处理, 密码管理, 目录扫描, 系统安全, 蓝队分析, 逆向工具