比如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下使用,也是相当好用的。

原理

子域名发现的原理无非就是以下几种:

  1. 利用现有搜索引擎:
  • 网页搜索引擎(如:谷歌等)
  • 空间搜索引擎(如:Shodan等)
  • SSL证书(如:crt.sh等),这个主要针对大站
  • 进行爆破,而爆破又分为两种:
  • 直接访问子域名
  • 利用 DNS 请求
  • 其他泄露信息:
  • 如 crossdomain.xml 文件等
  • 爬虫递归爬取等
  • DNS域传送漏洞等

最后补一句,子域名发现很多的时候还是靠字典,如果你没有很好的子域名字典,我这里在放一个国外组织统计的最受欢迎子域名列表:bitquark-subdomains-popular

引自:

xiaixs Blog?

xiaix.me图标

以http://dnsdumpster.com为例,搜索http://baidu.com,其所有对应的子域名和ip4地址对应表示为:

实在是在复杂了。

知乎为例子: http://dbsdumpster.com搜索出来的子域名和ip地址对应表示为:

所有的子域名:


楼上回答的基本都是基于搜索引擎扫描到的记录,那么肯定不全面的。

我觉得一定有一个全面的方法,因为我经常使用dnspod,如果添加一个新域名它会自动扫描这域名所有的A、CNAME、TEXT、MX等记录,一个都不漏,不知道它是怎么做到的。比如下图我添加了福特公司官网,扫描显示如下:

点确定后:

显示的非常全面,一个都不少。不知道是怎么做到的。


  1. 获取到http://baidu.com的zone file在ns2/ns3/ns4/ns7/http://dns.baidu.com中
  2. no


http://i.links.cn/subdomain/


我写了一个开源子域信息收集的项目OneForAll,尝试运用更多更全的子域收集方式进行全面的子域信息收集,欢迎使用和吐槽~

OneForAll?

shmilylty.github.io


site、ALEXA排名都可以查询到。
可以在搜索引擎中键入site:+域名比如,在百度中输入site:http://baidu.com这样所有http://baidu.com的二级域名就全列出来了。。。
直接在alexa官网也可以,http://www.alexa.com,不仅可以看到子域名,还可以看到这些子域名各自占到总流量的百分比
二级域名查询,子域名查询

这个要求是有难度的,因为无论是alexa和站长工具都无法准确的列出二级域名,毕竟这牵涉到网站的管理。而且alexa列出的往往是流量达到一定程度的域名,流量小的久不会列出来。通过site和站长工具需要牵涉到百度演算法,有些时候百度演算法调整,有些数据也是不全的。

但如要要看百度的二级域名我倒觉得容易多,因为百度不是把自己的产品都整合在一个页面吗,二级域名估计都在里面。而且百度的站流量都不错,通过alexa可以查到大部分。

但对于一般站来说,我认为不好处理。
一方面可以用 SITE:http://BAIDU.COM的方面,另一方面如果这些二级域名都是放在同一个IP下,可以通过查这个IP绑定的域名找到。
Google Planner还有流量预估

二级域名扫描工具很多的


推荐阅读:
相关文章