只给一个根域名,要把所有相关网站资产挖出来,核心思路是三个方向同时推进:横向找关联根域名、纵向挖子域名、反向从IP找域名。以下是可直接落地的完整流程。
第一步:根域名确认与基础画像
拿到根域名(如 example.com),先把基础信息摸透,这是所有后续扩展的锚点。
| 动作 | 工具/方法 | 目的 |
|---|---|---|
| WHOIS查询 | whois example.com / ICANN WHOIS / 站长之家 |
拿到注册人、注册商、注册时间、NS记录 |
| DNS记录查询 | dig example.com ANY / nslookup -type=any example.com |
A/AAAA/MX/NS/TXT/CNAME 全量记录 |
| ICP备案查询 | beian.miit.gov.cn | 国内域名必查,可发现主办单位及关联备案域名 |
| 搜索引擎初探 | site:example.com |
快速看搜索引擎已收录了哪些页面/子域 |
关键判断:
如果 WHOIS 开启了隐私保护,注册人信息被隐藏,需要通过备案信息、反向 WHOIS(如 https://drs.whoisxmlapi.com/reverse-whois-search
)或关联公司查询来绕过。
第二步:横向扩展------找出所有关联根域名
这一步最容易被忽略,但往往收获最大。目标公司不会只有一个根域名。
2.1 通过备案信息挖关联域名
在工信部备案系统中查询主域名的备案信息,拿到主办单位名称,再用该单位名反查所有备案域名。
-
/ 站长之家备案查询 / 爱企查 / 天眼查
-
逻辑:一个公司可能备案了
example.com、example.cn、example.net、example.com.cn等多个根域名
2.2 通过企业信息查子公司域名
用天眼查/企查查/爱企查查目标公司的股权结构,子公司往往有独立域名。
2.3 TLD 爆破------同一品牌的不同顶级域
企业常在多个 TLD 下注册域名。用 ffuf 对常见 TLD 字典进行爆破:
bash
ffuf -u http://www.example.FUZZ -w /path/to/SecLists/Discovery/DNS/tlds.txt -o tlds_result.txt
2.4 证书透明度挖隐藏根域名
访问
搜索 %.example.com,证书中的 dns_names 字段常包含你意想不到的根域名(如 example.cn、example-cdn.com 等)。
第三步:纵向扩展------子域名全量收集
这是资产收集的主力战场,一个根域名下可能有几十上百个子域名。
3.1 被动收集(优先,不触发目标)
| 工具 | 数据源 | 特点 |
|---|---|---|
| crt.sh | 证书透明度日志 | 免费、量大、更新快,%.example.com 查询 |
| Subfinder | 被动DNS/搜索引擎等 | 速度快,subfinder -d example.com |
| Amass | 主动+被动多源聚合 | 最全面,amass enum -d example.com |
| OneForAll | 国人开发,模块丰富 | oneforall -t example.com |
| FOFA | 空间测绘 | domain="example.com" |
| Quake/ZoomEye/Shodan | 空间测绘 | 补充 FOFA 覆盖盲区 |
| VirusTotal | 被动DNS+URL扫描 | 可关联恶意信息 |
3.2 主动收集(补充盲区)
| 工具 | 方式 |
|---|---|
| dnsx (ProjectDiscovery) | `cat subdomains.txt |
| httpx (ProjectDiscovery) | `cat subdomains.txt |
| dig AXFR | 尝试区域传送(目标未禁用时可拿到全部子域) |
3.3 搜索引擎语法补充
bash
site:example.com -www # 排除主站,看其他子域
site:example.com inurl:admin # 找管理后台
site:example.com inurl:api # 找API接口
site:example.com inurl:dev # 找测试环境
site:example.com inurl:staging # 找预发环境
3.4 特殊渠道
| 渠道 | 说明 |
|---|---|
| GitHub 代码泄露 | 搜 org:example 或代码中的域名硬编码 |
| JS 文件分析 | 爬取主站 JS,里面常硬编码子域名(如 api.example.com、cdn.example.com) |
| 邮件头信息 | 注册/找密码功能会发邮件,SMTP 服务器域名可能暴露内部主机名 |
| PTR 记录 | 解析 IP 段的反向记录,可能带出子域名 |
第四步:IP 资产反向挖掘
拿到所有子域名的 IP 后,反过来查同 IP 下还有哪些域名。
| 工具 | 用法 |
|---|---|
| 反向IP查询 | ipinfo.io / ip2location.com |
| FOFA | ip="1.2.3.4" 查同IP资产 |
| CertSpotter | 通过IP查该IP上所有SSL证书包含的域名 |
| SecurityTrails | 历史DNS记录,可能发现已下线但仍有价值的资产 |
第五步:存活检测与资产归档
收集到的域名列表必然有大量死链,必须验证存活。
bash
# 推荐组合(ProjectDiscovery 全家桶)
cat all_domains.txt | httpx -silent -title -tech-detect -status-code -follow-redirects -o live_assets.txt
最终输出应包含:
| 字段 | 说明 |
|---|---|
| 域名 | 完整域名 |
| IP | 解析IP |
| 端口 | 开放端口 |
| 技术栈 | Nginx/Apache/语言/框架 |
| 标题 | HTTP 响应 title |
| 状态码 | 200/301/302/403/404 |
| 证书信息 | 证书颁发者、有效期、SAN 列表 |
| 归属 | 根域名/子公司/CDN |
推荐工具链(一键化)
如果想最大化效率,推荐这套组合:
bash
# 1. 子域名收集
subfinder -d example.com -silent > subs.txt
amass enum -d example.com -o amass_subs.txt
# 2. 去重合并
cat subs.txt amass_subs.txt | sort -u > all_subs.txt
# 3. 存活探测
cat all_subs.txt | httpx -silent -title -tech-detect -o live.txt
# 4. 屏幕截图/指纹识别(可选)
cat live.txt | naabu -silent -port 80,443,8080,8443 | httpx -silent
常见陷阱提醒
| 陷阱 | 应对 |
|---|---|
| CDN 隐藏真实 IP | 用历史DNS记录、邮件头、多地Ping对比、子域名反查 |
| 某些子域没配证书 | 证书透明度漏采,必须用主动DNS枚举补 |
| 域名指向第三方托管 | WHOIS 显示域名归目标,但实际资产不归目标,需人工确认 |
| 隐私保护 WHOIS | 通过备案信息、反向WHOIS、企业工商信息绕过 |
| 资产归属误判 | 同一IP下的域名不一定都属于目标,需逐个验证 |
总结一句话:根域名只是入口,真正的资产量在子域名和关联根域名里。被动收集打底 + 主动枚举补漏 + IP反向挖掘 +存活验证,四步闭环才能做到不漏。