怎样查一个网站下的所有二级网站?
比如http://baidu.com 我要知道这个域名下有那些子域名
http://alexa.chinaz.com/ 输入http://baidu.com,会查询出有用户访问的所有子域名。
通过Alexa和Google来搜索肯定不全面,考虑到每个域名都要正常解析才能被访问到,所以查询DNS记录是最好的办法。
搜索到了查询DNS记录的方法,通过域名的NS伺服器可以用"ls http://domain.com"的方式查询所有域名相关记录,但是可惜,现在的DNS伺服器大都禁用了这个功能以提高安全性。所以,除了穷举没别的办法了。
参考:- http://huaidan.org/archives/1088.html
- http://stackoverflow.com/questions/131989/how-do-i-get-a-list-of-all-subdomains-of-a-domain
本来可以使用nslookup 命令,但现在似乎大多网址都不支持·····································我查了一下,总共430个二级域名参考地址:二级域名查询,子域名查询
利用公共资源
- 搜索引擎(Google,Bing,Yahoo,Baidu等等)
- https://virustotal.com/ - 在 Search 里输入 「domain:target.com」,然后 virustotal 会提供一份子域名列表,和其他一些辅助信息以帮助你观察子域名。
- https://dnsdumpster.com - 名字说明了一切!你只需要输入目标域名,然后点击搜索按钮,完事。
- https://crt.sh/?q=%25target.com - 有些时候 SSL 中会包含很多有用的信息,使用这个网站搜索 "%target.com" 即可得到你所需要的子域名信息。
- https://censys.io - 不是非常好,但有时也会提供一些有用的信息。
- http://searchdns.netcraft.com/ - 另一种选择。
- https://www.shodan.io - 无需多言,不仅可以看到子域名信息,还会显示对应的伺服器版本及其他更多数据。
- 谷歌透明度报告 - 也是利用 SSL 证书发现子域名
利用工具爆破
国外的:
- Subbrute - 快速枚举 DNS 记录和子域名。
- dnscan - 使用 Python 写的基于字典查询 DNS 的子域名扫描器。
- Nmap - 不仅仅只是埠扫描,可以使用脚本枚举子域名。使用
--script dns-brute
脚本。 - Recon-Ng - Recon-Ng 框架是一个 Web 信息收集工具,其包含暴力枚举子域名的模块。
- DNSRecon - 一个强大的 DNS 枚举脚本。
- Fierce - 一个半轻量级的枚举子域名扫描器。
- Gobuster - Go 语言编写的枚举目录和文件的工具,最新版支持 DNS 查询。
- DNSenum - 提供多线程和递归枚举子域名。
- AltDNS - 提供基于对已发现子域名进行置换的暴力枚举方式。
国人的:
- wydomain2 - 猪猪侠的作品,好用不解释。
- 从alexa、chaxunla、ilinks、google、sitedossier、netcraft、threatcrowd、threatminer爬取结果,再与openssl证书+字典穷举结果合并,生成最终的子域名集合。
- subDomainsBrute - 曾经乌云核心白帽李劼杰的作品
- Layer 子域名挖掘机 - 法师的作品,因为是用.NET写的,所以基本只能在Win下使用,也是相当好用的。
原理
子域名发现的原理无非就是以下几种:
- 利用现有搜索引擎:
- 网页搜索引擎(如:谷歌等)
- 空间搜索引擎(如:Shodan等)
- SSL证书(如:crt.sh等),这个主要针对大站
- 进行爆破,而爆破又分为两种:
- 直接访问子域名
- 利用 DNS 请求
- 其他泄露信息:
- 如 crossdomain.xml 文件等
- 爬虫递归爬取等
- DNS域传送漏洞等
最后补一句,子域名发现很多的时候还是靠字典,如果你没有很好的子域名字典,我这里在放一个国外组织统计的最受欢迎子域名列表:bitquark-subdomains-popular
引自:
xiaixs Blog?xiaix.me以http://dnsdumpster.com为例,搜索http://baidu.com,其所有对应的子域名和ip4地址对应表示为: