子域名收集方式:
1.1.爆破
1.2.搜索引擎
1.3.证书透明度
1.4.第三方dns查询
1.5.域传送漏洞
1.6.as号码查询
1.7.san收集
1.8.使用公共数据
1.9.内容解析
懒得做业内跳转了,想看的用ctrl+f调着看吧
爆破/搜索引擎....略
证书透明度:
抄的百度
原理:证书透明度是Google为了减少恶意颁发未经授权证书的一种新规范,CA创建了一个被称为"pre-certificate"并将其发送到通过谷歌认证的Log Server (日志服务器),日志服务器给预签证返回一个"已签证书时间戳"(Signed Certificate Timestamp)给CA,称为STC数据,此数据被嵌入到正式签发的证书中或通过TLS模式提供部署到Web服务器中。详情自行百度
个人局的理解一下CT日志就好:
CT日志全称为Certificate Transparency日志,是一种公共记录证书签发情况的技术,旨在增加SSL/TLS证书签发的透明度和安全性。CT日志记录了每个SSL/TLS证书的签发历史,包括证书颁发机构、证书的公钥、过期日期、域名等信息,任何人都可以查阅这些信息。
注:并不是每个证书都必须使用CT日志
我们去看日志,日志是公开的
推荐网址:https://crt.sh
这些公共 CT 日志只记录了经过 CT 处理的证书,可能并不包含所有的证书信息。
crt.sh:crt.sh | Certificate Search
Google Transparency Report:https://transparencyreport.google.com/https/certificates
DigiCert Certificate Transparency:Redirecting...
Comodo Certificate Transparency:https://crt.comodo.com/ct-search
第三方dns查询
查询dns历史解析记录
网址:https://www.dnsdb.io/zh-cn/
https://viewdns.info/
https://securitytrails.com/app/signup
域传送漏洞
原理:
DNS服务器用于解析域名与IP地址之间的映射关系,域名通常以树形结构组织,每个域名下可以包含多个子域名和主机名,每个域名都有一个区域文件,记录了该域名下的主机名和IP地址等信息。在DNS服务器中,可以通过配置区域传送(zone transfer)功能,将该区域文件共享给其他DNS服务器,以便它们在需要时更新自己的DNS缓存。
然而,如果未正确配置权限控制,攻击者可以利用该区域传送功能,向目标DNS服务器发送区域传送请求,获取该服务器中的区域文件,从而获得该域名下的所有主机名和IP地址等信息。
利用方式:
确定目标域名和其对应的DNS服务器。
利用工具或脚本发送DNS区域传送请求到目标DNS服务器。
获取目标DNS服务器中的区域文件,包括目标域名下的所有主机名和IP地址等信息。
根据获取到的信息,进行后续的攻击活动,例如网络钓鱼、拒绝服务攻击等。
防范措施:
确认DNS服务器已正确配置权限控制,限制区域传送请求的来源IP地址。
禁用不必要的区域传送功能,只允许必要的DNS服务器进行区域传送。
定期检查DNS服务器的安全配置,以及是否存在安全漏洞。
使用DNS防护服务,对恶意的DNS流量进行检测和过滤,防止攻击者利用DNS服务器漏洞进行攻击。
测试方式
手动测试:手动测试需要使用命令行工具进行,常用的工具有dig和nslookup。使用命令"dig axfr @<目标DNS服务器IP> <域名>"或者"nslookup -type=any <域名> <目标DNS服务器IP>",如果返回的信息中包含所有子域名和DNS记录,则说明存在域传送漏洞。
自动化测试工具:有一些自动化测试工具,例如DNSrecon、DNSenum和Fierce等,可以自动测试目标DNS服务器是否存在域传送漏洞。这些工具会自动发送DNS区域传送请求,并分析响应结果,以确定是否存在漏洞。
在线工具:有一些在线工具可以对目标域名进行测试,例如ViewDNS.info等。这些工具可以通过输入目标域名或DNS服务器IP地址,自动测试是否存在域传送漏洞,并给出测试结果。
dns解析失败,我所遇到的,是由于我的电脑在使用ipv6地址,但是我的路由无法使用ipv6地址,导致的dns超时,禁用掉ipv6就好
AS号码查询:
原理:大概说一下吧:AS也叫自治系统,多个路由就可以称为AS,他们所共享同一个AS号码,通常这些路由是同一个运营商的,当然也有例外。这些路由的ip不一定在同一网段,所以通过一个AS号码能够获得多个ip段,本文称为ip前缀,由于是路由器的ip,所以只能锁定一个ip段,不能真正的获得到某一个ip,也没有意义,我们批量扫描ip段内的主机端口,这也算是一种思路吧,效果没那么好,但是多一条路多一个希望
关于AS(自治系统)或者通过AS号码查询子域名的原理详情自行百度吧
流程:通过一个域名获得它的AS号码,然后通过AS号码获得一组ip前缀
我们需要对这些范围的ip进行80/443端口的扫描,判断是否存在网站
最后的结果也许会包含其他网站的域名,
注:不一定每个网站都会有AS号码
san收集
SAN全称是“Subject Alternative Name”,翻译中文:“主题备用名称”,当然肯定不止这一个翻译,大概就这个意思,查看网页证书,右边是火狐,左边是chrome
可以看出来,不一定能得到更多的子域名
使用公共数据:
搜索引擎、DNS历史记录、SSL证书信息、Github代码库、社交媒体等都算是公共数据了,
你也可以去你的交流群去问群友,看看他们有没有收集到的,问他们要一份
内容解析:
看html和js代码
推荐JSFinder和urlfinder
以上是我个人理解,理解有误的话还请评论指出来,先谢过诸位