Harikalatheeswaran/sudo-fool
GitHub: Harikalatheeswaran/sudo-fool
一款集成了多源被动采集与 DNS 暴力破解的子域名枚举工具,以 Python 和 Rich 构建并拥有优雅的终端界面。
Stars: 0 | Forks: 0
# 高级子域名查找工具
- 一个功能强大、快速且美观的**子域名枚举工具**,使用 Python 和 Rich 构建。
- 它结合了多个被动源 + 智能 DNS 暴力破解 + 自动 `robots.txt` 检查 —— 全部具备优雅的错误处理和令人惊叹的终端 UI。
## ✨ 功能
- **多源发现**(独立且故障安全):
- crt.sh(证书透明度日志)
- VirusTotal(被动 DNS)
- DNS Dumpster
- 带有 **110+ 个真实前缀**的 DNS 暴力破解
- **智能 SSL 处理** —— 优先尝试安全模式(`certifi`),必要时自动回退到不安全模式
- **robots.txt 检查器** —— 自动检测并打印完整内容(如果找到)
- **可选的实时 HTTP 检查** —— 标记哪些子域名实际有响应
- **美观的 Rich UI** —— 面板、表格、进度条和彩色输出
- **优雅降级** —— 单个源失败不会阻止其他源
- **交互式提示** —— 直接运行并输入您的域名
- 适用于 macOS、Linux 和 Windows
## 📦 安装
1. 克隆或下载脚本(`sudo_fool.py`)
2. 安装所需的包:
```
pip install rich requests dnspython
```
3. **推荐**(修复大多数 SSL 证书错误):
```
pip install certifi
```
## 🚀 使用
```
python sudo_fool.py
```
- 系统会提示您输入目标域名(例如:`grok.com`)
- 按下 Enter 键,扫描将自动开始
### 选项(在脚本内编辑)
在文件底部,您可以更改:
```
main(
domain=domain,
enable_bruteforce=True, # Set to False to skip brute-force
check_live=False # Set to True to enable live HTTP check (slower)
)
```
## 🛠 工作原理
| 源 | 类型 | 速度 | 备注 |
|---------------------|---------------|-------|-------|
| crt.sh | Passive | Fast | 证书日志 |
| VirusTotal | Passive | Fast | 观察到的子域名 |
| DNS Dumpster | Passive | Fast | 公共数据库 |
| Brute-force | Active | Medium| 110+ 个智能前缀 + 通配符检测 |
| robots.txt Checker | Active | Fast | 如果存在则显示完整内容 |
## 📋 示例输出
```
Advanced Subdomain Scanner
grok.com
🔍 Fetching from crt.sh for grok.com... [crt.sh Panel]
🔍 Fetching from VirusTotal for grok.com... [VirusTotal Panel]
🔍 Fetching from DNS Dumpster for grok.com... [DNS Dumpster Panel]
✓ crt.sh: 27 subdomains
✓ VirusTotal: 12 subdomains
✓ DNS Dumpster: 8 subdomains
🔍 Starting DNS brute-force (112 prefixes) for grok.com... [Brute-Force Panel]
🔍 Checking robots.txt for grok.com... [robots.txt Checker]
✅ robots.txt FOUND! ← full contents shown in panel
✅ Final Unique Subdomain List
────────────────────────────────────
api.grok.com
dev.grok.com
blog.grok.com
...
Total unique subdomains: 89
```
## ⚠️ 故障排除
**SSL 证书错误?**
- 脚本会自动检测并显示清晰的消息。
- 只需运行 `pip install certifi` 即可获得最佳体验。
**未找到子域名?**
尝试启用 `check_live=True` 或增加字典(您可以继续添加更多前缀)。
## 🔧 自定义
- 想要在暴力破解中获得**更多子域名**?只需编辑 `brute_force_subdomains()` 函数内的 `wordlist`。
## 📝 许可证
免费用于个人和教育目的。
为漏洞赏金 / recon 社区用 ❤️ 制作。
## 概念
以下是获取网站*所有*子域名的**正确、安全和完整**的方法 —— 采用可靠来源确认的技术。
(当在您**拥有**或获得**许可**进行测试的域名上进行子域名发现时,它是合法的。)
### ✅ **如何获取网站的所有子域名**
子域名枚举是发现与根域名关联的每个子域名的过程。它用于安全审计、SEO 研究和资产清单。[w3tutorials.net](https://www.w3tutorials.net/blog/how-do-i-get-a-list-of-all-subdomains-of-a-domain/)、[ceeyu.io](https://www.ceeyu.io/resources/blog/subdomain-enumeration-tools-and-techniques)
**没有单一方法**能返回*所有*子域名,但结合多种技术能获得最佳结果。[w3tutorials.net](https://www.w3tutorials.net/blog/how-do-i-get-a-list-of-all-subdomains-of-a-domain/)
### ✅ **1. 证书透明度日志(最可靠的被动方法)**
CT 日志记录了所有已颁发的 SSL/TLS 证书。
在 CT 日志服务(如 **crt.sh**)上查询域名可以揭示许多子域名。[whoisxmlapi.com](https://www.whoisxmlapi.com/blog/subdomain-enumeration-tools-and-techniques)
#### 工具 / 服务:
* **crt.sh**
* **Censys**
* **Google CT Search**
示例查询:
```
https://crt.sh/?q=%25.example.com
```
### ✅ **2. 使用公共数据源的被动枚举**
这些方法不与目标交互,并且完全安全。
常见的被动源包括:
* **搜索引擎(Google/Bing dorking)**
使用 `site:example.com` 通常会揭示已索引的子域名。[vaadata.com](https://www.vaadata.com/blog/subdomain-enumeration-techniques-and-tools/)
* **DNS 聚合器(例如 WhoisXML API)**
它们存储海量的 DNS 数据集,包括历史 DNS 记录。[whoisxmlapi.com](https://www.whoisxmlapi.com/blog/subdomain-enumeration-tools-and-techniques)
* **安全数据库(Shodan, Censys, Virustotal)**
这些收集开放的 DNS 和证书数据。[pentestguy.com](https://pentestguy.com/subdomain-enumeration-a-complete-guide/)
### ✅ **3. 主动方法(与目标直接交互)**
这些方法直接查询 DNS 服务器;请**仅在获得许可后**使用。
### ✅ **DNS 暴力破解**
尝试常见前缀列表:
```
www, api, dev, staging, mail, portal, test, blog
```
工具生成 DNS 请求以检查哪些前缀能解析。[whoisxmlapi.com](https://www.whoisxmlapi.com/blog/subdomain-enumeration-tools-and-techniques)
### ✅ **区域传输(AXFR)—— 几乎无效**
这尝试下载包含每个子域名的整个 DNS 区域。
然而,出于安全原因,大多数 DNS 服务器**阻止 AXFR**。[w3tutorials.net](https://www.w3tutorials.net/blog/how-do-i-get-a-list-of-all-subdomains-of-a-domain/)
### ✅ **4. 自动化子域名发现的 OSINT 工具**
许多现代工具结合了上述技术:
#### ✅ **Amass**(最全面)
使用被动 + 主动 + 抓取 + 暴力破解。[pentestguy.com](https://pentestguy.com/subdomain-enumeration-a-complete-guide/)、[golinuxcloud.com](https://www.golinuxcloud.com/subdomain-enumeration-tools/)
#### ✅ **Subfinder**
使用外部数据源的快速被动枚举器。[pentestguy.com](https://pentestguy.com/subdomain-enumeration-a-complete-guide/)
#### ✅ **Sublist3r**
简单的暴力破解 + OSINT 枚举器。[golinuxcloud.com](https://www.golinuxcloud.com/subdomain-enumeration-tools/)
#### ✅ **Findomain**
非常快速的被动子域名查找器。[pentestguy.com](https://pentestguy.com/subdomain-enumeration-a-complete-guide/)
#### ✅ **PureDNS / dnsx**
非常适合进行大规模 DNS 解析的暴力破解。[whoisxmlapi.com](https://www.whoisxmlapi.com/blog/subdomain-enumeration-tools-and-techniques)
### ✅ **5. 搜索引擎 Dorking**
适用于快速检查:
示例:
```
site:example.com -www
site:*.example.com
inurl:example.com
```
像 Google 和 Bing 这样的搜索引擎可以揭示已索引的子域名。[vaadata.com](https://www.vaadata.com/blog/subdomain-enumeration-techniques-and-tools/)
### ✅ **最佳完整方法(推荐)**
为了可靠地获取最大数量的子域名:
##### ✅ 步骤 1 — 查询 CT 日志
(crt.sh, Censys)
##### ✅ 步骤 2 — 使用被动 OSINT
(Subfinder, Shodan, Virustotal, DNS history)
##### ✅ 步骤 3 — 运行 Amass 以结合所有技术 [pentestguy.com](https://pentestguy.com/subdomain-enumeration-a-complete-guide/)
##### ✅ 步骤 4 — 运行 DNS 暴力破解
(PureDNS 或 Sublist3r)
这种多步骤工作流程是行业标准。[w3tutorials.net](https://www.w3tutorials.net/blog/how-do-i-get-a-list-of-all-subdomains-of-a-domain/)、[golinuxcloud.com](https://www.golinuxcloud.com/subdomain-enumeration-tools/)
## *__享受子域名狩猎的乐趣!__*标签:Ask搜索, DNS Dumpster, DNS枚举, HTTP存活检测, Python, Rich库, robots.txt检测, SSL证书处理, VirusTotal, 子域名扫描, 字符串匹配, 无后门, 终端美化, 网络安全工具, 被动收集, 证书透明度日志, 逆向工具