目录
一、DNS解析详细步骤
-
客户端对目标网站发起访问,首先会请求本地DNS服务器
-
本地DNS服务器代替客户端发起全球迭代查询,首先请求根域名服务器
-
根域名服务器告知本地DNS服务器下一级顶级域名服务器的地址
-
本地DNS服务器向顶级域名服务器发起请求
-
顶级域名服务器将目标域名授权的权威解析服务器地址告知本地DNS服务器
-
本地DNS服务器向权威域名服务器发起请求
-
权威域名服务器将权威的解析记录结果告知本地DNS服务器
-
本地DNS服务器将解析记录结果返回给客户端主机
-
客户端根据解析记录向目标服务器发起访问,整个DNS解析过程结束
二、绕过CDN查找主机真实IP的方法
1.查询历史DNS记录
CDN通常是在网站运营过程中加入的,因此在CDN部署之前,网站的DNS解析记录可能直接指向真实服务器IP。通过查询网站的历史DNS记录,有可能找到CDN部署前的IP地址,这通常是网站的真实IP。
iphistory:https://viewdns.info/iphistory/
DNS查询:https://dnsdb.io/zh-cn/
微步在线:https://x.threatbook.cn/
域名查询:https://site.ip138.com/
DNS历史查询:https://securitytrails.com/
Netcraft:https://sitereport.netcraft.com/?url=github.com
2.查询子域名
许多网站只对主域名或流量较大的子域名使用CDN,而一些边缘业务的子域名可能并未配置CDN。通过查询这些未使用CDN的子域名,有可能直接解析到网站的真实IP。
http://tool.chinaz.com/subdomain/
http://i.links.cn/subdomain/
http://subdomain.chaxun.la/
http://searchdns.netcraft.com/
https://www.virustotal.com/
3.网络空间安全引擎搜索
通过关键字或网站域名,就可以找出被收录的IP,很多时候获取到的就是网站的真实IP。
钟馗之眼:https://www.zoomeye.org
Shodan:https://www.shodan.io
Fofa:https://fofa.so
4.利用SSL证书寻找真实IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。
SSL证书搜索引擎:https://censys.io/ipv4?q=github.com
5.国外主机解析域名
大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。
6.网站邮件头信息
比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
三、子域名信息收集常用手段
1.搜索引擎查询
直接搜索:通过百度、谷歌等搜索引擎直接搜索目标组织的名称或相关关键词,通常可以找到其官网及主域名信息。
高级搜索语法:利用搜索引擎的高级搜索功能,如Google的site:
语法(如site:example.com
),来限制搜索结果,从而获取目标组织的子域名信息。这种方法简单快捷,适用于初步信息收集。
2. 在线查询工具
子域名查询网站:如SecurityTrails、IP138、Chinaz、dnsscan.cn等,这些网站提供专门的子域名查询服务,输入域名即可获取子域名列表。这些工具通常具有较快的查询速度和较全面的查询结果。
证书透明度查询网站:如crt.sh、Censys等,由于许多企业域名使用HTTPS协议,TLS证书中通常包含域名信息。通过查询证书透明度日志,可以收集到目标组织的子域名信息。这种方法对于发现隐藏的子域名特别有效。
Whois查询网站:如Whois.chinaz.com等,通过查询同一公司注册的多个域名,可能发现使用同一邮箱或联系信息注册的子域名。这种方法需要一定的分析和推理能力。
3. 企业信息查询平台
通过天眼查、爱企查、企查查等企业信息查询平台,查看目标组织的股权穿透图、关联公司等信息,以查找子公司并收集其子公司的域名。这种方法适用于了解目标组织的组织架构和业务范围。
4. 专业工具与软件
自动化收集工具:如Subfinder、OneForAll、Layer子域名挖掘机等,这些工具通过集成多个API接口和字典枚举的方式自动化收集子域名信息,具有较快的收集速度和较全面的收集结果。
暴力破解工具:如Sublist3r、Amass等,通过字典或其他方法生成可能的子域名列表,并对列表中的每个子域名进行DNS解析以确定其是否存在。这种方法虽然效率较低且可能不全面,但在某些情况下仍然有效。
5. 网络爬虫技术
编写爬虫程序来抓取目标网站及其相关页面,提取出其中的子域名信息。这种方法需要一定的编程技能和对网站结构的了解,但能够获取到搜索引擎和在线查询工具可能无法发现的信息。
6. DNS历史记录查询
使用如SecurityTrails、DNSdumpster.com等DNS历史记录查询服务,通过查询过去DNS解析记录的服务,可以查找目标组织过去使用过的子域名。这种方法有助于发现已被删除但仍解析到目标组织的子域名。
7. 其他方法
分析HTTPS证书:通过分析HTTPS证书中的域名信息来挖掘子域名。
利用crossdomain.xml文件:许多网站在crossdomain.xml文件中会列出允许跨域访问的子域名信息,通过分析这些文件可以发现子域名。
四、Nmap全端口扫描
截图
SYN半开扫描的原理
SYN半开扫描利用了三次握手的前两步来探测端口状态,而不完成第三步握手
-
发送SYN包:扫描器向目标主机的特定端口发送一个带有SYN标志位的TCP报文段,请求建立连接。
-
分析响应:如果目标主机的该端口开放且正在监听,它会回应一个SYN+ACK报文段。扫描器收到此报文后,可以判断该端口是开放的,但此时扫描器不会发送ACK包完成三次握手,而是直接发送RST包(重置连接)或忽略该SYN+ACK包,从而避免建立完整的TCP连接。如果目标主机的该端口关闭,它通常会直接回应一个RST报文段,表示拒绝连接。扫描器收到此报文后,可以判断该端口是关闭的。如果扫描器在一定时间内没有收到任何响应,且确认目标主机存在,那么可以推断该端口可能被防火墙等安全设备过滤。
跳过主机存活检测扫描使用常见
Nmap工具提供了-Pn
参数来跳过存活检测。命令会告诉Nmap直接对指定的目标IP地址或范围进行端口扫描,而不会先发送ICMP Echo请求或其他探测包来检测主机是否存活。
五、dirmap目录探测工具实践
截图
为什么dirmap每次扫描条数不一样
目标网站的变化、扫描参数和配置的变化、网络状况的不稳定性、服务器响应的差异性、扫描策略的调整以及随机性和不确定性因素等。这些因素都会影响 dirmap
扫描的结果,导致每次扫描的条数可能有所不同。