SubHunter 是一款面向安全研究与资产发现的高性能域名情报工具集,基于 Python 3.11+ 异步框架构建,提供子域名枚举、过期域名扫描和证书透明度查询三大核心功能。
快速枚举目标域名的所有子域名,支持泛解析检测和 HTTP 服务验证。
特性:
- ⚡ 高并发异步 DNS 解析
- 🔍 智能泛解析检测与过滤
- 🛡️ HTTP/HTTPS 服务存活验证
- 📊 多格式结果输出(JSON/CSV/Text)
批量检测域名注册状态,快速发现可注册的过期域名。
特性:
- 🕰️ 异步 WHOIS 查询引擎
- 📂 自动从 Markdown 文件提取域名
- 📊 实时进度显示
- 💾 结构化结果存储(JSONL)
通过证书透明度日志发现隐藏子域名。
特性:
- 🔍 查询 crt.sh 证书数据库
- ⏱️ 异步并发查询
- 📋 自动去重与格式化输出
- 🎨 精美的表格展示
- Python 3.11+
- uv 包管理器
# 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 同步项目依赖
uv sync# 基础扫描
uv run python core.py -d example.com -f test_dict.txt
# 自定义并发数和输出格式
uv run python core.py -d example.com -f test_dict.txt -c 200 -o json
# 参数说明
# -d, --domain: 目标域名
# -f, --file: 字典文件路径(默认: test_dict.txt)
# -c, --concurrency: 并发数(默认: 100)
# -o, --output: 输出格式 text/json/csv(默认: text)cd check-expired-domain-names
# 扫描默认文件
uv run python scanner.py
# 自定义输入文件和并发数
uv run python scanner.py -i data/tocheck-full.md -c 100
# 参数说明
# -i, --input: 输入 Markdown 文件(默认: data/example.md)
# -o, --output: 输出目录(默认: checked)
# -c, --concurrency: 并发数(默认: 50)cd check-crtsh
# 查询指定域名
uv run python crtsh_scan.py -d example.com
# 参数说明
# -d, --domain: 目标域名(默认: aliexpress.com)subHunter/
├── core.py # 子域名扫描器核心
├── test_dict.txt # 默认字典文件
├── pyproject.toml # 项目配置
├── uv.lock # 依赖锁定文件
├── results/ # 扫描结果目录
├── tests/ # 测试套件
│ ├── test_core.py # 核心功能测试
│ ├── test_domain_scanner.py # 域名扫描器测试
│ └── test_crtsh_scanner.py # CT 扫描器测试
├── docs/
│ └── OPTIMIZATION_LOG.md # 优化记录
├── check-expired-domain-names/ # 过期域名扫描器
│ ├── scanner.py
│ ├── data/ # 测试数据
│ └── checked/ # 扫描结果
└── check-crtsh/ # CT 证书扫描器
└── crtsh_scan.py
- 语言: Python 3.11+
- 包管理: uv
- 异步框架: asyncio + uvloop
- DNS 解析: dnspython
- HTTP 客户端: httpx
- CLI 框架: click
- 终端美化: rich + tqdm
- 异步 I/O 模型,支持高并发
- 智能并发控制,避免资源耗尽
- 内存占用低,适合大规模扫描
- 支持自定义并发数和超时时间
项目包含完整的测试套件,覆盖所有核心功能。
# 运行所有测试
uv run python tests/test_core.py
uv run python tests/test_domain_scanner.py
uv run python tests/test_crtsh_scanner.py测试覆盖:
- ✅ 字典加载与解析
- ✅ 泛解析检测
- ✅ DNS 解析功能
- ✅ HTTP 服务验证
- ✅ 域名提取与正则匹配
- ✅ WHOIS 查询
- ✅ CT 证书查询
[
{
"domain": "www.example.com",
"ips": ["93.184.216.34"],
"status": 200,
"server": "nginx",
"size": 1256
}
]{"domain": "example.com", "available": false}
{"domain": "expired-domain.com", "available": true}- DNS 解析: 100+ 并发(可配置)
- WHOIS 查询: 50+ 并发(可配置)
- HTTP 验证: 100+ 并发(可配置)
- 内存占用: < 100MB(典型场景)
- 字典选择: 使用高质量的子域名字典可显著提升发现率
- 并发控制: 根据网络带宽和目标服务器承载能力调整并发数
- 结果验证: 建议对扫描结果进行二次验证
- 合规使用: 仅对授权目标进行扫描
MIT License
欢迎提交 Issue 和 Pull Request。
注意: 本工具仅供安全研究和授权测试使用,请勿用于非法用途。