Dhananjay70/subenum

GitHub: Dhananjay70/subenum

一款聚合 22+ 个 OSINT 来源的自动化子域名枚举工具,集 DNS 解析、HTTP 探测和报告生成于一体。

Stars: 0 | Forks: 0

# SubRecon – 综合子域名枚举自动化 SubRecon 通过并行运行 **22+ 个枚举来源** 来自动化子域名枚举 —— 包括 CLI 工具、公共 API 和证书透明度日志 —— 然后进行合并、去重、DNS 解析、探测存活主机,并生成专业报告。 ## 功能特性 - **12 个 CLI 工具封装** – subfinder, amass, assetfinder, chaos, findomain, haktrails, gau, github-subdomains, gitlab-subdomains, cero, shosubgo, puredns - **10 个 API/Curl 来源** – crt.sh, JLDC/Anubis, AlienVault OTX, Subdomain Center, CertSpotter, VirusTotal, BufferOver, HackerTarget, RapidDNS, URLScan.io - **并发 DNS 解析** – 解析所有子域名,支持泛解析检测与过滤 - **HTTP 探测** – 检查哪些子域名存活(端口 80/443),包含状态码和页面标题 - **Trickest 解析器** – 自动下载最新的 DNS 解析器供 puredns 使用 - **多种输出格式** – TXT、JSON、CSV 以及独立的深色主题 HTML 报告 - **精美的终端 UI** – 通过 Rich 库显示漂亮的横幅、进度和汇总表格 - **优雅降级** – 缺失的 CLI 工具会被跳过并发出警告;支持纯 API 模式 ## 安装 ``` # 克隆或复制项目 cd recon # 安装 Python 依赖 pip install -r requirements.txt # (可选) 安装 CLI 工具以获得最大覆盖率 # 请参阅下方的 “CLI Tools Setup” ``` ## 使用方法 ``` # 基本扫描 (API 源 + 任何已安装的 CLI 工具) python subenum.py example.com # 仅 API 模式 (不需要 CLI 工具) python subenum.py example.com --no-tools # 跳过 HTTP 探测 (更快,仅枚举) python subenum.py example.com --no-probe # 静默模式 — 仅打印子域名 (支持管道) python subenum.py example.com --silent --no-resolve --no-probe # 使用所有 API keys 和 brute-force 的完整扫描 python subenum.py example.com \ --vt-key YOUR_VT_KEY \ --github-token YOUR_GITHUB_TOKEN \ --shodan-key YOUR_SHODAN_KEY \ --wordlist /path/to/wordlist.txt \ --threads 100 # 自定义输出目录 python subenum.py example.com -o ./my_results ``` ## CLI 参数标志 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `domain` | 目标域名 (位置参数) | 必填 | | `-o, --output` | 输出目录 | `results/` | | `--threads` | 并发级别 | 50 | | `--timeout` | HTTP/API 超时时间 (秒) | 15 | | `--tool-timeout` | CLI 工具超时时间 (秒) | 300 | | `--no-resolve` | 跳过 DNS 解析 | 关 | | `--no-probe` | 跳过 HTTP 探测 | 关 | | `--no-tools` | 跳过 CLI 工具 (仅 API) | 关 | | `--silent` | 仅打印子域名 | 关 | | `--vt-key` | VirusTotal API 密钥 | `$VT_API_KEY` | | `--github-token` | GitHub token | `$GITHUB_TOKEN` | | `--gitlab-token` | GitLab token | `$GITLAB_TOKEN` | | `--shodan-key` | Shodan API 密钥 | `$SHODAN_KEY` | | `--wordlist` | puredns 使用的字典 | 无 | | `--resolvers` | 自定义 DNS 解析器文件 | 自动下载 | | `--subfinder-config` | subfinder provider-config.yaml 路径 | 无 | | `-v, --verbose` | 调试日志 | 关 | ## 输出文件 扫描完成后,`results//` 目录将包含: | 文件 | 描述 | |------|-------------| | `subdomains.txt` | 每行一个子域名 | | `subdomains.json` | 完整结果,包含按来源分类、DNS 和探测数据 | | `subdomains.csv` | 电子表格友好的表格,包含 IP、状态、标题、服务器 | | `report.html` | 独立的深色主题 HTML 报告(在浏览器中打开) | ## CLI 工具设置 安装这些基于 Go 的工具以获得最大覆盖率。SubRecon 在没有它们的情况下也能工作(使用纯 API 模式),但安装它们能显著增加结果数量。 ``` # 核心工具 go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest go install github.com/owasp-amass/amass/v4/...@master go install github.com/tomnomnom/assetfinder@latest go install github.com/projectdiscovery/chaos-client/cmd/chaos@latest # findomain — 从 https://github.com/Findomain/Findomain 下载二进制文件 # URL & cert 工具 go install github.com/lc/gau/v2/cmd/gau@latest go install github.com/glebarez/cero@latest # 基于 Git go install github.com/gwen001/github-subdomains@latest go install github.com/gwen001/gitlab-subdomains@latest # 基于 Shodan go install github.com/incogbyte/shosubgo@latest # SecurityTrails go install github.com/hakluke/haktrails@latest # DNS brute-force go install github.com/d3mondev/puredns/v2@latest # Chaos (需要 PDCP_API_KEY) go install github.com/projectdiscovery/chaos-client/cmd/chaos@latest ``` ## 环境变量 为需要认证的工具设置这些变量: ``` export GITHUB_TOKEN="ghp_..." export GITLAB_TOKEN="glpat-..." export SHODAN_KEY="..." export VT_API_KEY="..." export PDCP_API_KEY="..." # For chaos ``` ## 架构 ``` ┌──────────────────────────────────────────────────┐ │ SubRecon │ ├──────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌────────────────────────────┐ │ │ │ CLI Tools │ │ API Sources │ │ │ │ (12 tools) │ │ (10 endpoints) │ │ │ │ subprocess │ │ aiohttp async │ │ │ └──────┬──────┘ └────────────┬───────────────┘ │ │ │ │ │ │ └──────────┬───────────┘ │ │ ▼ │ │ ┌──────────────────┐ │ │ │ Merge & Dedup │ │ │ └────────┬─────────┘ │ │ ▼ │ │ ┌──────────────────┐ │ │ │ DNS Resolution │ (wildcard detection) │ │ └────────┬─────────┘ │ │ ▼ │ │ ┌──────────────────┐ │ │ │ HTTP Probing │ (status + title) │ │ └────────┬─────────┘ │ │ ▼ │ │ ┌─────┬──────┬──────┬───────┐ │ │ │ TXT │ JSON │ CSV │ HTML │ │ │ └─────┴──────┴──────┴───────┘ │ └──────────────────────────────────────────────────┘ ``` ## 许可证 MIT — 可自由用于漏洞赏金和安全研究。
标签:Bug Bounty, DNS解析, ESC4, GitHub, HTML报告, HTTP探测, OSINT, Python, Windows内核, 侦察自动化, 可自定义解析器, 子域名枚举, 安全扫描, 实时处理, 密码管理, 开源项目, 数据统计, 无后门, 日志审计, 时序注入, 白帽子, 端口扫描, 系统安全, 证书透明度日志, 逆向工具