作为专业的安全渗透测试人员,在项目开始时,一般都只有一个或一组域名,客户往往不会给你全部的有效域名(多数情况是他们自己都摸不透他们所有的域名)。挖掘安全漏洞大致可以从两个方向来说,一是挖的够“深”,二是挖的够“广”,深度往往由测试人员的水平所决定,短时间内无法提升,那么一般只能从广度来进行快速提升,这个时候就需要尽可能收集子域名来扩大自己的攻击范围来增加战果,那么由此我们也可以知道子域名信息收集的重要性。
如何去高效收集子域名?
首先我们可以考虑先“剽窃”别人的工作成果,比如google这类的搜索引擎,或是一些公开的专业进行域名收集的网站。以google为例,可以通过site关键词进行搜索,并用减号来去除不想要的子域名,从图中我们能看出两个子域名,www和ask(对应安全测试课中的GoogleHacking课程):
如果我们已经知道www和ask子域名,先把他们过滤掉,那么筛选后如下,发现在搜索引擎下,testfan.cn只有三个域名:
刚才说了,除了搜索引擎,还有一些提供专业域名收集服务的网站,我们这里看一个https://dnsdumpster.com/,可以看出也是只有三个子域名的记录:
除了利用公开的爬虫(搜索引擎)和公开的域名收集数据库,我们还可以通过证书来进行较为全面的域名收集,当然这个主要针对较大的公司。一般较大的公司都会使用https来保护自己数据的传输安全,那么我们可以通过证书来进行同一家公司的域名的收集,由于testfan并未使用https,所以暂时使用百度进行示范,一般可以使用网络上现成的数据库进行检索(如https://crt.sh/?q=baidu.com),或者自己手动查看:
不过即使别人的工具再厉害,终究还是没有办法100%的覆盖所有域名,比如子域名如果长达十几位或者多级子域名并且设置了一些策略,那么如果不按照特定的思路去请求,是没有办法找到这个子域名的,这个时候就需要测试人员拿出祖传的关键词字典来进行子域名的暴力枚举,直接去进行请求,去判断域名是否能解析。比如在测试时发现开发人员喜欢用类似的数字替换字母,如testfan用te5tf4n来设置子域名,那么按照这个规则来生成可能的子域名的字典则会大大提高子域名挖掘的效果。
除了上面四种,通过一些特定的漏洞也是可以进行子域名收集的,如DNS域传送漏洞,通过一些配置的缺陷直接枚举出DNS服务器上所有的解析记录,从而获取所有的子域名,具体细节安全测试课的服务漏洞章节会说到。
上述描述的其实都是手动进行域名收集,现实中已经有人为我们造好了轮子,我们直接使用就可以了:https://github.com/aboul3la/Sublist3r。
信息收集是安全测试最重要的一步,而子域名收集时信息收集中比较重要的一个环节,所以希望大家有兴趣可以多多了解,扩大自己的的测试成果。
作 者:Testfan Covan
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接
转载:https://blog.csdn.net/Testfan_zhou/article/details/102485790