站长  发布于 2024-06-30 11:57:10  阅读(195)  点赞(0)  评论(0)

    可能是因为安全的原因DNS协议不支持直接查询域名及子域名的所有A记录,本文通过网上整理收集为您介绍扫描一个域名的子域名的一些可行手段:

1、穷举/使用字典扫描;

2、爬取网站内容提取子域名;

3、利用搜索引擎收录提取子域名;

4、DNS查找各类DNS记录提取子域名;

5、通过查询HTTPS/SSL的证书数据提取子域名。

下面将详细为您介绍详细实现方案:

一、穷举/使用字典扫描:

通过穷举N位数的子域,在可接受范转,例表小于三位,例如从0到z、从00到zz、从000到zzz,找到部分子域。

通过常用子域字典,例如www、admin、mail、wap、img、m...,找到部分子域。

不管是穷举还是跑字典,都需要一条条的向DNS服务器请求来获得解析情况。

>nslookup -type=A img.htool.com
返回:
服务器:  UnKnown
Address:  172.26.141.27

非权威应答:
名称:    img.htool.com
Address:  8.140.19.87

>nslookup -type=A abc.htool.com
返回:
服务器:  UnKnown
Address:  172.26.141.27

*** UnKnown 找不到 abc.htool.com: Non-existent domain

这个方法的缺点是:如果子域字数多或不在字典里就没法查到了。

二、爬取网站内容提取子域名:

    通过爬取主域名网站的页面,从页面内容html、js、css当中通过正则表达式等手段提取子域名,这是一种比较快捷有效的方法。爬取的过程中由于某些网站页面特别多不可能无限制爬取,在爬取的过程中我们可以通过设定爬取的页面深度来控制爬取结束,例如设定爬取的页面深度为10,超过10之后的不爬取。爬虫爬取页面分析的例子太多,这里就不详细展开了。此方法也有缺点是:如果子域名在主域名中没有链接指向则提取不到。

三、利用搜索引擎收录提取子域名

    使用搜索引擎如百度、Google、Bing等,通过特定的搜索语法查找目标域名的子域名。例如使用 site:img.htool.com或 inurl:img.htool.com 等搜索,通过分析返回结果判断子域名是否有效。当然理论上也可以将搜索引擎收录的网址爬下来,通过网址来提取子域名,但是搜索引擎应该都有反爬的机制,收录太多的网站很难把所有的收录页面的网址都爬下来分析。此方法也有缺点是:如果子域名未被搜索引擎收录则提取不到。

四、DNS查找各类DNS记录提取子域名:

    查找主域名的条类DNS记录发现子域名。如A记录、CNAME记录、MX记录、TXT记录、NS记录等。

    例如:

>nslookup -type=ns baidu.com
服务器:  UnKnown
Address:  172.26.141.27

非权威应答:
baidu.com       nameserver = dns.baidu.com
baidu.com       nameserver = ns3.baidu.com
baidu.com       nameserver = ns2.baidu.com
baidu.com       nameserver = ns7.baidu.com
baidu.com       nameserver = ns4.baidu.com

dns.baidu.com   internet address = 110.242.68.134
ns3.baidu.com   internet address = 153.3.238.93
ns3.baidu.com   internet address = 36.155.132.78
ns2.baidu.com   internet address = 220.181.33.31
ns7.baidu.com   internet address = 180.76.76.92
ns7.baidu.com   AAAA IPv6 address = 240e:940:603:4:0:ff:b01b:589a
ns7.baidu.com   AAAA IPv6 address = 240e:bf:b801:1002:0:ff:b024:26de
ns4.baidu.com   internet address = 111.45.3.226
ns4.baidu.com   internet address = 14.215.178.80

>nslookup -type=mx baidu.com
服务器:  UnKnown
Address:  172.26.141.27

非权威应答:
baidu.com       MX preference = 10, mail exchanger = mx.maillb.baidu.com
baidu.com       MX preference = 15, mail exchanger = mx.n.shifen.com
baidu.com       MX preference = 20, mail exchanger = mx1.baidu.com
baidu.com       MX preference = 20, mail exchanger = jpmx.baidu.com
baidu.com       MX preference = 20, mail exchanger = usmx01.baidu.com
baidu.com       MX preference = 20, mail exchanger = mx50.baidu.com

mx.maillb.baidu.com     internet address = 220.181.50.185
mx.n.shifen.com internet address = 111.206.215.185
mx.n.shifen.com internet address = 111.202.115.85
mx1.baidu.com   internet address = 220.181.3.85
mx1.baidu.com   internet address = 111.202.115.85
jpmx.baidu.com  internet address = 119.63.196.201
usmx01.baidu.com        internet address = 12.0.243.41
mx50.baidu.com  internet address = 12.0.243.41

五、通过查询HTTPS/SSL的证书数据提取子域名

证书授权机构有一个叫证书透明度(Certificate Transparency)的项目,会把每个SSL/TLS证书发布到公共日志中。

通过一些在线工具,即可查出域名子域。

例如这个网站:crt.sh | Certificate Search

缺点:如果子域名没有申请SSL证书,就没法查到了。

输入域名查询:

image.png

查询结果:

image.png


评论列表
发表评论
请填写昵称