概述
实战攻防演练过程中,必不可少的动作就是搜集目标的资产信息,能否快速、精准的探测并梳理目标对象的边界资产,就成了攻击手突破边界、遨游内网乃至直捣黄龙拿下标靶成败的关键。同样,对于防守方来说,互联网资产的梳理也是打造铜墙铁壁防护的关键步骤。
域名及子域名的信息,是企业资产的重要组成部分,本文通过简单分析常用子域名搜集工具,来介绍相关的技术。
子域名搜集常用工具
- oneforall:攻防人员必备神器,集成众多搜索引擎以及互联网平台接口,支持网络空间测绘平台(如fofa/zoomeye等),除常规的爆破和域传送漏洞利用等常规搜集子域名技术外,还支持利用DNS查询收集子域、子域置换和接管技术获取子域名信息,功能强大,搜集信息全面,工具采用Python语言开发,可读性好,是一个非常优秀的学习研究攻防技术原理的对象。
- ksubdomain:天下武功唯快不破,ksubdomain是一款基于无状态的子域名爆破工具,支持在Windows/Linux/Mac上进行快速的DNS爆破,拥有重发机制不用担心漏包。kubdomain以不可思议的速度快速完成子域名爆破任务,根据官方测算速度,使用ksubdomain内置的字典跑一遍baidu.com域名,大概10w字典在2分钟左右跑完,并找到1200多子域名。
子域名搜集典型技术
通过对常用的子域名搜集工具实现原理分析,oneforall和ksubdomain两个神器在各自的技术领域均达到了巅峰,根据其实现的子域名信息获取机制,大概分为如下几个方面:
1. 互联网平台获取子域名信息
- 互联网搜索引擎:接入baidu、bing、google、sougou、so、yahoo、yandex等搜索引擎,根据其搜索语法检索目标单位主域名,解析获取其子域名;
- 网络空间测绘平台:通常接入网络空间测绘平台需要用户购买会员账号,把api key填充到配置文件中,国内知名的网络空间测绘平台有fofa、hunter、quake、zoomeye等平台;
- 威胁情报平台:通常情况下,威胁情报平台也会提供子域名获取的接口,如virustotal(免费)、NTI或者threatbook等,可以作为补充信息源。
- crt.sh:利用证书透明性收集子域名的平台, 其原理是所有SSL/TLS证书都会被记录并公开访问,输入目标域名即可枚举出对应的子域名,类似的还有certspotter、myssl、censys等。
2. DNS查询:
- DNS枚举:通过常见的SRV记录并做查询来收集子域srv,以及通过查询域名的DNS记录中的MX,NS,SOA,TXT记录来收集子域;
- 利用域传送漏洞:DNS域传送(DNS zone transfer)指的是一台备用域名服务器使用来自主域名服务器的数据刷新自己的域数据库,目的是为了做冗余备份,防止主域名服务器出现故障时 dns 解析不可用。当主服务器开启DNS域传送同时又对来请求的备用服务器未作访问控制和身份验证便可以利用此漏洞获取某个域的所有记录。
- DNSSEC区域枚举:nsec3map工具主要是利用此项技术实现子域名搜集,可基于DNSSEC或记录链枚举DNS区域条目的工具。 如果该区域启用了DNSSEC,则可用于以最少的查询量快速发现DNS区域中的主机。
3. Web应用站点配置:主要是利用Web应用程序配置策略或者默认文件中指定的域名信息,来获取目标的子域名信息,如:跨域策略文件、HTTPS证书配置、内容安全策略、robots文件以及sitemap文件等。
4. 子域名爆破:根据内置字典发送网络请求包,根据响应特征判断对应的子域名存在与否。根据发送和接收网络请求的方式不同,又分为有状态和无状态两种:
- 有状态机制:完整的TCP会话每个过程都有不同的状态。正是这些状态保证了可靠,但可靠的同时带来的是资源占用,有状态机制基于系统socket发包,不仅会占用系统网络,发包速率太快的话也会导致系统网络阻塞。
- 无状态机制:基于无状态的DNS爆破,使用pcap发包和接收UDP数据包,直接将数据包发送至网卡,不经过系统,只需要发送一个udp包,等待DNS服务器的应答即可,不需要顾虑会不会导致系统网络阻塞,爆破速度大大提升。再加一个重放机制,解决网络抖动带来的探测不全面问题。
EZ 2.0子域名搜集模块
感谢M-SEC社区共创成员的群策群力,由buding、nightmare、Axax操刀,历时2个月的时间研究子域名搜集技术最佳实践,在EZ 1.0子域名搜集能力的基础上大刀阔斧的改造,完成了模块的重构和封装。新的模块实现和集成了以上所介绍的技术,具备如下特性:
- 支持有状态和无状态两种爆破机制,企业内网工作环境下可探测内网子域名,互联网子域名探测就更不在话下。
- 适配常见常用的资产测绘平台接口,将您的key配置进去即可。
- 多源资产聚合,默认集成搜索引擎和其他免费开放获取子域名资产的API,被动发现子域名保证无遗漏;
- 自研资产相似度匹配算法,多维度验证资产唯一性。
[https://paper.seebug.org/1325/](https://paper.seebug.org/1325/)
https://github.com/shmilylty/OneForAll
https://msec.nsfocus.com/ezdocs/docs/EZAdvanced/ez-domain
原文始发于微信公众号(MSEC运营号):实战攻防—子域名搜集技术简析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论