1.被动子域名收集
信息泄露
- Github 、Gitee等代码仓库中,可能有相关子域名的信息
- 抓包分析获取,如一些静态资源的请求、一些APP或者小程序接口、邮件服务器等等
- 很多网站有跨域策略文件
crossdomain.xml
、站点地图sitemap.xml
和robots.txt
等,其中也可能存在子域名的信息。
搜索引擎&网络资产搜索引擎
使用Google Hacker语法:
site:*.baidu.com
使用FOFA搜索:
domain="baidu.com"
第三方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暴力破解
使用已知域/子域名的排列组合来识别新的子域名,使得字典有一定的针对性,提高准确率,常用工具:altdns
虚拟主机发现
如果你找到一个包含一个或多个网页的IP地址,属于子域名,你可以尝试通过在OSINT来源中查找IP中的域名或通过暴力破解虚拟主机域名来找到该IP中的其他子域名
可以使用HostHunter 或其他API来查找IP中的一些虚拟主机
HostHunter工具使用教程
CORS暴力破解
有时只有在_Origin
头中设置了有效的域名/子域名时,页面才会返回Access-Control-Allow-Origin
头。在这种情况下,您可以滥用这种行为来发现新的子域名
DNSSEC
即域名系统安全扩展,主要功能是通过建立信任链来保护DNS中数据的完整性和真实性。由于DNSSEC处理不存在域名的方式,可以遍历DNSSEC域并枚举该域中的所有域名
常用工具:nsec3walker
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黑名单收集完成文章来源:https://www.toymoban.com/news/detail-468097.html
而后使用域名字典进行爆破,爆破过程中根据IP黑名单进行过滤,同时比较TTL,在泛解析记录中TTL是相同的,如果TTL不相同,则不是泛解析记录文章来源地址https://www.toymoban.com/news/detail-468097.html
到了这里,关于史上最全的子域名收集姿势的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!