您的位置: 新闻资讯 > 行业动态 > 正文

子域名枚举避坑指南:精准过滤泛解析的实战技巧(图文)


来源:mozhe 2025-10-10

一、泛解析:子域名枚举的 “陷阱”


(一)泛解析原理与危害


在开始深入探讨之前,先来明确一下什么是泛解析。简单来说,泛解析是域名服务商提供的一种功能,它使用通配符(*)将所有未明确解析的子域名指向同一 IP 或 CNAME 记录。举个例子,如果你的域名是example.com,设置泛解析后,像test.example.comabc.example.com等任意未特别设置的子域名都会被解析到你指定的同一个 IP 地址。
从网站运营者的角度来看,泛解析有它的便利性。比如,当你不想因为用户输入错误的子域名而导致访问失败,泛解析就能派上用场,它能确保所有用户都能被引导到一个统一的页面,避免用户流失。但对于我们做子域名枚举的人来说,这简直就是一个巨大的 “陷阱”。
在进行子域名枚举时,我们的目标是尽可能全面且准确地找出目标域名下所有真实存在的子域名,因为这些子域名可能隐藏着各种有价值的信息,比如未授权访问的接口、存在漏洞的应用等等。而泛解析的存在,会让枚举工具返回大量看似存在,但实际上是因为泛解析而产生的无效子域名。这就好比在一堆沙子里找金子,结果沙子太多了,真正的金子反而不好找了。这些无效子域名会干扰我们正常的渗透测试流程,浪费我们大量的时间和精力去验证它们的真实性。
想象一下,你使用一款子域名枚举工具对目标域名进行扫描,原本期望能得到一份精准的子域名列表,结果因为泛解析,得到了成百上千个可能是无效的子域名。你不得不逐个去验证这些子域名是否真实存在,是否有实际的业务价值,这无疑大大增加了工作的复杂性和工作量。

(二)识别泛解析的关键特征


既然泛解析给我们的子域名枚举工作带来了这么大的困扰,那么如何才能识别出目标域名是否存在泛解析呢?这里有几个关键的特征可以帮助我们判断。
  1. 响应一致性:随机生成的不存在子域名(如 md5 (random).domain.com)解析结果高度统一,IP 地址或 CNAME 记录完全相同。这是因为泛解析会将所有未明确解析的子域名都指向同一个目标,所以无论你生成什么样的随机子域名,它们的解析结果都会是一样的。例如,你对test1.example.comtest2.example.com这两个随机生成的子域名进行解析,如果它们都指向同一个 IP 地址,那就很有可能存在泛解析。
  1. TTL 值固定:泛解析记录的 TTL(生存时间)通常为域名全局配置值,与真实子域名的个性化 TTL 不同。TTL 值决定了 DNS 记录在缓存中保存的时长。一般来说,真实存在的子域名可能会根据自身的业务需求设置不同的 TTL 值,而泛解析的 TTL 值往往是整个域名的默认配置,相对固定。比如,你查询多个子域名的 TTL 值,发现大部分随机生成的子域名 TTL 值都相同,而个别你确定是真实存在的子域名 TTL 值与之不同,这就可以作为判断泛解析的一个依据。
  1. 无具体服务响应:访问泛解析子域名时,HTTP 响应内容(如 404 页面、默认首页)缺乏目标业务特征,多为通用模板。当你访问一个真实存在的子域名时,它可能会返回与目标业务相关的页面,比如登录页面、产品展示页面等。但如果是因为泛解析而访问到的子域名,它返回的页面可能就是一个通用的 404 页面或者默认的首页,没有任何与目标业务相关的特定内容。比如,你访问一个电商网站的子域名,正常情况下应该看到商品列表或者购物车页面,但如果是泛解析的子域名,可能就只看到一个简单的 “页面不存在” 提示,而且这个提示页面的样式和布局一看就是很通用的那种,没有电商网站自身的风格和标识。

二、过滤泛解析的核心方法


既然我们已经清楚地认识到了泛解析的危害以及如何识别它,接下来就该探讨一下如何在子域名枚举过程中有效地过滤泛解析了。这里我将为大家介绍几种核心的方法,这些方法结合了被动探测和主动枚举两种策略,能够帮助我们更精准地获取真实的子域名。

(一)被动探测:建立泛解析 “黑名单”


被动探测的核心思路是通过一些间接的方式,收集可能是泛解析结果的数据,然后将这些数据加入 “黑名单”,在后续的枚举过程中直接排除。
  1. 随机子域名验证:通过生成随机字符串拼接主域名(如xys789.domain.com),发起 DNS 查询。若多次查询返回相同 IP/CNAME,则将该结果加入黑名单。工具如 OneForAll 内置此功能,自动对比随机子域名解析结果,排除泛解析干扰。示例命令:oneforall --target domain.com --random-check。在使用 OneForAll 时,它会自动生成多个随机子域名,比如在对example.com进行枚举时,它可能会生成像abc123.example.comdef456.example.com等随机子域名,然后对这些子域名进行 DNS 查询。如果这些随机子域名都解析到同一个 IP 地址或者同一个 CNAME 记录,那就说明这个解析结果很可能是由于泛解析导致的,OneForAll 就会将这个结果加入黑名单,后续再遇到相同解析结果的子域名,就会直接判定为泛解析而排除掉 。
  1. SSL 证书与历史解析分析:从 crt.sh、SecurityTrails 等平台提取目标域名关联的 SSL 证书和历史 DNS 记录,仅保留明确存在的子域名(排除未在证书或历史记录中出现的泛解析结果)。例如,通过 crt.sh 搜索域名时,筛选 DNS Name 字段中明确列出的子域名,避免包含通配符的泛解析条目。在 crt.sh 上搜索baidu.com时,我们可以看到它会列出与baidu.com相关的 SSL 证书信息,在这些信息中,DNS Name 字段会明确显示出一些子域名,如www.baidu.commap.baidu.com等。而那些包含通配符的,如 *.baidu.com这种,很可能就是泛解析的结果,我们就可以将其排除,只保留像www.baidu.com这样明确存在的子域名。同样,SecurityTrails 平台也提供了类似的功能,它不仅可以查看历史 DNS 记录,还能展示子域名的解析变化情况,帮助我们更全面地判断哪些子域名是真实存在的,哪些是泛解析产生的干扰项。

(二)主动枚举:动态过滤无效结果


主动枚举则是在枚举过程中,根据实时获取的信息来判断并过滤泛解析结果。
  1. 基于响应内容的差异化过滤:使用 ffuf、subDomainBrute 等工具时,结合 HTTP 响应特征过滤泛解析。例如,泛解析子域名的响应内容长度、关键词(如 “该页面不存在”)具有一致性,通过 -fs(响应大小过滤)、-fr(正则匹配过滤)参数排除无效结果。实战命令:ffuf -u http://FUZZ.domain.com -w subdomains.txt -fw 20(过滤词数小于 20 的泛解析响应)。当我们使用 ffuf 对目标域名进行子域名枚举时,它会根据我们提供的字典(subdomains.txt),将字典中的每个子域名替换到 URL 中的 FUZZ 位置,然后发起 HTTP 请求。如果很多子域名返回的响应内容长度都非常接近,而且都包含类似 “该页面不存在” 这样的通用关键词,那就很有可能是泛解析导致的无效结果。这时我们就可以使用 -fs 参数来过滤响应大小,比如设置 -fs 100,表示过滤掉响应大小小于 100 字节的结果;或者使用 -fr 参数结合正则表达式来过滤,比如 -fr “该页面不存在”,这样就可以把包含 “该页面不存在” 关键词的响应结果过滤掉,从而排除泛解析的干扰。
  1. DNS 记录深度比对:对比子域名解析结果与主域名的 CNAME/A 记录:若子域名解析后跳转到主域名的泛解析 IP/CNAME(如 *.domain.com指向cdn.domain.com),则判定为泛解析。工具如 Sublist3r 支持递归解析 CNAME 链,结合人工验证可精准排除此类记录。假设我们对example.com进行子域名枚举,发现某个子域名test.example.com解析后的 CNAME 记录指向了cdn.example.com,而cdn.example.com正是example.com设置泛解析时指向的地址,那么就可以判定test.example.com是由于泛解析产生的无效子域名。Sublist3r 在枚举子域名时,会递归解析 CNAME 链,把整个解析过程中的每一步都展示出来,这样我们就可以清晰地看到子域名的解析路径,从而判断它是否是泛解析结果。不过,为了确保准确性,最好还是结合人工验证,仔细检查解析结果,避免误判。

三、主流工具的过滤策略


在实际的子域名枚举工作中,我们有许多工具可以使用,而这些工具针对泛解析过滤都有各自独特的策略 。下面我将为大家详细介绍一些综合型枚举工具和轻量型工具与脚本的过滤策略,帮助大家更好地选择和使用这些工具。

(一)综合型枚举工具

  1. OneForAll 策略:OneForAll 是一款功能非常强大的子域名枚举工具,它在过滤泛解析方面采用了一种较为全面的策略。首先,它会通过生成随机子域名的方式来建立泛解析 IP/TTL 黑名单。具体来说,它会随机生成多个子域名,比如像一串随机的十六进制字符加上目标域名,如 “abc123456.example.com”,然后对这些随机子域名进行 DNS 查询。如果多个随机子域名都解析到同一个 IP 地址,并且它们的 TTL 值也相同,那么 OneForAll 就会将这个 IP 地址和对应的 TTL 值加入到黑名单中。这是因为在泛解析的情况下,这些随机生成的不存在子域名往往会被解析到同一个目标,所以它们的解析结果会呈现出高度的一致性。
在完成黑名单的建立之后,OneForAll 会对枚举结果进行匹配过滤。当它从各种数据源获取到子域名解析结果时,会将这些结果与之前建立的黑名单进行对比。如果某个子域名的解析 IP 和 TTL 值与黑名单中的记录相匹配,那么这个子域名就很有可能是由于泛解析产生的无效子域名,会被直接过滤掉。
OneForAll 还支持证书透明度日志(CT Log)数据校验。它会从 CT Log 中提取与目标域名相关的证书信息,这些证书信息中包含了真实存在的子域名。通过对比从 CT Log 中获取的子域名和枚举结果,OneForAll 可以进一步确认哪些子域名是真实有效的,从而排除那些不在证书信息中的泛解析子域名。例如,在对某电商网站进行子域名枚举时,OneForAll 通过 CT Log 数据校验,发现很多通过普通枚举得到的子域名并没有在证书信息中出现,这些子域名很大概率就是泛解析产生的干扰项,通过这种方式,OneForAll 成功地过滤掉了大量无效子域名,为后续的渗透测试工作提供了更精准的子域名列表 。
OneForAll 的优势在于它的自动化程度非常高。用户只需要简单地配置目标域名和一些基本参数,它就可以自动完成从随机子域名生成、黑名单建立到枚举结果过滤的一系列操作,大大节省了用户的时间和精力。而且,它内置了多种过滤规则,能够适应不同场景下的子域名枚举需求。无论是对小型企业网站还是大型互联网公司的域名进行枚举,OneForAll 都能发挥出很好的过滤效果,帮助用户快速准确地获取真实存在的子域名。
2. Amass 策略:Amass 也是一款广受欢迎的子域名枚举工具,它在过滤泛解析方面结合了被动 DNS 数据与主动探测两种方式。Amass 会收集来自多个被动 DNS 数据源的数据,比如 PassiveTotal、VirusTotal 等。这些数据源会记录大量的域名解析历史信息,通过分析这些历史数据,Amass 可以获取到一些已经被解析过的子域名信息。在获取到这些子域名后,Amass 会对它们进行进一步的分析和验证,判断它们是否是由于泛解析产生的。
在主动探测方面,Amass 通过 --no-follow-cnames 参数来控制 CNAME 解析深度,避免陷入泛解析循环。当 Amass 对一个子域名进行解析时,如果遇到了 CNAME 记录,它会根据 --no-follow-cnames 参数的设置来决定是否继续跟随 CNAME 记录进行深入解析。如果设置了该参数,Amass 只会解析到第一层 CNAME 记录,而不会继续深入,这样就可以有效地避免因为泛解析而导致的无限递归解析。比如,假设目标域名example.com存在泛解析,并且设置了 CNAME 记录将所有子域名指向cdn.example.com,而cdn.example.com又设置了 CNAME 记录指向另一个地址,如果没有控制 CNAME 解析深度,Amass 可能会在这些 CNAME 记录之间不断循环解析,陷入死循环。而通过设置 --no-follow-cnames 参数,Amass 就可以避免这种情况的发生,只获取到第一层的解析结果,然后根据其他条件来判断这个子域名是否是泛解析产生的。
Amass 的另一个优势是它支持自定义解析器组。用户可以根据不同的 DNS 服务商或者自己的需求,配置不同的解析器组。这样,在进行子域名枚举时,Amass 可以针对不同的 DNS 服务商调整探测策略,提高枚举的准确性和效率。比如,对于一些常见的 DNS 服务商,用户可以配置更适合它们的解析器参数,使得 Amass 在与这些 DNS 服务商进行交互时,能够更准确地获取到子域名解析信息,同时也能够更好地识别和过滤掉泛解析产生的无效结果。

(二)轻量型工具与脚本

  1. ffuf 核心参数:ffuf 是一款轻量级的模糊测试工具,虽然它的功能相对综合型枚举工具来说没有那么全面,但在子域名枚举和过滤泛解析方面也有自己的独特之处。在使用 ffuf 进行子域名枚举时,我们可以利用一些核心参数来过滤泛解析产生的无效 HTTP 响应。
我们可以利用 - H "Host: FUZZ.domain.com" 这个参数来显式设置 Host 头。这样做的目的是让 ffuf 在发送 HTTP 请求时,将 FUZZ 替换为字典中的子域名,从而模拟真实的子域名访问。通过这种方式,我们可以获取到每个子域名对应的 HTTP 响应,然后根据响应的内容来判断它是否是由于泛解析产生的。
结合 - mc 200 参数,我们可以仅保留 HTTP 状态码为 200 的响应。在正常情况下,真实存在且提供正常服务的子域名,其 HTTP 响应状态码往往是 200。而泛解析产生的子域名,很多时候返回的状态码可能不是 200,比如可能是 404(页面不存在)或者其他错误状态码。通过设置 - mc 200,我们可以过滤掉那些状态码不是 200 的响应,从而排除掉大部分泛解析产生的无效子域名。
-fw 参数可以用于响应词数过滤。泛解析子域名的响应内容往往比较简单,可能只是一些通用的提示信息,比如 “该页面不存在” 等,其响应词数相对较少。而真实存在的子域名,其响应内容可能包含更多的信息,词数也会更多。通过设置 - fw 参数,我们可以过滤掉响应词数小于某个阈值的响应,进一步排除泛解析产生的无效结果。例如,我们可以使用命令 “ffuf -u http://FUZZ.domain.com -w subdomains.txt -fw 20”,这个命令表示使用 ffuf 对http://FUZZ.domain.com进行子域名枚举,其中 FUZZ 会被 subdomains.txt 字典中的子域名替换,-fw 20 表示过滤掉响应词数小于 20 的响应。这样,我们就可以过滤掉很多由于泛解析而产生的简单、无实际服务的 HTTP 响应,只保留那些可能是真实存在子域名的响应结果。这种方式非常适合快速验证子域名的存活状态,能够在短时间内过滤掉大量无实际服务的泛解析条目,提高子域名枚举的效率。
2. 自定义 Python 脚本实现逻辑:除了使用现成的工具,我们还可以通过编写自定义 Python 脚本的方式来实现子域名枚举和泛解析过滤。这里我们主要利用 dnspython 库来解析子域名,然后通过对比解析结果与泛解析黑名单(IP/CNAME/TTL)来输出差异化结果。
首先,我们需要安装 dnspython 库,可以使用 pip install dnspython 命令进行安装。安装完成后,我们可以编写如下代码片段:

 
import dns.resolver
def check_subdomain(subdomain, blacklist):
try:
answers = dns.resolver.query(subdomain, 'A')
for rdata in answers:
ip = rdata.address
# 假设blacklist是一个包含泛解析IP、CNAME、TTL的列表
if ip in blacklist:
return False
# 这里还可以进一步对比CNAME和TTL等信息,暂未展开详细代码
return True
except dns.resolver.NXDOMAIN:
return False
# 假设已经建立好泛解析黑名单
blacklist = ['192.168.1.1', 'cdn.example.com']
subdomains = ['www.example.com', 'test.example.com', 'random.example.com']
for sub in subdomains:
if check_subdomain(sub, blacklist):
print(f"{sub} 可能是真实存在的子域名")
else:
print(f"{sub} 可能是泛解析产生的无效子域名")
在这段代码中,我们定义了一个 check_subdomain 函数,它接受一个子域名和泛解析黑名单作为参数。函数内部使用 dns.resolver.query 方法来查询子域名的 A 记录,获取其解析后的 IP 地址。然后,将获取到的 IP 地址与黑名单中的 IP 进行对比,如果 IP 在黑名单中,说明这个子域名可能是由于泛解析产生的,返回 False;如果 IP 不在黑名单中,且没有发生 NXDOMAIN(域名不存在)错误,则返回 True,表示这个子域名可能是真实存在的。最后,我们遍历子域名列表,调用 check_subdomain 函数对每个子域名进行检查,并输出相应的结果。通过这种方式,我们可以根据自己的需求灵活地定制子域名枚举和泛解析过滤的逻辑,更好地满足不同场景下的渗透测试需求 。

四、实战案例:从混乱到精准的枚举流程

(一)案例背景


为了让大家更直观地理解前面所讲的方法和策略在实际中的应用,下面我将通过一个具体的实战案例来进行详细的演示。在这个案例中,我们的目标域名是example.com ,这是一个大型企业的官方域名,旗下拥有众多子域名,涵盖了各种业务系统、测试环境以及内部办公平台等。
经过初步的探测,我们发现该域名启用了泛解析功能,并且所有通过泛解析的子域名都指向了一个 CDN 节点 IP,这样做的目的可能是为了提高网站的访问速度和稳定性,通过 CDN 节点将内容缓存到离用户更近的位置,从而加快响应时间。然而,对于我们进行子域名枚举来说,这无疑增加了很大的难度。
而真实的子域名则被解析至内部服务器,这些内部服务器可能承载着敏感的业务数据、未公开的 API 接口或者存在安全漏洞的应用程序,这正是我们需要重点关注和挖掘的目标。如果不能有效地过滤掉泛解析产生的干扰项,我们很可能会在大量无效的子域名中迷失方向,无法准确地找到那些真正有价值的目标 。

(二)操作步骤

  1. 建立泛解析黑名单:首先,我们需要建立泛解析黑名单。通过生成一个随机子域名test123.example.com,使用 dig 或 nslookup 等工具进行 DNS 查询。解析后得到 IP1.1.1.1,并且发现其 TTL 值为 300。将这个 IP 地址和 TTL 值加入黑名单。这是因为在泛解析的情况下,这些随机生成的子域名往往会被解析到同一个目标,并且它们的 TTL 值也会保持一致。通过不断地生成类似的随机子域名并进行查询,我们可以逐步完善这个黑名单,为后续的枚举结果过滤提供依据。
  1. 工具枚举与过滤:接下来,使用强大的子域名枚举工具 OneForAll 对目标域名example.com进行扫描。在扫描过程中,配置 --filter-ttl 300 参数,这个参数的作用是排除 TTL 为 300 的泛解析记录。OneForAll 会从各种数据源获取子域名解析结果,然后根据我们设置的参数和之前建立的黑名单进行匹配过滤。在最终的扫描结果中,我们发现admin.example.com这个子域名被保留了下来,它的 TTL 值为 600,IP 地址为 10.0.0.1。这说明它很可能是一个真实存在的子域名,而不是由于泛解析产生的无效结果。通过这种方式,OneForAll 成功地过滤掉了大量泛解析产生的子域名条目,大大减少了我们需要进一步验证的范围 。
  1. HTTP 响应验证:虽然通过前面的步骤已经过滤掉了大部分泛解析结果,但为了确保万无一失,我们还需要对保留下来的子域名进行 HTTP 响应验证。对admin.example.com发起 HTTP 请求,通过分析其响应内容来确认真实性。在这个例子中,admin.example.com返回了一个登录页面,从页面的设计风格、功能布局以及相关的提示信息等方面来看,都与目标企业的业务紧密相关,这进一步证明了它是一个真实存在且具有重要价值的子域名。通过这种方式,我们可以彻底排除 DNS 层面未过滤的异常结果,确保最终获取的子域名列表的准确性 。

五、注意事项与效率优化

(一)避免过度过滤


在进行子域名枚举时,过滤泛解析是非常重要的一步,但我们也要注意避免过度过滤。有时候,真实的子域名可能会与泛解析共享同一 IP 地址。这是因为很多网站为了提高访问速度和稳定性,会使用 CDN(内容分发网络)服务,主站和子站都通过 CDN 节点来提供内容,所以它们的解析结果可能会指向同一个 CDN 节点的 IP。
例如,某大型电商网站的主站www.example.com和一些子站如product.example.comcart.example.com等都使用了 CDN 服务,这些子域名在 DNS 解析时都指向了同一个 CDN 节点的 IP 地址。如果我们仅仅根据 IP 地址相同就将这些子域名判定为泛解析结果而过滤掉,就会错过很多有价值的信息。
为了避免这种情况,我们需要结合 HTTP 响应内容和服务指纹来综合判断。HTTP 响应内容可以告诉我们很多关于目标子域名的信息。比如,我们访问一个子域名,如果它返回的是一个与电商业务相关的页面,有商品展示、购物车功能等,那么很明显它是一个真实存在且有实际业务的子域名,即使它的 IP 与泛解析的 IP 相同,也不能将其过滤掉。
服务指纹也是一个重要的判断依据。我们可以通过扫描子域名开放的端口情况、识别运行的中间件版本等方式来获取服务指纹。不同的服务通常会在特定的端口上提供服务,比如 HTTP 服务常用 80 端口,HTTPS 服务常用 443 端口。如果我们发现一个子域名开放了 80 或 443 端口,并且通过指纹识别发现它运行着特定的 Web 服务器软件,如 Nginx 或 Apache,这也表明它很可能是一个真实的子域名。

(二)动态更新黑名单


泛解析的配置并不是一成不变的,它可能会随着时间的推移而发生变更。比如,网站更换了 CDN 服务商,或者 CDN 节点的 IP 地址发生了变化,这些都会导致泛解析的配置改变。如果我们在子域名枚举过程中,仅仅依赖于一开始建立的泛解析黑名单,就可能会出现误判的情况。
为了确保过滤规则的时效性,我们建议在枚举过程中多次插入随机子域名进行验证。就像我们在前面建立泛解析黑名单时所做的那样,通过生成随机子域名并查询其解析结果,来判断当前的泛解析配置是否发生了变化。如果发现随机子域名的解析结果与之前记录的泛解析结果不一致,就说明泛解析配置可能已经改变,我们需要及时更新黑名单。
例如,我们在对某目标域名进行子域名枚举时,一开始通过随机子域名验证,将 IP 地址 1.1.1.1 和相关的解析信息加入了黑名单。但在后续的枚举过程中,我们再次插入随机子域名进行验证时,发现这些随机子域名解析到了另一个 IP 地址 2.2.2.2,这就表明泛解析配置发生了变更,我们需要将 2.2.2.2 及其相关解析信息加入黑名单,同时检查之前根据 1.1.1.1 过滤掉的子域名,看是否存在误判的情况。
通过这种动态更新黑名单的方式,我们可以保证在整个子域名枚举过程中,过滤规则始终是准确有效的,避免因为泛解析配置的变更而导致遗漏真实的子域名或者误判正常子域名为泛解析结果。

(三)工具链协同


在进行子域名枚举时,将不同的工具进行协同使用,可以大大提升我们获取结果的准确性。我们可以将枚举工具与资产测绘平台结合起来。资产测绘平台能够帮助我们全面了解目标网络的资产情况,包括 IP 地址、域名、开放的端口以及运行的服务等信息。
比如微步在线的 OneDNS 和知道创宇的 ZoomEye 等都是比较知名的资产测绘平台。以 OneDNS 为例,它可以对目标网络进行全面的扫描和分析,收集大量的网络资产信息。我们在使用子域名枚举工具获取到子域名列表后,可以将这些子域名与 OneDNS 中记录的 IP 地址和服务信息进行交叉验证。通过这种 “子域名 - IP - 服务” 三元组交叉验证的方式,我们可以进一步确认子域名的真实性和有效性。
具体来说,我们可以对枚举结果中的 IP 进行端口扫描。如果一个子域名解析到的 IP 地址开放了 80、443 等常见的 Web 服务端口,那么这个子域名很可能是真实存在且提供 Web 服务的。相反,如果一个子域名解析到的 IP 地址没有开放任何常见端口,或者开放的端口对应的服务与目标业务毫无关联,那么这个子域名就有可能是由于泛解析产生的无效结果。
假设我们使用 OneForAll 对某目标域名进行子域名枚举,得到了一个子域名列表。然后我们将这些子域名对应的 IP 地址导入到 OneDNS 中进行查询,发现其中一个子域名test.example.com解析到的 IP 地址在 OneDNS 中被标记为属于一个 CDN 服务提供商,并且该 IP 地址只开放了一些 CDN 相关的端口,而没有开放与目标业务相关的端口。通过这种交叉验证,我们就可以判断test.example.com很可能是由于泛解析产生的无效子域名,从而将其从结果中排除。
通过工具链的协同使用,我们可以充分利用不同工具的优势,从多个角度对枚举结果进行验证和分析,提高子域名枚举的准确性和可靠性,为后续的渗透测试和安全评估工作提供更有价值的信息 。

结语


过滤泛解析是子域名枚举的关键环节,需结合被动信息收集、主动探测验证与工具特性定制策略。通过建立动态黑名单、分析响应差异化特征、合理配置工具参数,可显著提升枚举质量,为后续渗透测试奠定扎实基础。记住,精准的信息收集不是盲目追求数量,而是在噪声中筛选出真正有价值的攻击面。

关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和DDoS攻击防御

热门文章

X

7x24 小时

免费技术支持

15625276999


-->