信息收集之子域名收集
上一次我们分享了主域名收集的思路和方法,但除了主域名外,子域名也是域名信息收集中的一个重要环节,在当今各种防护设备满天飞的情况下,想要拿下主域名越来越难,但我们可以使用迂回策略,从子域名下手,慢慢靠近主域名以达到shell的目的。
子域名收集可以帮助我们发现目标对外开放的更多的资产,如果能找到一些被遗忘或目标不关注的子域名,将其作为突破点,可能达到事半功倍的效果。
子域名收集的方式很多,但如何尽可能全的收集到所有的子域名却不是那么容易的事儿;本次将从手工和工具两种方式为大家进行讲解。
手工操作
证书透明度收集子域
介绍
要向用户提供加密流量,网站必须先向可信的证书授权中心 (CA) 申请证书。然后,当用户尝试访问相应网站时,此证书即会被提供给浏览器以验证该网站。近年来,由于 HTTPS 证书系统存在结构性缺陷,证书以及签发证书的 CA 很容易遭到入侵和操纵。Google 的证书透明度项目旨在通过提供一个用于监测和审核 HTTPS 证书的开放式框架,来保障证书签发流程安全无虞。
收集方法
可以通过以下链接进行在线查询:
输入域名,即可查询
DNS域传送
介绍
DNS服务器分为主服务器,备份服务器,缓存服务器。
域传送是指备份服务器从主服务器上复制数据,然后更新自身的数据库,以达到数据同步的目的,这样是为了增加冗余,一旦主服务器出现问题可直接让备份服务器做好支撑工作。
而域传送漏洞则是由于DNS配置不当,导致匿名用户可以获取某个域的所有记录,造成整个网络的拓扑结构泄露给潜在的攻击者,凭借这份网络蓝图,攻击者可以节省大量的扫描时间,同时提升了目标的准确度。
检测方法
nslookup
# 查询nameserver
nslookup -type=ns knownsec.com 119.29.29.29
# 指定nameserver,列举域名信息
nslookup
server f1g1ns1.dnspod.net
ls knownsec.com
如果提示无法列出域,那就说明此域名不存在域传送漏洞。
dig
axfr
是q-type类型的一种,axfr类型是Authoritative Transfer
的缩写,指请求传送某个区域的全部记录。
我们只要欺骗dns服务器发送一个axfr
请求过去,如果该dns服务器上存在该漏洞,就会返回所有的解析记录值
# 找到NS服务器
dig knownsec.com ns
# 发送axfr请求
dig axfr @f1g1ns2.dnspod.net knownsec.com
nmap
nmap的脚本dns-zone-transfer
可以帮我们探测是否存在域传送漏洞
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=knownsec.com -p 53 -Pn f1g1ns1.dnspod.net
DNS公开数据集
介绍
Rapid7的开源数据项目收集了多种全互联网范围内的扫描数据,任何人都可下载这些数据,而本次主题中主要涉及两个数据集,分别是FDNS和RDNS,可从中获取到大量的子域名信息。
收集方法
搜索引擎
介绍
搜索引擎通过对互联网进行大量爬行后,往往收集了大量的子域名,只需要输入对应的语法,就可以从搜索引擎的数据库中查询到我们想要的内容。
收集方法
普通搜索引擎
此处以Google为例,使用减号来排除不想收集到的子域名
site:knownsec.com -www
空间搜索引擎
此处以zoomeye为例
https://www.zoomeye.org/searchResult?q=site%3A%20knownsec.com
site: knownsec.com
信息泄露
网站爬虫
很多网站的页面中,会有跳转到其他系统的功能,如OA、邮箱系统等,其中可能就包含有其他子域名相关的信息,此外部署了内容安全策略(CSP)的网站在header头Content-Security-Policy
中,也可能存在域名的信息。可使用burpsuite
或者awvs
类工具对站点进行爬取分析。
文件泄漏
很多网站有跨域策略文件crossdomain.xml
、站点地图sitemap.xml
和robots.txt
等,其中也可能存在子域名的信息。
GitHub
在GitHub中直接搜索域名关键词,除了可以发现敏感的泄漏信息外,也可以发现部分子域名信息。
第三方在线平台
介绍
通过第三方在线平台提供的一些服务,可以快速发现部分子域名。
使用各种搜索引擎搜索关键词 “在线子域名查询” 即可快速寻找到一些直接可用的在线平台
收集方法
- Find DNS Host Records | Subdomain Finder | HackerTarget.com
- DNSdumpster.com - dns recon and research, find and lookup dns records
- virustotal
- 域名查iP 域名解析 iP查询网站 iP反查域名 iP反查网站 同一iP网站 同iP网站域名iP查询
- threatminer
- Subdomain Finder
- threatbook(需要高级权限)
- 子域名查询 - 站长工具(需要登录)
子域名枚举爆破
介绍
所谓子域名枚举爆破,就是通过不断的拼接字典中的子域名前缀去枚举域名的A记录,如knownsec.com
拼接前缀test
组合成test.knownsec.com
,再对其进行验证,但是该方法一般需要解决泛解析问题。
收集方法
获取一些常见子域名前缀后,整理成字典,依次拼接主域名在浏览器进行访问验证即可,或通过nslookup
进行验证即可。
工具自动化
通过前面手工部分的讲解,可以看到大多收集步骤均为重复性的工作,那如果把所有的手工操作都自动化结合成一个工具,那么肯定能够达到事半功倍的效果。
OneForAll
解决大多传统子域名收集工具不够强大、不够友好、缺少维护和效率问题的痛点,是一款集百家之长,功能强大的全面快速子域收集终极神器。
ksubdomain
ksubdomain是一款基于无状态子域名爆破工具,支持在Windows/Linux/Mac上使用,它会很快的进行DNS爆破,在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。
Layer子域名挖掘机
Layer子域名挖掘机是一款子域名收集工具,拥有简洁的界面和简单的操作模式,支持服务接口查询和暴力枚举获取子域名信息,同时可以通过已获取的域名进行递归爆破。