参考 https://security.tencent.com/index.php/blog/msg/161
1、利用证书透明度收集子域
原理:
引用谷歌的项目介绍:“要向用户提供加密流量,网站必须先向可信的证书授权中心 (CA) 申请证书。然后,当用户尝试访问相应网站时,此证书即会被提供给浏览器以验证该网站。近年来,由于 HTTPS 证书系统存在结构性缺陷,证书以及签发证书的 CA 很容易遭到入侵和操纵。Google 的证书透明度项目旨在通过提供一个用于监测和审核 HTTPS 证书的开放式框架,来保障证书签发流程安全无虞。”
那么,通过这样的证书透明度项目,我们就可以在其中获取一些有价值的域名。
(1)crtsh:https://crt.sh/
(2)facebook:https://developers.facebook.com/tools/ct
(3)entrust:https://www.entrust.com/ct-search/
(4)certspotter:https://sslmate.com/certspotter/api/
(5)spyse:https://spyse.com/search/certificate
(6)censys:https://censys.io/certificates
(7)google: https://google.com/transparencyreport/https/ct/
4、利用威胁情报平台数据收集子域
(注:将需要{domain}换成需要查询的域名, 以下平台均需注册,注册后免费试用)
(1) https://otx.alienvault.com/api/v1/indicators/domain/{domain}/{section}
{section}指其他指令动作,可参考Docs关于API的使用说明。
https://otx.alienvault.com/api/v1/indicators/domain/qq.com/url_list(2) https://community.riskiq.com/search/{domain}/subdomains
(3) https://x.threatbook.cn/nodev4/domain/{domain}
API:https://api.threatbook.cn/v3/domain/sub_domains(4) https://www.threatminer.org/domain.php?q={domain}
(5) https://www.virustotal.com/ui/domains/{domain}/subdomains
或者https://www.virustotal.com/gui/domain/{domain}/relations(6) https://pentest-tools.com/information-gathering/find-subdomains-of-domain#
5、利用搜索引擎发现子域
(1) 谷歌搜索语法—site
当使用site提交查询时,Google会将查询限制在某个网站/某个域下面进行,此时配合其他指令效果更佳,如使用减号“-”来排除不想要搜集到的域名。
(2) Site:x.x.x. *(目标IP)
当我们获取到了子域名的真实ip后,可以尝试搜索site:x.x.x.* 进行C段搜索,通过这种方法也能找出很多有价值的其他相关域名。经笔者尝试,这种方法在搜狗、谷歌搜索引擎上使用有效,谷歌搜索引擎效果更好。
如图:
6、域名备案搜集资产
原理:
在对一些大型的目标进行信息搜集时,还可以通过查找域名备案信息来发现同备案的其他域名资产。如搜集qq的子域名时,最常见的即为对qq.com进行子域名搜集,此时就会遗漏其余顶级域名资产。
查询网址:www.beianbeian.com
如上图通过查询qq.com的网站备案/许可证号,再对其进行反查,即可发现qq.com同备案的其他顶级域名资产。
通过域名备案查找同备案的其他域名资产,能够更全面的搜集目标资产信息,提升发现漏洞的概率。
7、whois查询和关联查询
工具:站长工具
在此我们以facebook.com做演示,如何进行whois查询和反查
\1) 查询whois
http://whois.chinaz.com/facebook.com
8、域名爆破
爆破的原理其实是通过枚举的方式来实现的,通过不断的拼接字典中的内容去枚举域名的A记录,但是该方法一般需要解决泛解析问题。比如开源工具oneforall会首先访问一个随机的并不存在的域,通过返回结果判断是否存在泛解析,确定存在泛解析以后,程序会开始不断的循环产生随机域名,去向服务器查询,将每次查询到的IP和TTL记录下来,直到大部分的IP地址出现次数都大于两次,则IP黑名单的收集结束,在得到了IP黑名单以后,oneforall接下来会将自己的字典中的每一项和要指定查询的域名进行拼接。在爆破过程中根据IP黑名单进行过滤。但这种宽泛的过滤容易导致漏报,所以oneforall将 TTL 也作为黑名单规则的一部分,评判的依据是:在权威 DNS 中,泛解析记录的 TTL 肯定是相同的,如果子域名记录相同,但 TTL 不同,那这条记录可以说肯定不是泛解析记录。