nitishmukhiyaji/Subdomain-Enumeration-Like-Pro
GitHub: nitishmukhiyaji/Subdomain-Enumeration-Like-Pro
一份结合多种安全工具的子域名枚举实战指南与自动化侦察工作流脚本,旨在帮助安全研究者高效发现并监控隐藏资产。
Stars: 0 | Forks: 0
# 🔎 子域名枚举精通指南
### 发现更多资产。扩展你的攻击面。像专家一样进行狩猎。
## 📖 简介
每一次成功的 Bug Bounty 测试,在发现第一个漏洞之前很久就开始了——它始于**侦察**。
最重要的侦察技能之一就是**子域名枚举**。
你的攻击面越大,发现以下内容的机会就越大:
- 开发服务器
- 遗忘的资产
- 测试环境
- 管理面板
- 内部 API
- 备份服务器
- 配置错误的应用程序
- 遗留基础设施
本仓库记录了我的个人侦察方法论,用于高效、系统地发现隐藏资产。
该工作流程基于分层方法,而不是依赖单一工具。它将被动情报收集、主动枚举、DNS 暴力破解、排列组合生成、存活主机验证和自动化结合到一个可重复的流程中。
## 🎯 仓库目标
创建此项目是为了帮助安全爱好者学习专业的侦察技术。
完成本指南后,你将了解:
- ✅ ASN 发现
- ✅ IP 段收集
- ✅ 反向 DNS 枚举
- ✅ 被动枚举
- ✅ 主动枚举
- ✅ DNS 暴力破解
- ✅ 证书透明度
- ✅ 排列组合发现
- ✅ 存活主机验证
- ✅ 技术指纹识别
- ✅ 侦察自动化
- ✅ 持续监控
## 👨💻 谁应该阅读本指南?
本仓库专为以下人群设计:
- 网络安全学生
- 道德黑客
- Bug Bounty 猎人
- 渗透测试人员
- 红队操作员
- OSINT 研究员
- 安全研究员
- 任何对 Web 侦察感兴趣的人
## 📚 目录
- [ASN 与 IP 段发现](#-1-asn--ip-range-discovery)
- [被动子域名枚举](#-2-passive-subdomain-enumeration)
- [主动子域名枚举](#-3-active-subdomain-enumeration)
- [排列组合扫描](#-4-permutation-scanning--the-hidden-gold)
- [解析与探测存活主机](#-5-resolving--probing-live-hosts)
- [持续监控](#-continuous-monitoring)
- [侦察自动化](#-recon-automation)
- [Subfinder 速查表](#-subfinder-cheat-sheet)
- [最佳实践](#-best-practices)
- [总结](#-final-thoughts)
- [阅读完整文章](#-read-the-full-article)
- [关于作者](#-about-the-author)
## 🛠️ 涵盖工具
| 类别 | 工具 |
|-----------|-------|
| 被动枚举 | Subfinder |
| 被动枚举 | Assetfinder |
| 被动枚举 | Amass |
| 证书透明度 | crt.sh |
| DNS 解析 | dnsx |
| DNS 暴力破解 | Gobuster |
| DNS Fuzzing | FFUF |
| DNS 暴力破解 | PureDNS |
| HTTP 探测 | httpx |
| 端口扫描 | Naabu |
| 漏洞扫描器 | Nuclei |
| 排列组合引擎 | Altdns |
| 排列组合引擎 | Gotator |
| 网络情报 | Whois |
| 网络映射 | MapCIDR |
## 🗂 仓库结构
```
Subdomain-Enumeration-Mastery
│
├── README.md
├── banner.png
├── images/
│
├── scripts/
│ recon.sh
│ monitor_new_subdomains.sh
│
├── cheatsheets/
│
├── resources/
│
└── LICENSE
```
## ⚡ 侦察工作流程
```
Target
↓
ASN Discovery
↓
IP Range Collection
↓
Passive Enumeration
↓
Active Enumeration
↓
DNS Resolution
↓
HTTP Probing
↓
Technology Detection
↓
Permutation Generation
↓
Live Validation
↓
Continuous Monitoring
↓
Bug Hunting
```
## 🌐 1. ASN 与 IP 段发现
在搜索子域名之前,了解目标组织拥有的基础设施非常重要。
识别组织的**自治系统号**让你能够枚举其注册的 IP 段、发现隐藏的基础设施并扩展你的攻击面。
### 第一步 — 查找 ASN
在以下网站搜索组织名称:
- https://bgp.he.net
- RIPE
- Hurricane Electric
这将揭示:
- ASN 号码
- 注册网络
- 上游提供商
- IP 前缀
### 第二步 — 提取 IP 段
识别出 ASN 后,收集所有关联的 CIDR 段。
```
apt install whois
whois -h whois.radb.net -- '-i origin ASXXXX' \
| grep -Eo "([0-9.]+){4}/[0-9]+" \
| uniq > ip_ranges.txt
```
### 第三步 — 反向 DNS 枚举
将 CIDR 段转换为单独的 IP 地址并解析 PTR 记录。
```
cat ip_ranges.txt \
| mapcidr -silent \
| dnsx -ptr -resp-only \
-o ptr_records.txt
```
这种技术通常能发现传统被动枚举完全遗漏的主机。
## 🔍 2. 被动子域名枚举
被动枚举收集子域名,而**无需直接与目标基础设施交互**。
相反,它从以下来源收集数据:
- 证书透明度日志
- 搜索引擎
- OSINT 来源
- 公共数据库
- 安全数据集
被动侦察的特点是:
- ✅ 快速
- ✅ 安全
- ✅ 低噪音
- ✅ 强烈推荐
### 🔹 Subfinder
ProjectDiscovery 的 Subfinder 是最快的被动枚举工具之一。
```
subfinder -d example.com -all -recursive
```
常用选项
```
subfinder -d example.com -silent
subfinder -d example.com -all
subfinder -recursive
subfinder -o output.txt
```
### 🔹 Assetfinder
```
assetfinder --subs-only example.com
```
对于发现在其他工具中可能未出现的额外资产非常有用。
### 🔹 Amass(被动模式)
```
amass enum -passive -d example.com
```
Amass 从数十个被动来源汇总信息。
### 🔹 crt.sh
证书透明度日志经常会暴露:
- 泛域名证书
- 内部 API
- 遗忘的服务
- 测试资产
```
curl -s "https://crt.sh/?q=%25.example.com&output=json" \
| jq -r '.[].name_value' \
| sed 's/\*\.//g' \
| sort -u
```
### 合并所有结果
在继续下一步之前,始终合并所有来源。
```
cat *.txt | sort -u > all_subdomains.txt
```
### 解析存活主机
```
cat all_subdomains.txt \
| dnsx -resp \
-o resolved.txt
```
### 搜索有趣的关键词
有趣的关键词通常意味着更高价值的目标。
示例:`admin`、`api`、`dev`、`test`、`stage`、`backup`、`old`、`internal`
```
grep -Ei "admin|api|dev|test|stage|backup"
```
### 技术指纹识别
识别每个主机背后运行的技术。
```
httpx \
-tech-detect \
-title \
-status-code
```
## 🚀 3. 主动子域名枚举
与被动枚举不同,主动枚举直接与 DNS 基础设施交互。
它的动静更大,但通常能发现:
- 隐藏的主机
- 内部命名方案
- 新创建的资产
- 非公开基础设施
### Gobuster DNS
```
gobuster dns \
-d example.com \
-w subdomains.txt
```
### FFUF DNS Fuzzing
```
ffuf \
-u https://FUZZ.example.com \
-w subdomains.txt
```
### PureDNS
使用可信解析器进行快速暴力破解枚举。
```
puredns bruteforce \
wordlist.txt \
example.com
```
### 验证结果
在继续之前,始终解析发现的主机。
```
dnsx
httpx
naabu
```
这些工具有助于验证:
- DNS 记录
- 存活主机
- 开放端口
- HTTP 服务
### 🎯 关键要点
永远不要依赖单一的枚举工具。
专业的侦察结合了:
- 被动枚举
- 主动枚举
- 证书透明度
- DNS 解析
- HTTP 探测
将多种技术叠加在一起,能持续产生更好的覆盖率,并增加发现被忽视的攻击面的机会。
## 🔥 4. 排列组合扫描 — 隐藏的金矿
发现子域名只是开始。
专业的 Bug Bounty 猎人在进行完被动和主动枚举后不会停下脚步。他们会根据已经发现的资产生成**智能排列组合**。
示例:
```
api.example.com
↓
api-dev.example.com
↓
api-test.example.com
↓
dev-api.example.com
↓
api-v2.example.com
↓
staging-api.example.com
```
这些子域名通常包含:
- 🚀 新部署的服务
- 🧪 测试环境
- 🔐 内部应用程序
- 📦 开发 API
- 🏗 测试基础设施
### Altdns
根据发现的主机生成智能排列组合。
```
altdns \
-i live_subs.txt \
-w words.txt \
-o permutations.txt \
-r \
-s resolved_permutations.txt
```
### Gotator
一个强大的排列组合引擎,能够生成数以千计的有意义的变体。
```
gotator \
-sub live_subs.txt \
-perm words.txt \
-depth 2 \
-numbers 3 \
-md \
| dnsx -silent
```
### 为什么要进行排列组合扫描?
许多生产系统永远不会出现在:
- crt.sh
- 搜索引擎
- 被动来源
- DNS 字典
排列组合扫描通常能 uncover 这些隐藏的资产。
## 🌍 5. 解析与探测存活主机
在收集了数千个子域名之后,确定哪些是真正存活的。
### 解析 DNS 记录
```
cat all_subdomains.txt \
| puredns resolve
```
### 探测 HTTP 服务
```
httpx \
-title \
-status-code \
-ip \
-location
```
这提供:
- HTTP 状态
- 重定向
- 服务器标题
- IP 地址
- 技术
### 全端口扫描
```
naabu \
-p 1-65535 \
| httpx
```
此工作流程有助于识别:
- 隐藏的 Web 服务器
- 非标准端口
- 管理面板
- 内部服务
## 🛰 持续监控
侦察不是一次性的活动。
组织会不断部署:
- 新应用程序
- 新 API
- 云服务
- 开发服务器
持续监控有助于在其他人之前发现这些变化。
### 自动化日常监控
一个简单的监控脚本可以:
- ✔ 枚举当天的子域名
- ✔ 比较昨天的结果
- ✔ 识别新创建的资产
- ✔ 探测存活主机
- ✔ 触发漏洞扫描
示例工作流程
```
Today's Enumeration
↓
Compare with Yesterday
↓
Identify New Hosts
↓
HTTP Probe
↓
Run Nuclei
↓
Notify Yourself
```
### 使用 Cron 进行调度
每天自动运行你的监控脚本。
```
crontab -e
```
示例:
```
0 9 * * * /path/to/monitor_new_subdomains.sh
```
## 🤖 侦察自动化
与其手动运行每个工具,不如将整个工作流程自动化。
自动化 pipeline 执行:
- ✅ 被动枚举
- ✅ 合并结果
- ✅ 移除重复项
- ✅ DNS 解析
- ✅ HTTP 探测
- ✅ 排列组合生成
一切都会自动组织到一个整洁的目录结构中。
```
recon/
└── example.com/
├── subfinder.txt
├── amass.txt
├── crtsh.txt
├── all_subdomains.txt
├── live_hosts.txt
├── permutations.txt
└── final_results.txt
```
### 为什么要自动化侦察?
自动化提供了:
- 更快的侦察
- 更好的覆盖率
- 更少的手动工作
- 一致的结果
- 更容易的重复性
专业的猎人会将重复性任务自动化,并花更多时间分析有趣的发现,而不是手动运行命令。
### 💡 专业提示
- ✔ 始终结合多种工具。
- ✔ 永远不要信任单一的数据源。
- ✔ 验证每一个结果。
- ✔ 持续监控目标。
- ✔ 保持你的工作流程自动化。
- ✔ 将每次扫描组织到单独的项目文件夹中。
- ✔ 记录每次测试中的每一个发现。
## 📚 Subfinder 速查表
Subfinder 是 ProjectDiscovery 开发的最快、最可靠的被动子域名枚举工具之一。
**基本用法**
```
subfinder -d example.com
```
执行基本的被动扫描。
**静默模式**
```
subfinder -d example.com -silent
```
仅返回发现的子域名。
**保存输出**
```
subfinder -d example.com -o subdomains.txt
```
将结果保存到文件中。
**多目标**
```
subfinder -dL domains.txt
```
一次枚举多个域名。
**递归枚举**
```
subfinder -d example.com -recursive
```
发现更深层次的子域名。
**使用所有来源**
```
subfinder -d example.com -all
```
查询每一个可用的被动来源。
**JSON 输出**
```
subfinder -d example.com -oJ
```
以 JSON 格式导出结果。
**带 IP 解析**
```
subfinder -d example.com -active -oI
```
解析发现的主机并包含 IP 地址。
**速率限制**
```
subfinder -d example.com -rl 5
```
限制每秒的请求数。
**列出可用来源**
```
subfinder -ls
```
显示所有受支持的被动数据源。
**使用特定来源**
```
subfinder -d example.com -s github,certsh
```
仅查询选定的提供商。
**排除来源**
```
subfinder -d example.com -es alienvault
```
排除不需要的提供商。
**Pipeline 示例**
```
subfinder -d example.com -silent | httpx -silent
```
```
subfinder -d example.com -silent | dnsx -silent
```
```
subfinder -d example.com -silent | httpx | nuclei -t templates/
```
## 🧠 最佳实践
- 始终结合多种枚举工具。
- 永远不要依赖单一的被动来源。
- 在验证之前移除重复的结果。
- 在进行 HTTP 探测之前验证 DNS 记录。
- 自动化重复的侦察任务。
- 定期监控目标以发现新部署的资产。
- 将结果整理到结构化的项目目录中。
- 在每次测试过程中记录详细的笔记。
## 🎯 总结
子域名枚举不是单一的命令——它是一种**分层侦察方法论**。
最强大的结果来自于结合:
- 被动枚举
- 主动枚举
- 证书透明度
- DNS 暴力破解
- HTTP 探测
- 技术指纹识别
- 排列组合扫描
- 持续监控
- 自动化
目标不是运行更多的工具——而是构建一个可重复的工作流程,以持续 uncover 隐藏的攻击面。
## 📖 阅读完整文章
**Medium 文章**
🔗 https://medium.com/@nitishmukhiya/subdomain-enumeration-mastery-subdomain-enumeration-like-pro-5ab2c934c880
## 👨💻 关于作者
### Nitish Mukhiya
安全研究员 • Bug Bounty 猎人 • 网络安全学习者
目前专注于:
- Web 应用程序安全
- Bug Bounty 狩猎
- 侦察自动化
- 进攻性安全
- PortSwigger Web Security Academy
## 🌐 与我联系
## ⭐ 支持项目
如果你觉得这个仓库有用:
- ⭐ 给仓库点 Star
- 🍴 Fork 它
- 📝 在网络安全社区分享它
- 🤝 贡献改进
每一次贡献都有助于为所有人提供更好的资源。
## ⚠️ 免责声明
本仓库**仅用于教育和授权的安全测试**始终**仅在你拥有或获得明确许可评估的系统上**执行侦察和安全测试。
作者不对所提供信息的任何滥用负责。
🚀 一份面向现代子域名枚举的完整实战指南
被动侦察 • 主动侦察 • DNS 暴力破解 • 自动化 • Bug Bounty • 红队演练
## ❤️ 祝狩猎愉快!
### 由 **Nitish Mukhiya** 用 ☕ 和 ❤️ 制作
**如果这个仓库对你有帮助,别忘了 ⭐ 点 Star!**
标签:Cutter, GitHub, MISP, 子域名枚举, 安全指南, 实时处理, 系统安全, 网络调试, 自动化, 运行时操纵