史上最全的子域名收集姿势

文章详细介绍了被动和主动子域名收集方法,包括信息泄露、搜索引擎查询、DNS服务、证书透明日志等,以及主动枚举、置换扫描、DNSSEC等技术。同时,针对子域名爆破中的泛解析问题,提出了IP黑名单的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.被动子域名收集

信息泄露

  1. Github 、Gitee等代码仓库中,可能有相关子域名的信息
  2. 抓包分析获取,如一些静态资源的请求、一些APP或者小程序接口、邮件服务器等等
  3. 很多网站有跨域策略文件crossdomain.xml、站点地图sitemap.xmlrobots.txt等,其中也可能存在子域名的信息。

搜索引擎&网络资产搜索引擎

使用Google Hacker语法:

site:*.baidu.com

在这里插入图片描述

使用FOFA搜索:

domain="baidu.com"

在这里插入图片描述

JLDC 免费 API:

https://jldc.me/anubis/subdomains/baidu.com

在这里插入图片描述

securitytrails查询:

在这里插入图片描述

projectdiscovery查询:

在这里插入图片描述

第三方DNS服务

Virus Total

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

在这里插入图片描述

证书透明

证书透明(CT)是证书颁发机构(CA)必须将其发布的每个SSL/TLS证书发布到公共日志的项目。SSL/TLS证书通常包含域名,子域名和电子邮件地址等信息

常用证书透明查询网站:

censys:https://censys.io/certificates
crtsh:https://crt.sh/
spyse:https://spyse.com/search/certificate
certspotter:https://sslmate.com/certspotter/api/
entrust:https://www.entrust.com/ct-search/
facebook:https://developers.facebook.com/tools/ct
google:https://developers.facebook.com/tools/ct

在这里插入图片描述


2.主动子域名收集

字典枚举

利用常见的子域名字典,进行暴力攻击

例如使用Layer子域名挖掘机:

在这里插入图片描述

WebRobot中也有类似的枚举爆破功能:

在这里插入图片描述

常见的子域名字典:

https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
https://github.com/pentester-io/commonspeak
https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip

DNS 暴力破解

可以通过暴力破解 DNS 服务器来查找新的子域名,常见的子域名字典见上,还需要一些准备好的 DNS 解析器的 IP。

可以从nameservers-all.txt下载解析器,并使用dnsvalidator进行过滤,或者可以直接使用resolvers-trusted.txt

自动化工具:massdns

# 将 subdomains.txt 文件中的每一行文本都追加上 .domain.com 后缀,并将结果保存到 bf-subdomains.txt 文件中
sed 's/$/.tesla.com/' subdomains.txt > bf-subdomains.txt
# 使用 massdns 工具来查询 bf-subdomains.txt 文件中的域名,并将结果保存到 /tmp/results.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
# 从 /tmp/results.txt 文件中筛选出与 tesla.com 相关的 A 记录,并显示相关结果
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt

置换扫描/第二轮DNS暴力破解

使用已知域/子域名的排列组合来识别新的子域名,使得字典有一定的针对性,提高准确率,常用工具:altdns

虚拟主机发现

找到某个子域名的IP地址,可以尝试通过在OSINT来源中查找IP中的域名或通过暴力破解虚拟主机域名来找到该IP中的其他子域名

可以使用HostHunter 或其他API来查找IP中的一些虚拟主机

HostHunter工具使用教程

CORS暴力破解

有时只有在_Origin头中设置了有效的域名/子域名时,页面才会返回Access-Control-Allow-Origin头。在这种情况下,您可以利用这种行为来发现新的子域名

ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body

DNS缓存

DNS服务器除了解析私有域名外,还会用递归方式,向公网的DNS服务器请求解析第三方域名。为了提升性能,通常会使用缓存记录,记录解析过的域名,尤其是第三方域名

域名缓存侦测技术就是向这些服务器发送域名解析请求,但要求不使用递归模式。这样DNS只能解析私有域名和缓存中保存的域名。借助该项技术,渗透测试人员就知道哪些域名是否被过请求过

dnsrecon -a -d baidu.com

在这里插入图片描述

借助域传送漏洞

域传送是指备份服务器从主服务器上复制数据,然后更新自身的数据库,以达到数据同步的目的

而域传送漏洞则是由于DNS配置不当,导致匿名用户可以获取某个域的所有记录,造成整个网络的拓扑结构泄露给潜在的攻击者

在Linux下,可以使用dig命令来发送DNS请求,只需要发送axfr类型的DNS请求,如果存在该漏洞,则会返回所有解析记录

首先,找到DNS服务器:(f1g1ns2.dnspod.net

在这里插入图片描述

发送axfr请求:

以下表明不存在域传送漏洞:

在这里插入图片描述

nmap的脚本dns-zone-transfer可以帮我们探测是否存在域传送漏洞

在这里插入图片描述


3.子域名爆破中解决泛解析的方式

泛域名解析是一种特殊的域名解析方式。它使用通配符形式,设置域名解析

它可以将没有明确设置的子域名一律解析到一个IP地址上。这样,即使用户输入错误的子域名,也可以访问到域名持有者指定的IP地址。但是信息收集中,这会造成请求的所有子域名都能访问的假象,从而收集到一堆无效的子域名

解决方案:

目前最常见的解决方式是IP黑名单的方式,首先访问一个随机的并不存在的域,通过返回的结果判断是否存在泛解析,确定存在泛解析后,不断的生成随机域名并发送请求,将每次返回的IP和TTL记录下来,直到大部分的IP出现次数都大于两次,则IP黑名单收集完成

而后使用域名字典进行爆破,爆破过程中根据IP黑名单进行过滤,同时比较TTL,在泛解析记录中TTL是相同的,如果TTL不相同,则不是泛解析记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世界尽头与你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值