一文学会各种子域名收集方法
1398133550745333 渗透测试 375浏览 · 2025-03-10 04:55

一文学会各种子域名收集方法

前言

**文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担**



一般使用 example.com 替代

证书透明

证书透明度(Certificate Transparency, CT)是 Google 提出的一个安全机制,主要用于监控和审核 SSL/TLS 证书的颁发。它的核心原理是所有受信任的证书颁发机构(CA)在颁发证书时,必须将证书信息提交到公开的 CT 日志中,以便于审计和监控。

当企业或个人申请 SSL/TLS 证书时,证书颁发机构(CA)会验证其域名,并将相关信息提交到 CT 日志服务器。这些信息通常包括:

证书的主体域名(Common Name, CN) 证书的备用名称(Subject Alternative Name, SAN)👉 这里可能包含子域名 证书的颁发者(CA)信息 证书的有效期等 这个是所有的人都可以去访问的

由于许多证书的 SAN 字段会包含子域名,我们可以从 CT 日志中提取某个主域名下的子域

PHP
复制代码
常见的方法

这里我们使用 crt.sh 网站



参考https://blog.csdn.net/qq_62793621/article/details/139217861

域传送漏洞

域传送(Zone Transfer)是 DNS(域名系统)的一项功能,旨在让主 DNS 服务器与辅助 DNS 服务器之间同步域信息。然而,如果 DNS 服务器配置不当,允许未经授权的客户端执行域传送操作,攻击者可能利用这一漏洞获取目标域的完整 DNS 记录,包括所有子域名。

常见的验证方法

将返回目标域的所有权威名称服务器(NS 记录)

当然一般是没有,如果有什么继续

尝试开始域传送

如果不存在这个漏洞

当然还有 dig

还有我们的 namp 工具

检查跨域策略文件

跨域策略文件(crossdomain.xml 和 clientaccesspolicy.xml)通常用于管理 Flash 和 Silverlight 的跨域访问权限,它们通常位于网站根目录下(例如 https://example.com/crossdomain.xml)。通过获取这些文件,可以找到允许跨域访问的域名,从而用于子域名收集。

一般内容如下

其中就有我们的域名

当然我们可以写一个小脚本来检测

这个是比较少见的,因为需要能够访问到这个文件

SAN

SAN(主题备用名称)是 HTTPS 证书中的一个扩展字段,允许一个证书覆盖多个域名或子域名,因此可以通过解析 HTTPS 证书的 SAN 字段来发现某个站点的子域名。

或者我们还是使用我们的 https://crt.sh/

会得到非常多的子域名



Sitemap 文件

Sitemap(站点地图)是一种 XML 或 TXT 格式的文件,网站会在其中列出其所有页面的 URL

一般

文件可能如下

DNSSEC

DNSSEC(Domain Name System Security Extensions)是对 DNS(域名系统)的一种安全扩展,主要目的是防止 DNS 劫持和篡改,确保 DNS 响应的完整性和真实性。

DNSSEC 机制中,NSEC 和 NSEC3 记录可能会暴露子域名,从而被用于子域名收集。攻击者可以利用 NSEC/NSEC3 记录枚举来遍历目标域名的所有子域。

NSEC 记录用于防止 DNS 缓存投毒攻击,它指向下一个已存在的域名。例如:

这意味着 sub1.example.com 之后存在 sub2.example.com,可以利用该特性遍历所有子域。

由于 NSEC 直接暴露子域,NSEC3 通过哈希(SHA-1) 方式存储子域名

但攻击者仍可暴力破解哈希恢复真实子域名。

如果我们的 example.com 存在 NSEC 记录

可能得到

然后继续向下查询

当然现在已经有许多工具了

DNS 缓存

DNS Cache Snooping(DNS 缓存侦测)是一种信息收集技术,利用 DNS 服务器的缓存机制,检测某个 DNS 服务器是否存储了特定域名的解析记录。

本意是为了提高效率

DNS 服务器为了提高解析效率,通常会缓存解析过的域名记录。

如果查询某个域名时,该 DNS 服务器立即返回结果,而不进行递归查询,则说明该域名已经被解析过,说明有人(或某个系统)曾经访问过该域名。

DNS Cache Snooping 利用了非递归查询的特点:

发送一个非递归查询请求(nslookup -norecurse)。 如果 DNS 服务器返回了 IP 地址,说明该域名在缓存中,表示该域名曾被请求过。 如果返回 "No records found",则说明 DNS 服务器未缓存该域名。

这个虽然不是直接收集子域名的方法,但是一般访问的地方有很大的概率都是我们的子域

可以爆破

DNS 服务

比如我们的 VirusTotal,运行 DNS 复制功能,通过存储用户访问 URL 时执行的 DNS 解析来构建数据库。



比如我们的 baidu



有非常多的子域名

非常多的 DNS 工具都可以使用

子域名爆破

这个就不说了,这个就是不断替换

各种空间测绘引擎

可以看到 oneforall 的

利用搜索引擎发现子域(目前有 18 个模块:ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api)

集成了非常多的搜索引擎

比如我们的 fofa,如何搜集子域名呢

一个脚本如下

参考https://www.freebuf.com/vuls/328801.html

搜索引擎

比如谷歌,我们可以使用谷歌的语法



需要一个 API,不然特别容易被谷歌反爬

利用已经有的资源

当然我们可以利用已经收集好的数据或者别人分享的资源

现在好多知识星球都有了

0 条评论
某人
表情
可输入 255