1. DNS解析详细步骤。
DNS(域名系统)解析是将域名转换为IP地址的过程。这个过程通常分为以下几个详细步骤:
1. 1 用户输入域名
用户在浏览器或应用程序中输入一个域名(如 `www.example.com`),这时系统需要将这个域名转换为一个可以在互联网上使用的IP地址。
1.2 本地缓存检查
浏览器缓存:浏览器会检查是否已缓存了这个域名的IP地址。如果有缓存,浏览器直接使用这个IP地址进行连接。
操作系统缓存:如果浏览器没有缓存,操作系统会检查本地DNS缓存中是否有该域名的IP地址。
1.3 递归DNS解析请求
如果本地缓存中没有找到结果,操作系统会向配置的DNS解析器(通常是ISP提供的DNS服务器)发送递归DNS查询请求。递归DNS解析器负责为客户端查询域名的IP地址,并返回最终结果。
1.4 递归DNS解析器的查询过程
根域名服务器查询:递归DNS解析器首先查询根域名服务器。根域名服务器不提供具体的IP地址,但它会返回负责顶级域(如 `.com`、`.org`)的DNS服务器的信息。
顶级域名服务器查询:递归DNS解析器接着向顶级域名服务器发送查询请求。顶级域名服务器返回负责该域名的权威DNS服务器的信息。
权威DNS服务器查询:递归DNS解析器最终向权威DNS服务器发送查询请求。权威DNS服务器包含域名和其对应的IP地址信息。
1.5 返回IP地址
权威DNS服务器将域名的IP地址返回给递归DNS解析器。递归DNS解析器将这个IP地址返回给请求的客户端(操作系统)。
1.6 更新缓存
客户端操作系统和浏览器会将得到的IP地址缓存起来,以便下次直接使用,减少DNS查询的延迟。
1.7 连接目标服务器
客户端(如浏览器)使用获得的IP地址建立与目标服务器的连接,完成数据的传输和访问。
整个过程通常在几毫秒到几秒钟内完成,具体时间取决于DNS服务器的响应速度、网络延迟以及缓存的有效性。
2. 绕过CDN查找主机真实IP的方法
2.1 判断是否有CDN
使用多个地点Ping服务器,网站测速 - 站长工具工具进行域名解析,查看能否解析出多个IP,如果解析出多个IP说明使用了CDN。
如下对www.baidu,com进行测试,可以看到有多个IP,说明使用了CDN
2.1 绕过CDN
2.1.1查询历史DNS记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP
2.1.2子域名查询
由于目标服务可能在主站上做好了相应的CDN,但是由于种种原因例如部署费用过高,或者对二级域名不上心等,所以导致二级域名没有部署到CDN,这时我们可以从这个方面入手进行查询。利用子域名搜集工具等搜集到足够的子域名后,便可以对通过子域名进行真实IP的搜集。
下面介绍些常用的子域名查找的方法和工具:
1)微步在线(https://x.threatbook.cn/)
微步在线功能强大,只需输入要查找的域名(如baidu.com),点击子域名选项就可以查找它的子域名了,但是免费用户查询次数有限。如图:
2)Dnsdb查询法(https://dnsdb.io/zh-cn/)
只需输入baidu.com type:A就能收集百度的子域名和ip了。
3)各种子域名扫描器
推荐子域名挖掘机,仅需输入域名即可基于字典挖掘它的子域名
3. 子域名信息收集常用手段。
3.1 搜索引擎查询
利用Google、Bing等搜索引擎,通过特定的搜索语法(如"site:"指令)来限制搜索结果,从而获取特定域名的子域名信息。此外,还可以使用"intitle"、"inurl"、"intext"等指令对搜索出的内容进行筛选,以及利用证书透明度查询网站(如crt.sh、Censys等)通过查询HTTPS证书信息来收集子域名12。
3.2 备案查询
通过官方备案网站(如工信部ICP备案系统、chinaz等)查询域名备案信息,进而获得域名所属公司的名称,再搜索该公司名称以获取其所有注册域名3。
3.3 企业信息查询平台
利用企业信息查询平台(如天眼查、爱企查、企查查等)通过查看股权穿透图来查找子公司,并收集其子公司的域名信息3。
4. Nmap全端口扫描
4.1 全端口扫描
使用全端口扫描自己的主机,可以看到开放的端口
4.2 SYN半开扫描
SYN半开扫描是一种常用的网络扫描技术,主要用于确定远程主机上的端口是否开放。它之所以被称为“半开”是因为它不会完成整个TCP三次握手过程。
SYN半开扫描原理:
1)发送SYN数据包:
扫描程序向目标主机的特定端口发送一个SYN数据包,这个数据包表示连接请求的开始。
2)接收响应:
如果目标端口是开放的,则目标主机将返回一个SYN-ACK响应数据包,表明它准备接受连接。
如果目标端口是关闭的,则目标主机将返回一个RST(重置)数据包,表明该端口不接受连接。
如果目标端口处于过滤状态(如被防火墙阻止),则可能不会收到任何响应。
3)处理响应:
对于接收到SYN-ACK的数据包,扫描程序不需要发送ACK确认来完成三次握手,因此连接保持半开状态。扫描程序只需记录该端口为开放状态即可。
对于接收到RST的数据包,扫描程序记录该端口为关闭状态。
如果没有接收到任何响应,则根据具体情况判断端口状态,可能是关闭或被过滤。
SYN半开扫描命令
nmap -sS [目标IP或域名]
4.3 跳过主机存活检测扫描
在Nmap中,你可以使用 -Pn 选项来跳过存活检测,直接进行端口扫描。这个选项告诉Nmap假设所有的目标主机都是在线的,即使它们实际上并不在线。
跳过主机存活检测扫描的命令:
nmap -sS [目标IP或域名]
5. dirmap目录探测工具实践
5.1 对主机下pikachu靶场进行目录扫描
5.2 dirmap每次扫描条数不一样的原因
随机化的字典文件:dirmap通常会使用一个包含常见目录和文件名的字典文件作为输入。如果字典文件是随机化的,那么每次扫描时读取的顺序可能会有所不同,导致显示的条目数量看起来有所变化。
网络状况:网络延迟、丢包或其他网络问题可能导致某些请求未能成功完成,从而影响结果的数量。
服务器响应:有时候服务器对于不同的请求会有不同的响应时间或不同的响应行为,这可能导致某些请求超时或返回错误,从而影响扫描结果中的条目数量。
扫描范围:如果扫描的范围(如端口列表或URL路径)发生变化,也会导致扫描结果中显示的条目数量不同。
6. Fscan实践
使用fscan扫描搭建的pikachu靶场
fscan.exe -h 127.0.0.1