通过证书透明日志、被动DNS和轻量级爆破,大多数目标都能在半小时内暴露出测试环境、管理后台或已遗忘的外部服务。
很多新手以为子域名挖掘就是拿个工具挂字典跑,实际这样做会漏掉大量资产,正确姿势是先被动收集、再主动验证,最后持续比对新增记录,下面按使用场景、操作命令和成本差异拆开讲。
子域名挖掘工具哪个好用?先按任务选而不是按名气选
工具没有绝对最好,只有匹配当前阶段,多数情况下,安全测试人员会同时用两种:被动收集工具和主动爆破工具。
被动收集类工具和渠道
- crt.sh:证书透明日志查询,完全免费,适合初期快速获取已签发证书的域名。
- Subfinder:开源工具,聚合VirusTotal、SecurityTrails、Censys等接口,一条命令就能扩展结果。
- Amass passive模式:OWASP维护,适合对数据做去重和可视化。
- 在线资产测绘平台:Fofa、Hunter、Quake,配合语法查询,能看到子域名对应IP、端口和标题。
常用命令:
subfinder -d example.com -all -o passive.txt curl "https://crt.sh/?q=%25.example.com&output=json" | jq -r '.[].name_value' | sort -u
主动枚举与爆破类工具
- dnsx / massdns:速度快,适合验证大量域名是否解析。
- OneForAll:国内开源,集成证书、DNS、空间测绘、字典爆破,一条龙完成。
- Layer子域名挖掘机:图形化界面,对刚入行的人友好,但速度一般。
- puredns:适合做精确解算和泛解析过滤,比传统massdns更易用。
按使用阶段的推荐
| 阶段 | 推荐工具/渠道 | 理由 |
|---|---|---|
| 0-5分钟 | crt.sh、Subfinder被动模式 | 零接触、数据准、速度快 |
| 5-15分钟 | OneForAll或Amass passive+brute | 补全DNS枚举和引擎接口 |
| 15分钟以后 | massdns、dnsx验证 | 过一遍自定义字典并识别解析结果 |
| 长期监控 | 定时跑Subfinder+diff脚本 | 发现新增子域名 |
不要一上来就上大字典猛爆破,那样不仅慢,还容易触发目标WAF或DNS限制,先用被动来源拿到真实存在过的记录,再去验证,效率会高很多。
子域名爆破和DNS枚举区别:很多教程没讲清的地方
两者的底层逻辑不同
- DNS枚举:从公开来源获取已知子域名,比如证书、搜索引擎、DNS历史记录,偏“收集”。
- 子域名爆破:用字典穷举常见前缀,逐一向DNS服务器查询,看是否返回结果,偏“猜测”。
行业共识认为,被动DNS枚举在合规要求较高的测试项目中优先级更高,因为它不产生明显的直接请求,对目标干扰小。
什么时候用爆破更合适
- 目标主域名做了泛解析,很多不存在的子域名也会返回解析,需要先判断泛解析特征。
- 被动结果太少,目标业务命名有规律,比如按城市或部门分配前缀。
- 拿到授权后,需要验证一批可疑前缀是否可解析。
操作路径
# 泛解析检测:随机生成不存在的子域名,看是否解析成功 dig randomstring.example.com # 被动枚举 subfinder -d example.com -all -o passive.txt # 轻量爆破 puredns bruteforce subdomains.txt example.com -r 8.8.8.8,1.1.1.1
实际项目里,爆破不是越多越好,字典控制在常见业务前缀、网络设备前缀和运维常用词范围内,多数情况下比百万级大字典更有效。
企业安全测试中怎么做子域名收集更稳
从证书透明日志和备案信息切入
国内目标可以结合ICP备案、APP信息、小程序主体信息,比如某家互联网公司的测试资产,经常藏在三级、四级域名里,查询路径:
- 查主体:工信部ICP/IP地址/域名信息备案管理系统。
- 查证书:crt.sh、Censys、Google Transparency Report。
- 查资产:Fofa语法
cert="example.com"或
domain="example.com"。
给测试团队的操作节奏
- 第1步:确认授权范围,区分主域名和关联主体。
- 第2步:跑被动工具拉取公开来源。
- 第3步:用DNS解析结果去重,标记真实存活。
- 第4步:对存活域名做端口和指纹扫描。
- 第5步:把结果同步给资产台账,新增域名做二次确认。
业内专家指出,子域名管理混乱是中型以上企业的主要安全短板,测试中相当一部分中高危漏洞来自无人维护的子站。
北京网络安全公司做渗透测试常用的子域名收集路径
北京地区的安全团队在做授权测试时,普遍会先扫一圈关联主体,再针对互联网暴露的子域名做指纹识别,因为这里云服务商和CDN使用率高,直接解析到的IP可能是CDN节点,需要结合多地解析判断真实入口。
具体做法:
- 先通过备案信息反查客户主体及其关联公司。
- 用证书日志和Fofa语法交叉确认子域名。
- 对疑似真实IP的域名,从不同区域DNS服务器发起解析。
- 对北京地区目标,政务、教育客户优先用备案和证书来源,避免重字典爆破。
免费子域名查询与付费API的差别在哪
很多团队一开始都用免费渠道,一旦涉及大批量扫描或长期监控,就会发现尴尬:免费接口大多数有频率限制,数据覆盖也不稳定。
免费渠道的典型限制
- crt.sh 无官方SLA,偶尔返回超时或空数据。
- SecurityTrails免费额度有限,不能做批量查询。
- Fofa/Hunter注册用户能看到的基础数据有限,高级语法和导出要会员。
- DNSDumpster对海外目标更友好,国内部分域名覆盖不足。
付费能力对应的场景
- 需要完整历史DNS记录,减少漏报。
- 需要API自动化,和内部工单或资产管理平台联动。
- 需要合规的批量查询能力,避免被服务商封禁。
- 需要全球多地解析视角,判断CDN和真实IP。
如果只是偶尔做一次渗透测试,免费渠道完全够用,如果是长期安全运营,建议把预算放在数据接口和自动化脚本上,而不是堆人工。
子域名发掘容易忽略的三个细节
- 泛解析干扰:先检测随机域名是否解析,避免把虚假结果当成真实资产。
- 接管风险:关注CNAME指向云存储、GitHub Pages、第三方SaaS但已失效的记录。
- 新注册域名:定期对比DNS结果,突然新增的前缀很可能是测试环境或临时服务。
| 风险类型 | 表现 | 处置建议 |
|---|---|---|
| 泛解析 | 任意前缀都能解析 | 排除泛解析IP,按端口和指纹再筛选 |
| CNAME接管 | 指向不存在的第三方服务 | 验证第三方平台是否可注册或认领 |
| 影子资产 | 不在台账里的存活子域名 | 纳入资产清单,标记责任人 |
子域名发掘没有银弹,只有“被动优先、主动验证、持续比对”这个组合,真正拉开差距的不是工具多少,而是能不能把零散DNS记录变成可用的资产清单。
Q&A
子域名挖掘工具哪个适合新手入门?
crt.sh加Subfinder足够应付多数初级任务,crt.sh不需要API Key,直接搜索域名即可查看历史证书;Subfinder配置默认接口后一条命令就能聚合结果,缺点是国内网络访问部分接口可能不稳定,需要配合代理或替代接口。
子域名怎么查才能避免遗漏泛解析?
先跑被动来源拿到已知域名,再生成一串随机前缀做DNS查询,如果随机前缀也返回解析,说明目标存在泛解析,此时要把泛解析IP标记出来,后续只保留端口、标题或证书与目标业务强相关的结果。
子域名爆破和DNS枚举哪个更适合企业安全测试中的快速资产盘点?
快速资产盘点优先选DNS枚举,尤其是证书透明日志和被动DNS等来源,不对目标产生明显探测流量,结果也相对干净,爆破更适合授权充分、需要验证特定前缀的场景,两者结合时,枚举结果可以作为爆破字典的补充词根来源。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/664241.html





