Krainium/Domain-Recon
GitHub: Krainium/Domain-Recon
一款基于 Python 的轻量级域名侦察 CLI 工具,整合 SSL 检查、子域名枚举、DNS 暴力破解与反向 DNS 查询。
Stars: 0 | Forks: 0
# DomainRecon — 域名侦察工具
Python CLI 工具,用于域名侦察,将 SSL 证书检查、子域名枚举、DNS 暴力破解和反向 DNS 查询整合到一个交互式脚本中。零重型依赖 — 仅使用 Python 内置的 `ssl`、`socket` 和 `http.client` 模块。
## 功能
- SSL/SNI 检查 — 读取 SSL 证书并提取所有 DNS 名称(Subject Alternative Names)
- 通过 crt.sh 进行子域名枚举 — 查询证书透明度日志以查找曾经颁发过证书的每个子域名
- DNS 暴力破解 — 测试 100+ 常见子域名与多线程解析
- 反向 DNS 查询 — 使用 PTR 记录和 rapiddns.io 查找 IP 背后的主机名
- 完整侦察模式 — 顺序运行所有扫描,去重,并将每个结果解析为对应的 IP
- 自动将结果保存到 `recon-results/` 文件夹中的时间戳文件
- 零重型依赖 — 仅需 `pyfiglet`,所有网络通信使用 Python 内置模块
- 支持 Windows、macOS、Linux
## 环境要求
- Python 3.7+
- 一个 pip 包:
```
pip install pyfiglet
```
## 快速启动
```
pip install pyfiglet
python domain-recon.py
```
## 菜单
```
---- Menu ----
1) SSL/SNI Info
2) Subdomain Finder (crt.sh)
3) Subdomain Brute Force (DNS)
4) Reverse DNS Lookup
5) Full Recon (all scans)
6) Quit
```
## 用法
### 1) SSL/SNI 信息
连接到域名的 443 端口,读取 SSL 证书并提取所有信息,包括每个 Subject Alternative Name:
```
[SSL/SNI Info: google.com]
[*] Common Name: *.google.com
[*] Issuer: Google Trust Services
[*] Valid From: Feb 2 08:36:38 2026 GMT
[*] Valid Until: Apr 27 08:36:37 2026 GMT
[*] Serial: B24FF93A9975FA670A45A4784F3ACC65
[+] Found 137 DNS name(s) in certificate:
*.android.com
*.cloud.google.com
*.google.com
*.youtube.com
...
```
适用于发现共享同一 SSL 证书的相关域名和服务。大型组织通常会在单个通配符证书上放置数十个服务。
### 2) 子域名查找(crt.sh)
通过 crt.sh 查询证书透明度日志,查找曾经颁发过 SSL 证书的每个子域名 — 包括已过期的证书和历史记录:
```
[Certificate Transparency: example.com]
[*] Querying crt.sh...
[+] Found 12 unique subdomain(s):
api.example.com
dev.example.com
mail.example.com
staging.example.com
www.example.com
```
被动方式 — 不向目标发送任何流量。CT 日志通常会揭示未公开链接的内部、暂存和开发子域名。
### 3) 子域名 DNS 暴力破解
测试 100+ 常见子域名名称以查看哪些能解析。运行 20 个并发线程以提升速度:
```
[DNS Brute Force: example.com]
[+] www.example.com -> 93.184.216.34
[+] mail.example.com -> 93.184.216.34
[+] api.example.com -> 93.184.216.34
[+] dev.example.com -> 10.0.0.5
```
词表包括:www、mail、ftp、api、app、dev、staging、admin、portal、blog、shop、cdn、vpn、db、git、ci、auth、sso、status、monitor、grafana、kibana 以及 80 多个更多。
查找可能不出现在 CT 日志中的子域名 — 例如使用自签名证书或未启用 SSL 的内部服务。
### 4) 反向 DNS 查询
使用两种方法查找与 IP 地址关联的主机名:
```
[Reverse DNS: 8.8.8.8]
[+] PTR Record: dns.google
[*] Querying rapiddns.io...
[+] Found 3 domain(s):
dns.google
google-public-dns-a.google.com
ns1.google.com
```
通过 `socket` 进行 PTR 记录查询,以及通过 rapiddns.io 查询所有曾经指向该 IP 的域名。
### 5) 完整侦察
顺序运行所有扫描,去重所有结果,将每个子域名解析为其 IP,然后保存组合报告:
```
[Full Recon Summary]
[+] Total unique subdomains/domains found: 47
api.example.com 93.184.216.34
cdn.example.com 104.18.22.73
dev.example.com (no DNS)
staging.example.com 10.0.0.5
www.example.com 93.184.216.34
[+] Saved to recon-results/example_com_full-recon_20260315_163000.txt
```
## 扫描对比
| 扫描 | 方法 | 对目标的流量 | 速度 | 覆盖范围 |
|------|------|--------------|------|----------|
| SSL/SNI | 直接 HTTPS 连接 | 单次请求 | 即时 | 同一证书上的域名 |
| crt.sh | 第三方 API | 无 | 快速 | 所有历史颁发的证书 |
| DNS 暴力破解 | DNS 解析 | 100+ 次查询 | 中等 | 仅限于词表 |
| 反向 DNS | PTR + 第三方 API | 极少 | 快速 | 仅 IP |
| 完整侦察 | 以上全部 | 有 | 中等 | 最佳综合覆盖 |
## 输出
每次扫描会在 `recon-results/` 中创建一个时间戳文件:
```
recon-results/
example_com_ssl-sni_20260315_160000.txt
example_com_crtsh_20260315_160500.txt
example_com_bruteforce_20260315_161000.txt
8_8_8_8_reverse-dns_20260315_161500.txt
example_com_full-recon_20260315_163000.txt
```
文件每行包含一条记录。完整侦察会自动保存;其他扫描会提示你保存。
## 域名输入
脚本会自动清理输入:
| 输入 | 解析结果 |
|------|----------|
| `google.com` | `google.com` |
| `https://google.com` | `google.com` |
| `http://google.com/path` | `google.com` |
| `google.com:8080` | `google.com` |
| ` google.com ` | `google.com` |
## 故障排除
| 问题 | 原因 | 解决方法 |
|------|------|----------|
| 缺少 pyfiglet | 未安装 | `pip install pyfiglet` |
| SSL 连接超时 | 域名没有 443 端口或网络被屏蔽 | 检查连接性 |
| crt.sh 返回空 | 服务暂时过载或域名非常新 | 几分钟后再试 |
| DNS 暴力破解未找到结果 | 域名不使用常见子域名 | 改用 crt.sh 扫描 |
| 反向 DNS 无结果 | IP 没有 PTR 记录或未收录于 rapiddns | 许多 IP 属于正常情况 |
| Windows 权限错误 | 无写入目录权限 | 以管理员身份运行 |
## 依赖项
| 包 | 用途 |
|----|------|
| `pyfiglet` | ASCII 艺术标题 |
使用的内置模块:`ssl`(证书检查)、`socket`(DNS 解析、反向查询)、`http.client`(向 crt.sh 和 rapiddns.io 发起 HTTPS 请求)、`threading`(并发 DNS 暴力破解)。
标签:CRTSH, PTR记录, Python, SEO: DNS暴力破解, SEO: SSL证书分析, SEO: 内建Python, SEO: 域名侦察工具, SEO: 子域名枚举, SEO: 渗透测试工具, SEO: 网络安全工具, SEO: 零依赖, SNI检查, SSL证书检查, 主动侦察, 二进制发布, 内建模块, 反向外联, 域名侦察, 多线程解析, 子域名枚举, 开源工具, 数据统计, 无后门, 漏洞挖掘辅助, 端口扫描, 系统安全, 网络安全, 证书透明日志, 轻量依赖, 逆向工具, 隐私保护