一、泛解析:信息收集路上的 “迷雾弹”
(一)什么是域名泛解析
在网络世界中,域名就像是网站的 “门牌号”,方便用户访问各类网络服务。而泛解析作为域名解析的一种特殊方式,其核心在于利用通配符 “*” 来实现所有次级域名指向同一 IP 地址。简单来说,当你设置了泛解析,例如你的域名为
example.com ,那么诸如
test.example.com 、
abc.example.com等无数未明确配置的子域名,都会被统一指向你设定的那个 IP 地址。从技术原理上看,DNS 服务器在解析域名时,遇到通配符记录,会按照既定规则将相关子域名解析到指定目标。这原本是为了简化大量子域名管理而诞生的便捷功能,却在网络安全领域引发了一系列问题。
(二)泛解析对信息收集的核心威胁
在网络安全攻防场景里,信息收集是至关重要的前期步骤,准确全面地掌握目标网络资产信息,是后续开展渗透测试、漏洞挖掘等工作的基础。但泛解析的存在,无疑给信息收集工作带来了极大的干扰。
自动化信息收集工具在枚举子域名时,由于泛解析机制,会把大量实际上不存在、但被泛解析的子域名也纳入结果中。这就好比在一堆真正的宝藏中混入了大量的赝品,让攻击者难以迅速辨别出哪些才是真实有效的目标子域名,大量时间和精力浪费在分析这些无效记录上,效率大幅降低。而且,泛解析指向的 IP 地址可能是 CDN(内容分发网络)节点或负载均衡设备,这就如同给攻击者指了一条错误的方向。因为 CDN 节点主要用于缓存和分发内容,并非真正存储核心业务数据的服务器,负载均衡设备则是负责将流量分配到多个后端服务器。攻击者如果依据泛解析指向的这些节点继续进行漏洞探测和渗透,不仅无法找到真正的漏洞所在,还可能触发目标的安全防护机制,暴露自己的攻击意图。
二、三步破解泛解析迷局:检测 - 过滤 - 验证
面对泛解析带来的挑战,安全从业者并非束手无策,一套行之有效的 “组合拳”—— 检测、过滤与验证,能够帮助我们拨开迷雾,精准定位真正的目标资产。
(一)第一步:精准检测泛解析存在
- 构造随机子域名验证:向 DNS 服务器请求一个绝对不存在的子域名(如randomstring.example.com ),观察解析结果。若返回与泛解析配置一致的 IP 或 CNAME 记录,则证明目标启用了泛解析。这就好比在一个未知的房间里随意喊出一个虚构的名字,如果有人回应,那就说明这个房间的 “应答规则” 存在问题,很可能开启了泛解析。例如,当向example.com 的 DNS 服务器查询madeup123.example.com 时,若得到与*.example.com 相同的解析结果,即可判定泛解析的存在。
- 抓取 DNS 响应特征:通过 Wireshark 抓取 DNS 查询包,分析响应中的 TTL 值和记录类型。泛解析记录通常具有统一的 TTL 值,且多为 A 记录或 CNAME 记录指向同一目标。TTL 值如同商品的保质期,泛解析记录由于是统一配置,其 “保质期”(TTL 值)往往相同;而记录类型则像商品的类别标签,泛解析多以 A 记录(直接指向 IP 地址)或 CNAME 记录(指向另一个域名)的形式,将大量子域名导向同一目标。
(二)第二步:智能过滤无效子域名
- 建立泛解析黑名单:获取*.example.com 的解析结果作为基准,将枚举过程中所有与该基准结果一致的子域名标记为泛解析产物并排除。例如,使用 Python 脚本调用 dnspython 库,批量对比解析结果与泛解析模板。借助 Python 强大的编程能力,我们可以编写一个高效的 “质检员” 脚本,自动检查每个子域名的解析结果,将那些与泛解析模板一致的 “赝品” 挑出并排除。
- 结合业务逻辑筛选:针对目标业务特征,剔除明显无关的子域名(如包含随机字符串、无意义组合的域名),保留符合业务命名规则的候选资产(如mail.example.com 、oa.example.com等)。每个企业或组织的业务都有其独特的命名习惯,就像不同的家族有不同的姓氏传承,我们可以依据这些习惯,筛选出真正有价值的子域名,避免在无关的子域名上浪费精力。
(三)第三步:多维度验证有效资产
- 端口扫描与服务识别:对初步筛选的子域名 IP 进行全端口扫描(推荐使用nmap -sS -p 1-65535 -Pn ),结合-sV参数识别服务版本。若泛解析指向的 IP 无开放端口或仅开放无关服务,可进一步排除。nmap 工具如同一个全面的 “安检员”,对 IP 地址的各个端口进行检查,查看是否有服务 “开门营业”,并识别这些服务的具体版本信息。如果某个 IP 的所有端口都紧闭大门,或者开放的服务与目标业务毫无关联,那它很可能不是我们要找的 “宝藏”。
- HTTP 响应特征分析:访问子域名对应的 Web 服务,检查响应状态码(200 状态码代表有效服务)、页面内容(是否包含目标业务特征)及 Cookie 信息(如 F5 LTM 负载均衡设备的 BIGipServerCookie,可解码获取真实 IP)。当我们访问一个子域名时,Web 服务的响应就像对方的 “回应”,状态码是回应的态度(200 表示友好接待),页面内容是对方展示的 “名片”,而 Cookie 信息则可能隐藏着更深层次的 “身份线索”,帮助我们判断这个子域名是否属于目标业务的有效资产。
三、实战工具与技巧:从手动到自动化
(一)手动排查:精准定位真实资产
在信息收集过程中,手动排查是一项需要耐心与技巧的工作,它能够帮助我们在复杂的网络环境中,精准定位到真实的目标资产。
- 利用历史 DNS 记录:历史 DNS 记录就像是网络世界的 “时间胶囊”,保存着域名过去的解析信息。我们可以借助诸如 dnsdb.io、微步在线威胁情报平台这类工具,来查询目标域名的历史解析记录。有些网站在早期可能未配置泛解析,或者在使用 CDN 之前,其域名直接解析到真实的 IP 地址。通过这些工具,我们如同翻阅历史档案,有可能发现那些被时间尘封的真实 IP 信息。例如,当我们对target.com进行历史 DNS 记录查询时,或许能找到其在某一时间段内,未被泛解析干扰的子域名所对应的真实 IP,为后续的渗透测试或安全评估提供关键线索。
- 突破 CDN 获取真实 IP:CDN 虽然为网站的访问加速和安全防护带来了诸多便利,但也给我们获取真实 IP 增加了难度。不过,我们仍有一些巧妙的方法可以尝试突破。
-
- 尝试 ping 主域名的裸域名:在某些情况下,网站可能只对带前缀(如www )的域名启用了 CDN,而主域名的裸域名(如target.com而非www.target.com )未启用。此时,我们通过 ping 裸域名,就有可能直接获取到网站的真实 IP 地址。这就好比在一个迷宫中,大多数路径都被设置了障碍,但有一条看似不起眼的小路却能直通目的地。
-
- 解析 HTTPS 证书:HTTPS 证书中隐藏着许多关于网站的重要信息,其中就包括可能帮助我们获取真实 IP 的线索。我们可以先通过 tool.lu/hexconvert 将证书序列号转为十进制,然后在 Fofa 中使用cert="序列号"这样的语法进行搜索。通过这种方式,我们就像拿着一把特制的钥匙,去开启隐藏在网络深处的宝藏,定位那些未部署 CDN 的子域名对应的真实 IP。例如,当我们获取到example.com的 HTTPS 证书序列号并转换后,在 Fofa 中搜索,可能会发现sub.example.com这个子域名未使用 CDN,从而得到其真实 IP。
(二)自动化工具:提升处理效率
手动排查固然重要,但在面对大规模的信息收集任务时,自动化工具能够显著提升我们的处理效率,让我们在有限的时间内获取更多有价值的信息。
- 子域名枚举工具优化:oneforall、subdomainbrute 等子域名枚举工具是信息收集的得力助手,但在面对泛解析时,它们可能会产生大量的无效结果。为了提高工具的准确性,我们可以添加泛解析过滤参数。以 subDomainBrute 为例,我们可以通过自定义 DNS 解析函数,让工具在枚举子域名的过程中,实时对比泛解析记录与枚举结果。如果发现某个子域名的解析结果与泛解析配置一致,工具就自动将其过滤掉,这样我们得到的结果就更加精准,节省了大量的分析时间。这就如同给工具安装了一个智能 “筛子”,自动将无效信息筛除,只留下真正有价值的子域名。
- 脚本化处理流程:编写 Python 脚本是实现信息收集自动化的强大手段,它可以将检测、过滤、验证等多个环节的逻辑整合在一起,形成一个高效的信息处理流水线。利用 requests 库,我们可以轻松地获取 HTTP 响应,就像向网站发送询问并得到回复一样。通过正则匹配页面特征,我们能够从响应内容中提取出关键信息,判断该子域名是否属于目标业务。结合 pandas 库对解析结果进行批量比对,我们可以像专业的数据分析师一样,快速处理大量数据,输出高置信度的有效资产列表。例如,我们编写的脚本可以批量获取多个子域名的 HTTP 响应,通过正则表达式匹配页面标题中是否包含目标公司名称等特征,再利用 pandas 库对比解析结果与已知的泛解析记录,最终筛选出真实有效的子域名资产。
四、典型案例:从误判到精准打击
(一)案例背景:某金融机构攻防演练
在一次网络安全攻防演练中,某金融机构成为了模拟攻击的目标。攻击者的首要任务是进行信息收集,以便找到目标系统的薄弱环节。在枚举子域名的过程中,攻击者发现了大量形如random1.example.com、random2.example.com的子域名,这些子域名均解析到同一 CDN IP:114.114.114.114 。凭借经验,攻击者初步判断该金融机构的域名存在泛解析情况。
为了进一步验证并获取有价值的信息,攻击者通过技术手段抓取了泛解析模板,确定了所有匹配该 IP 的子域名均为泛解析的产物。随后,攻击者决定排除这些干扰项,将重点聚焦在与金融业务相关的子域名上,如banking.example.com、payment.example.com 。
紧接着,攻击者对筛选出的业务相关子域名对应的 IP 进行端口扫描。通过细致的扫描工作,发现了banking.example.com所对应的 IP 上,有一个未授权开放的管理后台端口。利用这个漏洞,攻击者成功进入管理后台,获取了大量敏感数据,包括客户的账户信息、交易记录等。
(二)关键经验总结
- 优先验证业务相关子域名:在面对泛解析导致的大量子域名干扰时,优先针对业务相关子域名进行验证是提高效率的关键。泛解析通常是为了处理那些无实际业务意义的子域名,而保留符合业务逻辑的子域名,能够帮助我们迅速缩小检测范围,大幅减少在无效子域名上浪费的时间和精力。例如,对于一家电商企业,product.example.com、order.example.com等与商品展示、订单处理相关的子域名更有可能包含核心业务系统,是我们重点关注和检测的对象。
- 结合多源情报交叉验证:将 DNS 解析结果与其他多源情报进行交叉验证,是确保资产归属准确性的重要手段。我们可以将 DNS 解析结果与天眼查企业信息、备案系统数据进行对比分析。天眼查能提供企业的基本信息、股权结构、对外投资等,备案系统则记录了网站的备案主体、备案号等关键信息。通过对比这些信息,我们可以确认某个子域名是否确实属于目标企业,避免因误判而对错误的目标进行后续操作,同时也能发现一些隐藏在表象背后的真实资产信息。比如,当我们在 DNS 解析中发现一个看似陌生的子域名,但通过天眼查发现该子域名的注册主体与目标企业存在关联,再结合备案系统数据进一步确认,就能够准确地将其纳入目标资产范围。
五、总结:让泛解析成为信息收集的 “垫脚石”
泛解析本质是一把 “双刃剑”,合理利用其规则反而能缩小资产范围:通过检测泛解析记录,攻击者可快速排除海量无效域名,将精力集中在高价值目标;防守方则可通过监控泛解析配置,及时发现异常子域名解析行为,构建更精准的资产边界。在攻防演练中,掌握 “检测 - 过滤 - 验证” 的核心流程,搭配自动化工具与实战技巧,方能在信息收集阶段抢占先机,为后续渗透打下坚实基础。:你在信息收集中遇到过哪些 “反侦察” 机制?欢迎在评论区分享你的实战经验!
关于墨者安全墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和
DDoS攻击防御