JeanPeyreMesMots/subprobe-py
GitHub: JeanPeyreMesMots/subprobe-py
一个用于枚举域名子域名的简单 Python 脚本,帮助安全人员快速发现潜在子域名。
Stars: 0 | Forks: 0
# 🔍 subprobe-py
一个非常简单的脚本,用于探测一个域名的子域名,并将它们写入文件。
## 功能特性
- **多线程** — 最多可同时进行 N 个探测(默认:20 个线程)
- **HTTPS → HTTP 回退** — 在 SSL 错误时通过 HTTP 重试
- **重试逻辑** — 自动在服务器错误(5xx)时重试,并采用退避策略
- **实时输出** — 一旦发现结果,立即写入文件
- **彩色终端输出** — 管道到文件时会自动禁用
- **扫描摘要** — 显示发现数、错误数、耗时和每秒请求数
## 环境要求
```
pip install requests
```
需要 Python 3.10+(使用了 `list[str]` 类型提示)。
## 使用方法
```
python3 subdomain_enum.py --domain --wordlist --output [options]
```
### 参数说明
| 参数 | 必填 | 描述 |
|---|---|---|
| `--domain` | ✅ | 目标域名(例如 `example.com`) |
| `--wordlist` | ✅ | 字典文件的路径 |
| `--output` | ✅ | 用于存储已发现子域名的输出文件 |
| `--threads` | ➖ | 并发线程数(默认:`20`) |
| `--timeout` | ➖ | 请求超时时间(秒)(默认:`3`) |
| `--retries` | ➖ | 服务器错误时的重试次数(默认:`1`) |
| `--verbose` | ➖ | 同时显示未命中的子域名 |
| `--version` | ➖ | 显示版本并退出 |
### 示例
基础扫描:
```
python3 subdomain_enum.py --domain google.fr --wordlist wordlist.txt --output found.txt
```
使用更多线程进行更快的扫描:
```
python3 subdomain_enum.py --domain google.fr --wordlist wordlist.txt --output found.txt --threads 50
```
详细模式(同时显示未命中项):
```
python3 subdomain_enum.py --domain google.fr --wordlist wordlist.txt --output found.txt --verbose
```
## 输出
发现的子域名会实时写入指定的输出文件:
```
# 子域名扫描 — google.fr — 2025年05月16日 14:32:01
https://mail.google.fr [200]
https://api.google.fr [301] -> https://developers.google.fr/
```
## 字典
任何 DNS/子域名字典均可使用。一些优质来源:
- [SecLists](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS) — `subdomains-top1million-5000.txt` 是一个不错的起点
- [assetnote wordlists](https://wordlists.assetnote.io/)
## 免责声明
此工具仅用于**授权的安全测试**。请勿在您没有明确测试许可的目标上使用它。
标签:Python, Web安全, 云存储安全, 反取证, 子域名探测, 子域名枚举, 安全评估, 无后门, 系统安全, 网络安全, 网络扫描, 脚本工具, 蓝队分析, 逆向工具, 隐私保护