参考 https://security.tencent.com/index.php/blog/msg/161

    1、利用证书透明度收集子域

    原理:
    引用谷歌的项目介绍:“要向用户提供加密流量,网站必须先向可信的证书授权中心 (CA) 申请证书。然后,当用户尝试访问相应网站时,此证书即会被提供给浏览器以验证该网站。近年来,由于 HTTPS 证书系统存在结构性缺陷,证书以及签发证书的 CA 很容易遭到入侵和操纵。Google 的证书透明度项目旨在通过提供一个用于监测和审核 HTTPS 证书的开放式框架,来保障证书签发流程安全无虞。”

    那么,通过这样的证书透明度项目,我们就可以在其中获取一些有价值的域名。

    1. 1crtshhttps://crt.sh/
    2. 2facebookhttps://developers.facebook.com/tools/ct
    3. 3entrusthttps://www.entrust.com/ct-search/
    4. 4certspotterhttps://sslmate.com/certspotter/api/
    5. 5spysehttps://spyse.com/search/certificate
    6. 6censyshttps://censys.io/certificates
    7. 7google 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会将查询限制在某个网站/某个域下面进行,此时配合其他指令效果更佳,如使用减号“-”来排除不想要搜集到的域名。
    子域名收集 - 图1

    (2) Site:x.x.x. *(目标IP)
    当我们获取到了子域名的真实ip后,可以尝试搜索site:x.x.x.* 进行C段搜索,通过这种方法也能找出很多有价值的其他相关域名。经笔者尝试,这种方法在搜狗、谷歌搜索引擎上使用有效,谷歌搜索引擎效果更好。
    如图:
    子域名收集 - 图2

    6、域名备案搜集资产

    原理:
    在对一些大型的目标进行信息搜集时,还可以通过查找域名备案信息来发现同备案的其他域名资产。如搜集qq的子域名时,最常见的即为对qq.com进行子域名搜集,此时就会遗漏其余顶级域名资产。
    查询网址:www.beianbeian.com
    子域名收集 - 图3

    子域名收集 - 图4

    如上图通过查询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 不同,那这条记录可以说肯定不是泛解析记录。