要精准查找子域名,唯一靠谱的路径是组合使用DNS解析记录查询、证书透明度日志、暴力枚举和第三方数据源,单靠一种方法必然漏掉大量目标。
理解DNS解析如何暴露子域名
DNS记录中的基础信息
每个域名背后都挂着一整套DNS记录。A记录直接映射到IPv4地址,CNAME记录指向其他域名,MX记录暴露邮件服务器,NS记录显示域名服务器,TXT记录常常包含SPF、DMARC等信息,SOA记录则提供区域主服务器信息,这些记录组合在一起,能拼凑出目标域名的大部分基础设施布局。
举个例子,如果你查询example.com的MX记录,发现指向mail.example.com,那这个子域名大概率是真实存在的。NS记录中出现的ns1.example.com这类地址,很多时候也是被忽视的子域名入口。
通过DNS查询命令手动挖掘
在本地终端中,你可以用dig命令依次查询常见记录类型,基础命令格式如下:
dig example.com ANY dig example.com MX dig example.com NS dig example.com TXT
dig工具能返回权威DNS服务器的完整响应,从中提取域名片段是最直接的手法,Windows用户可以使用nslookup,交互模式下输入域名再切换记录类型,同样能拿到类似结果。
但手动查询的效率比较低,更适合对单一目标做快速摸底,想要系统性地枚举子域名,必须进入自动化阶段。
利用证书透明度日志精准捕获子域名
证书透明度日志的工作原理
CA机构签发的每一张SSL/TLS证书都会被记录到公开的证书透明度日志中。证书中包含域名列表,这些域名往往覆盖了企业所有对外服务的子域名,包括那些从未在DNS区域中显式列出、仅由内部系统调用的隐藏入口。
行业共识认为,证书透明度日志是目前覆盖面最广、准确率最高的被动子域名情报源,因为它直接来源于真实签发的证书,伪造成本极高。
在crt.sh中手动检索目标域名
crt.sh是社区维护的证书透明度搜索引擎,数据库开放且免费,查询步骤非常直接:
- 访问crt.sh并在搜索框输入
%.example.com - 页面会列出所有匹配该域名模式的证书记录
- 每条记录包含证书的颁发时间、到期时间和包含的域名列表
- 点击展开记录,可以看到完整域名列表
比如搜索%.baidu.com,返回结果中会出现大量业务子域,这些信息在常规DNS查询中根本不可见。
使用工具批量获取证书日志数据
手动浏览crt.sh对于三五个域名来说够用,但目标一旦多起来就必须启用工具。certsh、ct-exposer、amass等开源工具都内置了证书透明度查询模块,能自动从多个CT日志源拉取数据。
以amass为例,被动模式下的基础命令是:
amass enum -passive -d example.com
这条命令会同时查询crt.sh、Censys、Spyse等多个数据源,把证书日志、搜索引擎快照、DNS记录等信息聚合到一张表里,输出结果自动去重,覆盖率远超人工检索。
暴力枚举与字典爆破挖掘隐藏子域名
字典配置的准确性判断
证书透明度日志能覆盖相当一部分子域名,但企业内网使用的测试子域、开发预发布环境、历史遗留系统常常不会申请公开证书,针对这些目标,暴力枚举是唯一可行的补充手段。
枚举的原理并不复杂:准备好一份子域名字典,逐个拼接目标域名,然后发起DNS解析请求,能解析成功的即为存在的主机,关键在于字典质量通用字典体积虽大但命中率低,行业内的做法是根据目标公司的业务特征动态生成自定义字典。
比如目标域名是jd.com,字典中就应该包含order、item、sale、warehouse、logistics这类电商业务词;如果目标是银行系统,ebank、mobilebank、credit、risk这类金融术语则更贴合。
常用工具与参数调优
subfinder和dnsx的组合是目前主流的枚举方案,执行流程分两步:
subfinder -d example.com -all -o subs.txt dnsx -l subs.txt -resp-only -o resolved.txt
subfinder先做被动收集,dnsx主动验证解析结果。暴力枚举工具中,ffuf配合massdns能实现每秒上万的解析速度,但要注意控制并发量,避免对目标DNS服务器造成过大压力,这在真实环境中有一定风险。
对于单域名的小规模枚举,gobuster的dns模式更容易上手:
gobuster dns -d example.com -w subdomains.txt -t 50
-t参数控制线程数,建议从50开始逐步上调,观察DNS服务器的响应情况。
借助搜索引擎和第三方平台发现线索
利用Google Hacking语法定位子域名
搜索引擎的快照数据中留存了大量历史网页,这些页面上引用的资源地址经常包含子域名信息,在Google或Bing中,以下查询语法能精准提取子域:
site:.example.com返回所有该域名下的收录页面site:example.com -www排除主站后剩余的收录结果example.com` 筛选标题中包含域名的页面
搜索结果中出现的主机名,大多是真实部署且对外可访问的子域名,不过搜索引擎的收录存在延迟,新上线的子域可能几个月后才被索引,所以这个方法更适合作为补充验证手段。
网络空间测绘平台的数据库查询
FOFA、ZoomEye、Shodan这类网络空间测绘平台持续扫描全网IP,将IP地址、端口、协议、证书、域名等信息关联为结构化数据,在FOFA中查询domain="example.com",平台会返回所有关联该域名的IP资产和服务指纹。这些平台的数据覆盖面远超单个搜索引擎,对于已被删除或停止解析的子域记录也有历史留存。
免费账号通常有查询条数限制,但对于中小规模的子域名排查来说,基本够用。
子域名有效性与阶段性验证
解析结果的去重与过滤
各渠道收集到的子域名汇总后首要任务是去重,使用sort -u命令对列表排序去重,或者通过dnsx自动完成这一过程。去重后仍需进一步过滤,排除以下噪声:
- 泛解析记录:部分域名配置了
.example.com的泛解析,任意不存在的子域都会返回解析结果 - 已失效的CDN节点:解析到CDN加速节点的子域可能因服务下线而返回错误IP
- 内部保留域名:
localhost.example.com这类地址虽能解析但无实际业务价值
使用HTTP探测确认服务可用性
DNS解析成功只说明域名指向了一个IP,不代表该地址上运行着真实业务。用httpx工具对解析成功的IP做HTTP请求探测,确认响应码、标题、状态码:
httpx -l resolved.txt -title -status-code -tech-detect
执行后输出会标记每个域名的HTTP状态码、页面标题和使用的Web技术栈(如Nginx、Apache、React等),状态码为200、301、302的域名大概率是存活的业务系统,403可能意味着访问受控,404则可能是已废弃的占位页面。
自动化工具链与工作流串联
主流工具对比
| 工具名称 | 数据源类型 | 输出格式 | 适用场景 |
|---|---|---|---|
| subfinder | 被动收集(CT日志、DNS、搜索引擎) | 纯文本、JSON | 快速收集、目标信息摸底 |
| amass | 被动+主动(枚举、爆破) |
数据库、Graphviz图形 | 深度测绘、红队演练 |
| oneforall | 被动+主动(内置多字典) | CSV、SQLite | 中文站点适配度高 |
| dnsx | 主动验证 | 纯文本 | 结果筛选、批量确认 |
工具之间不是替代关系,而是互补关系。推荐组合是subfinder做被动收集,oneforall补充爆破,dnsx做汇总验证,整体耗时在十分钟以内,覆盖度比单用任意一款工具高出较大比例。
完整执行流程示例
- 第一步:
subfinder -d example.com -all -o passive.txt收集被动数据 - 第二步:
oneforall --target example.com run执行深度扫描 - 第三步:合并
passive.txt和oneforall输出结果,sort -u去重 - 第四步:
dnsx -l merged.txt -resp-only确认存活解析 - 第五步:
httpx探测HTTP服务状态 - 第六步:人工复核状态码异常但解析正常的域名
子域名查找的常见问题解答
为什么有些子域名通过DNS查询找不到?
DNS区域传送在大多数服务器上已被禁用,外部递归查询只能获得部分记录,生产环境的数据库服务器、消息队列、监控系统等通常只在内网DNS中注册,公网无法直接解析,这类子域名只能通过证书日志、历史DNS记录或GitHub代码泄露等间接渠道发现。
免费工具和商业工具的查询结果差异大吗?
免费工具受限于API配额和数据源授权,查询频率和数据完整性有一定差距,商业平台如Censys、RiskIQ(现为Microsoft Defender外部攻击面管理)提供全球IP的持续扫描数据,在历史数据回溯和未知资产发现方面优势明显,业内专家指出,对于单点目标的子域名排查,免费工具组合基本够用;但对于持续监测的资产管理工作,商业平台的数据连续性值得投入。
泛解析配置对子域名枚举有什么实质影响?
泛解析会让任意不存在的子域名都返回一个IP地址,这会极大干扰枚举结果的准确性,处理方法是在批量验证前先用随机字符串测试目标域名是否启用了泛解析,如果确认存在泛解析,则在dnsx验证时设置-validate参数,用已知无效的域名作为基准对比响应差异,过滤掉命中泛解析的噪声记录。
子域名发现本质上是一场信息拼图游戏,DNS记录给出骨架,证书日志填充血肉,暴力枚举补充边角,第三方平台补全盲区,把这几条路径按照上述流程串起来,绝大多数情况下能还原一个企业相对完整的域名资产地图。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/619382.html





