1、DNS解析详细步骤
1.用户输入: 当用户在浏览器中输入一个域名(如www.example.com)时,DNS解析过程开始。
2.检查浏览器缓存: 浏览器首先检查自身的DNS缓存,看是否有该域名对应的IP地址。如果有,则直接使用缓存中的IP地址。
3.检查操作系统缓存: 如果浏览器缓存中没有,则检查操作系统的DNS缓存。
4.检查本地hosts文件: 接下来检查本地hosts文件,看是否有该域名的映射关系。
5.请求本地DNS服务器(递归查询): 如果前面都没有找到,浏览器会向本地DNS服务器(通常由ISP提供)发送查询请求。
6.根域名服务器查询: 如果本地DNS服务器没有缓存,它会向根域名服务器发送查询。
7.顶级域名服务器查询: 根服务器会返回负责.com顶级域的DNS服务器地址。本地DNS服务器再向其查询。
8.权威域名服务器查询: 顶级域名服务器返回负责example.com的权威DNS服务器地址。本地DNS服务器再次查询。
9.获取IP地址: 权威DNS服务器返回www.example.com的IP地址给本地DNS服务器。
10.返回结果: 本地DNS服务器将IP地址返回给客户端。
11.缓存结果: 本地DNS服务器和客户端通常会缓存这个结果,以加速后续的查询。
12.建立连接: 有了IP地址后,浏览器就可以与目标服务器建立连接了。
2、绕过CDN查找主机真实IP的方法
历史DNS记录查询: 在网站启用CDN之前,其DNS记录可能指向真实IP。通过查询历史DNS记录,有时可以发现原始IP。
子域名检查: 某些子域名(如mail.example.com或ftp.example.com)可能没有使用CDN,直接指向真实服务器。
SSL证书信息: SSL证书可能包含真实IP地址信息。检查证书的详细信息有时能发现线索。
探测CDN覆盖范围之外的地区: 一些CDN可能没有覆盖所有地理位置。使用不同地区的代理服务器进行请求,可能会绕过CDN,全球ping。
利用CDN配置错误: 某些情况下,CDN配置不当可能会泄露真实IP。例如,通过特定的HTTP请求头或参数。
网络空间测绘:Shodan,fofa,ZoomEye
3、子域名信息收集常用手段
Google、Bing等搜索引擎,搜索site:example.com
使用常见子域名字典进行暴力猜解,工具如Sublist3r、Subfinder等
第三方情报平台,Shodan,fofa,ZoomEye
企业资产查询,企查查,天眼查等
Whois信息查询同一注册人名下的其他域名
4、Nmap全端口扫描(使用昨日搭建的pikachu靶场)
SYN半开扫描的原理和跳过主机存活检测扫描使用场景
1. SYN半开扫描原理
发送SYN包: 扫描器向目标端口发送一个SYN包,跟要建立正常的TCP连接一样。
等待响应:
-
如果端口开放: 目标会回应一个SYN-ACK包。
-
如果端口关闭: 目标会回应一个RST包。
-
如果被过滤: 可能不会收到任何响应,或收到一个ICMP不可达消息。
终止连接: 对于开放的端口,扫描器不会完成三次握手,直接发送一个RST包来终止连接。
记录结果: 根据收到的响应,扫描器确定端口状态。
优势:
-
速度快: 不完成完整的TCP连接。
-
较难被检测: 不在目标系统日志中留下完整连接记录。
使用方法:
在Nmap中,使用 -sS
选项进行SYN扫描:
nmap -sS <target>
2. 跳过主机存活检测扫描使用场景
跳过主机存活检测(也称为跳过ping扫描)是指直接进行端口扫描,而不用先确定主机是否在线。
使用方法:
在Nmap中,使用 -Pn
选项跳过主机存活检测:
nmap -Pn <target>
主要使用场景:
-
防火墙环境
许多防火墙会阻止ICMP请求(ping)
-Pn
选项假设所有目标主机都是在线的。 -
隐蔽扫描
跳过主机发现可以减少发送到目标的数据包数量,因为直接进行端口扫描,不需要探测。
降低被入侵检测系统(IDS)或入侵防御系统(IPS)检测的风险。
-
已知主机
当你确定目标主机在线时,可以使用此选项节省时间。
-
全面扫描
在需要扫描所有指定IP地址的情况下,无论它们是否看似在线。
5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场)
为什么dirmap每次扫描条数不一样
网络条件: 网络连接质量的变化可能导致某些请求在一次扫描中成功,而在另一次扫描中失败。
随机性: dirmap 可能在内部使用了一些随机化策略来避免被检测为自动化工具。
超时设置: 如果没有明确设置超时参数,某些请求可能在一次扫描中超时,而在另一次中成功。
并发问题: 多线程扫描可能导致结果的不一致。
dirmap高级应用
-
基本扫描:
python3 dirmap.py -i https://example.com -lcf
-
指定自定义字典:
python3 dirmap.py -i https://example.com -lcf -f your_wordlist.txt
使用 -f
参数可以指定自己的字典文件。
-
设置线程数:
python3 dirmap.py -i https://example.com -lcf -t 50
使用 -t
参数可以设置扫描线程数,默认为 32。
-
设置延迟时间:
python3 dirmap.py -i https://example.com -lcf --delay 1
--delay
参数用于设置每次请求之间的延迟时间(秒)。
-
排除特定状态码:
python3 dirmap.py -i https://example.com -lcf --no-progress --exclude-status 404
使用 --exclude-status
可以排除指定的 HTTP 状态码。
-
保存结果:
python3 dirmap.py -i https://example.com -lcf -o result.txt
使用 -o
参数可以将扫描结果保存到指定文件。
-
使用代理:
python3 dirmap.py -i https://example.com -lcf --proxy-server 127.0.0.1:8080
--proxy-server
参数用于设置代理服务器。
6、Fscan实践(使用昨日搭建的pikachu靶场)
用法:
fscan.exe -h 172.20.10.4/24 基本扫描 fscan.exe -h 172.20.10.4/24 -p 80,443,3306 指定端口扫描 fscan.exe -h 172.20.10.4/24 -o result.txt 保存结果到文件 fscan.exe -h 172.20.10.4/24 -proxy 127.0.0.1:8080 使用代理 fscan.exe -h 172.20.10.4/24 -t 1000 指定线程数 fscan.exe -h 172.20.10.4/24 -np 禁用Ping探测