在线子域名扫描的价值不只是跑一遍字典找到几个网址,重点是尽量找全主域名下所有对外暴露的入口,并逐个判断这些入口是否存在过期框架、默认后台、测试环境或配置错误。 资产清单不完整,后面的漏洞检测基本没有意义漏掉的子域名,等于没扫。
先搞清楚:在线子域名扫描扫描的是什么
子域名才是攻击面的大头
主站通常有WAF、有专人值班、有上线流程;子域名往往由不同团队、外包公司或历史项目留下,据行业公开的资产测绘经验,多数企业外网暴露资产里,子域名的数量是主域名的数倍,一个2018年上线的活动页、一个外包做的报名系统、一个临时开的对象存储,都可能挂在你完全不知道的二级域名上。
这类资产的特征很一致:没人认领、没人打补丁、没人看日志,攻击者不需要攻破主站,从这些边缘入口进去,再横向找内网凭证就够了。
数据来源不止字典爆破
真正有效的在线子域名扫描,数据来源是多路并行的:
- DNS记录:A、AAAA、CNAME、MX、TXT、NS,TXT里经常藏SPF配置和验证字符串
- 证书透明日志(CT Log):新上线的子域名几乎一定会申请HTTPS证书,这是目前覆盖面最广的被动来源
- 被动DNS(pDNS):历史解析记录,能挖出已经下线但DNS还在的老资产
- 搜索引擎与测绘平台、favicon哈希、证书序列号都能作为指纹反查
- 字典爆破:主动补点,覆盖那些没申请证书、没被爬虫抓到的内部命名
泛解析会误导判断
很多域名开了泛解析,随便一个不存在的子域名都能解析出一个IP,如果不先做随机前缀测试,爆破结果里会混进大量假阳性,后面的验证工作全部白费,做法很简单:先解析一个随机字符串子域名,如果也返回IP,说明存在泛解析,需要按返回内容做过滤。
在线子域名扫描能发现哪些漏洞
子域名本身不是漏洞,但它把攻击面打开了,常见的风险集中在下面几类:
- 管理后台裸奔:/admin、/manager、8080、8443端口直接对外,登录页没有二次验证
- 测试与预发环境未鉴权:test、uat、dev、pre开头的子域名,数据库连接串写在前端
- 过期框架与组件:老版本Struts2、Fastjson、旧版Spring Boot Actuator暴露/env
- 未授权访问:Redis、MongoDB、Elasticsearch、RabbitMQ管理端口对外开放
- 子域名接管:CNAME指向已释放的云服务,攻击者可以直接注册同名资源
- 源码与备份泄露:.git、.svn、.zip、.sql、.bak 放在Web根目录下
- 证书信息泄露:证书里的组织单位、内部命名规范暴露了资产结构
| 风险类型 | 典型表现 | 检测方式 |
|---|---|---|
| 后台暴露 | 登录页可访问、无验证码 | 状态码与页面标题识别 |
| 未授权服务 | 端口开放、返回数据 | 端口扫描与协议指纹 |
| 子域名接管 | CNAME指向外部、返回404 | CNAME解析链逐级核对 |
| 敏感文件 | .git/config 可下载 | 路径字典探测 |
子域名接管最容易被低估
这类问题的隐蔽性在于:域名是你的、DNS记录是你的、证书也是你的,但内容托管在第三方,当CNAME指向的GitHub Pages、对象存储桶或PaaS应用被释放后,任何人都能在原地址上发布内容,行业共识认为,资产梳理时必须把CNAME解析链逐级展开到最终托管方,不能只看第一跳。
子域名爆破和在线扫描有什么区别
这两个词经常被混着用,实际是两种思路。
| 维度 | 字典爆破 | 被动在线扫描 |
|---|---|---|
| 原理 | 拿字典逐个拼接查询DNS | 聚合CT日志、pDNS、测绘数据 |
| 覆盖范围 | 取决于字典质量 | 取决于数据源覆盖面 |
| 速度 | 慢,受DNS速率限制 | 快,一次查询拿到历史数据 |
| 误报率 | 泛解析环境下偏高 | 相对低,但存在历史失效记录 |
| 适用场景 | 补点、内部命名规范已知 | 初次摸底、快速铺面 |
实际操作中两者是互补关系:先用被动数据把面铺开,再用精简字典补那些没进证书日志的入口,只做其中一种,覆盖率都会明显下降。
一套可复现的扫描流程
第一步:被动收集
从证书透明日志起步,成本最低、覆盖面最广:
curl -s "https://crt.sh/?q=%25.example.com&output=json" \ | jq -r '.[].name_value' | tr ',' '\n' | sort -u > subs.txt
再叠加被动DNS和测绘平台的导出结果,去重合并,这一步不需要碰目标服务器,属于纯查询。
第二步:存活验证
解析和HTTP探测分开做:
dnsx -l subs.txt -a -resp -o resolved.txt httpx -l resolved.txt -status-code -title -tech-detect -o alive.txt
-tech-detect会顺带给出框架指纹,省掉一轮手工判断。
第三步:风险判定
在授权范围内,用模板化扫描做批量筛查:
nuclei -l alive.txt -t exposures/ -t cves/ -severity high,critical
同时用nmap -sV -p 1-10000对重点IP做端口与版本识别,两边结果交叉比对,业内专家指出,模板扫描只能覆盖已知模式,真正的风险往往藏在业务逻辑里,人工复核不能省。
第四步:归档与复测
把每个子域名对应到负责人、业务系统、上线时间和复测周期,资产表不做维护,三个月后又会回到信息不全的状态。
在线子域名扫描工具免费和付费差别大吗
差别主要在三个地方:数据覆盖、历史深度、变更监控。
免费方案里,证书日志查询完全开放,VirusTotal和SecurityTrails有每日额度,Amass被动模式可以本地跑,做一次性摸底够用。
付费的资产测绘平台和商业ASM产品,优势在于历史解析数据更全、API配额更高、能对新增子域名做持续告警,价格上,SaaS测绘平台按查询量或席位计费,一年从几千到数万不等;本地化部署的商业ASM通常在十万量级,选型时先明确是“一次性排查”还是“持续监控”,前者没必要上商业产品。
落地时的合规与协作问题
北京企业做子域名资产排查要注意什么
北京地区对网络安全等级保护和企业数据合规的要求执行较严,自查自有资产没有问题,但涉及第三方系统、云上托管资源、子公司域名时,需要提前拿到书面授权范围,扫描行为本身会在目标日志里留下大量请求记录,如果没有授权边界,容易引发争议,比较稳妥的做法是把扫描窗口、源IP段、扫描强度提前报备给运维团队,避开业务高峰期。
在线子域名扫描常见问题
在线子域名扫描会不会被判定为攻击行为
被动查询阶段只访问公开数据库,不接触目标服务器,不存在这个问题,主动探测阶段会产生大量请求,是否合规取决于授权,对自有资产做自查,建议保留授权文件并限制扫描速率。
扫出来几百个子域名,怎么排优先级
按三条线排序:一是是否直接暴露管理后台或数据库端口,二是是否使用已知存在高危漏洞的组件版本,三是是否处于无人认领状态,三条全中的,排在最前面处理,单纯返回200但内容是静态页面的,可以放到最后。
只做一次扫描够不够
不够,子域名是动态变化的,新项目上线、外包交付、临时活动页都会带来新增入口,老资产下线后DNS记录也常常不清理,合理的节奏是核心域名每月一次、全量资产每季度一次,同时开启证书日志的新增告警作为补充。
把资产清单做全,再谈漏洞;把授权边界划清,再动手扫描这两件事的顺序不能反。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/929751.html


评论列表(1条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于字典爆破的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!