信息搜集--子域名枚举 作者: ynnddddd 时间: 2025-03-12 分类: 学业,网络安全,渗透工具与命令 ### 子域名枚举方法详解 子域名枚举是渗透测试和信息搜集的关键步骤,用于发现目标组织的网络资产。以下是常见方法及详细操作: --- #### **一、DNS查询与解析** 通过DNS协议直接查询子域名信息。 1. **普通DNS查询** - **原理**:向DNS服务器查询A记录、CNAME记录等。 - **工具**: ```bash # 使用dig查询A记录 dig sub.example.com A +short # 查询所有记录类型 dig sub.example.com ANY ``` - **适用场景**:已知子域名时验证是否存在。 2. **DNS区域传输(AXFR)** - **原理**:请求主DNS服务器传输整个域的区域文件(含所有子域名)。 - **操作**: ```bash dig @ns.example.com example.com AXFR ``` - **注意**: - 多数服务器已禁用区域传输(需配置错误才会成功)。 - 合法用途需管理员授权。 --- #### **二、暴力破解(字典枚举)** 通过字典生成可能的子域名并尝试解析。 1. **字典准备** - 常见字典: - **SecLists**(`Discovery/DNS/subdomains-top1million-*.txt`) - **fuzzdb**(`/discovery/predictable-subdomains/**`) - 自定义字典:根据目标业务关键词生成(如 `dev`, `api`, `test`)。 2. **工具推荐** - **dnsenum**: ```bash dnsenum --enum -f subdomains.txt example.com ``` - **gobuster**: ```bash gobuster dns -d example.com -w subdomains.txt -t 50 ``` - **massdns**(高性能): ```bash ./massdns -r resolvers.txt -t A -w results.txt subdomains.txt ``` 3. **优化技巧** - 使用通配符(`*.example.com`)检测泛解析。 - 结合多级子域(如 `dev.api.example.com`)生成组合字典。 --- #### **三、搜索引擎抓取** 利用搜索引擎索引的子域名信息。 1. **Google Dork语法** - 搜索特定域名的子域名: ``` site:*.example.com ``` - 结合关键词: ``` site:*.example.com "admin" ``` 2. **第三方搜索引擎API** - **Shodan**: ```bash shodan search hostname:example.com ``` - **Censys**: ```bash censys search "parsed.names: example.com" ``` --- #### **四、证书透明度日志(Certificate Transparency, CT)** 从HTTPS证书的公开记录中提取子域名。 1. **原理** - 证书颁发机构(CA)需将证书信息提交到CT日志(如Google的crt.sh)。 - 证书中可能包含多个子域名(Subject Alternative Names, SAN)。 2. **工具与网站** - **crt.sh**: ```sql https://crt.sh/?q=%.example.com ``` - **certspotter API**: ```bash curl -s https://api.certspotter.com/v1/issuances?domain=example.com ``` 3. **优点** - 快速获取大量子域名,尤其适合HTTPS站点。 - 可发现历史记录(即使证书已过期)。 --- #### **五、被动数据源(第三方聚合)** 从公开的扫描数据、漏洞库中提取子域名。 1. **安全平台接口** - **Virustotal**: ```bash curl -s "https://www.virustotal.com/api/v3/domains/example.com/subdomains" \ -H "x-apikey: YOUR_API_KEY" ``` - **SecurityTrails**: ```bash curl "https://api.securitytrails.com/v1/domain/example.com/subdomains" \ -H "APIKEY: YOUR_API_KEY" ``` 2. **DNS历史数据库** - **DNSdumpster**:https://dnsdumpster.com - **ViewDNS.info**:https://viewdns.info --- #### **六、网络爬虫与内容分析** 从网页内容、JavaScript文件中提取子域名。 1. **爬虫工具** - **Sublist3r**(综合爬虫): ```bash sublist3r -d example.com -o output.txt ``` - **waybackurls**(历史快照): ```bash waybackurls example.com | grep -oP '[\w-]+\.example\.com' | sort -u ``` 2. **JS文件分析** - 使用浏览器开发者工具查看页面加载的JS文件。 - 正则匹配子域名: ```bash curl -s https://example.com/script.js | grep -Eo '[a-zA-Z0-9.-]+\.example\.com' ``` --- #### **七、综合工具自动化** 整合多数据源的自动化工具: 1. **Amass** ```bash amass enum -passive -d example.com -o subdomains.txt # 被动模式 amass enum -active -brute -w subdomains.txt -d example.com # 主动爆破 ``` 2. **Subfinder** ```bash subfinder -d example.com -all -o output.txt ``` 3. **Aquatone**(可视化) ```bash aquatone-discover -d example.com aquatone-scan -d example.com ``` --- #### **八、高级技巧与注意事项** 1. **泛解析处理** - 检测泛解析:尝试随机字符串子域名(如 `random123.example.com`)。 - 若存在泛解析,需过滤无效结果(如对比响应IP是否相同)。 2. **速率限制规避** - 使用多个DNS解析器(如`massdns`的`resolvers.txt`)。 - 添加延迟避免触发防火墙(如`-delay 100ms`)。 3. **结果去重与验证** - 工具:`sort -u`、`httpx`(验证存活)。 - 示例: ```bash cat subdomains.txt | httpx -title -status-code -o live_subdomains.txt ``` 4. **法律与道德规范** - 仅对授权目标操作。 - 避免对高敏感子域(如 `owa.example.com`)直接扫描。 --- ### **总结** - **组合策略**:被动收集(CT日志、API) + 主动爆破(字典) + 内容分析。 - **工具链示例**: ```bash subfinder -d example.com | anew subs.txt amass enum -d example.com | anew subs.txt httpx -l subs.txt -o live_subs.txt ``` - **输出管理**:使用`anew`合并结果,`httpx`验证存活。 通过多维度枚举,可最大化发现目标的子域名资产,为后续漏洞探测奠定基础。 标签: none