DNS解析详细步骤
DNS解析是将域名的过程。它是网络通信中必不可少的一部分,因为计算机之间的通信依赖于IP地址,而人类则更习惯使用域名。以下是DNS解析的详细步骤:
1. 浏览器缓存检查
- 用户在浏览器输入网址后,浏览器首先会查看自己内部缓存中是否已经有该域名的IP地址记录。
- 如果找到匹配的记录,解析过程就结束,浏览器直接使用该IP地址发送请求。
- 若缓存中没有记录,则继续下一步。
2. 操作系统缓存检查
- 浏览器没有找到域名对应的IP地址后,会向操作系统发出请求,查看本地操作系统的DNS缓存(有时称为host缓存)。
- 操作系统缓存中如果有相关记录,会将IP地址返回给浏览器。
- 若操作系统也没有缓存,则继续下一步。
3. Hosts文件检查
- 操作系统会检查本地的
hosts
文件(Windows、Linux、Mac等操作系统都有自己的hosts文件)。这个文件中可以手动映射域名到IP地址。 - 如果
hosts
文件中有相关记录,操作系统会使用这个IP地址进行解析。 - 如果没有相关记录,操作系统将继续下一步。
4. 本地DNS服务器查询
- 如果操作系统的缓存和
hosts
文件都没有结果,操作系统会向本地配置的DNS服务器发起查询。这个DNS服务器通常由用户的ISP(互联网服务提供商)提供。 - 本地DNS服务器有自己的缓存,如果能找到记录,就返回给操作系统。
5. 递归DNS解析(若本地DNS无缓存记录)
如果本地DNS服务器也没有缓存记录,它将开始递归DNS解析过程。这个过程分为以下几步:
a. 根域名服务器查询
- 本地DNS服务器会首先向根域名服务器发起请求。根域名服务器知道所有顶级域(如
.com
、.org
、.net
等)的DNS服务器的位置。 - 根域名服务器返回给本地DNS服务器一个指向该顶级域的顶级域名(TLD)服务器的IP地址。
b. 顶级域名服务器查询
- 本地DNS服务器接下来会向顶级域名服务器(如管理
.com
域名的服务器)发出请求。 - 顶级域名服务器会返回与该具体域名相关的权威DNS服务器的IP地址。
c. 权威DNS服务器查询
- 本地DNS服务器最后向权威DNS服务器发出请求。权威DNS服务器拥有该域名的最终解析结果。
- 权威DNS服务器将该域名对应的IP地址返回给本地DNS服务器。
6. 返回结果给客户端
- 本地DNS服务器将获得的IP地址返回给用户的操作系统。
- 操作系统再将该IP地址提供给浏览器。
7. 缓存结果并访问服务器
- 解析到IP地址后,浏览器会缓存该结果以供将来使用,并使用该IP地址向目标服务器发起HTTP请求(如GET请求)。
- 目标服务器接收到请求后,返回相应的网页内容,DNS解析过程结束。
子域名信息收集常用手段
1. 使用子域名枚举工具
- Sublist3r:一个著名的开源子域名收集工具,它结合了多个来源(搜索引擎、DNS服务、公共API等)来进行子域名的自动化枚举。
- Amass:一款功能强大的子域名收集工具,支持主动枚举和被动收集,结合OSINT(开放源情报)和网络扫描等多种技术手段。
- Assetfinder:一个快速子域名发现工具,它会自动从多个API中获取子域名信息。
- Findomain:一个快速、轻量的子域名查找工具,支持多个平台,并能与API集成。
- Aquatone:主要用于子域名枚举和扫描的工具,适用于发现目标的子域名和服务。
2. DNS缓存探测
- DNS缓存投毒检测:通过伪造DNS请求探测目标DNS服务器是否缓存了某些子域名。
- DNS缓存投毒工具:如
dnscache-snoop
可以尝试检测目标的DNS缓存状态,帮助确定子域名。
3. 利用字典攻击
- 利用常见子域名字典文件进行大规模的子域名爆破。这种方法适合用来发现可能存在的标准化子域名(如
admin.example.com
、shop.example.com
等)。 - 工具:
MassDNS
是一个高效的DNS解析工具,常与字典文件结合使用进行子域名爆破。
NMAP端口扫描
利用NMAP收集信息,可以找到目标IP的端口
dirmap目录扫描探测工具实践
为什么每次条数不一样?
缓存和负载均衡:网站使用CDN或负载均衡器可能导致不同的响应,dirmap 可能会从不同的服务器获得不同的结果。
扫描字典的不同:dirmap 使用的字典可能不同。如果字典更新或变化,扫描结果也会不同。
线程和并发设置:dirmap 的并发请求数、超时时间等设置可能影响扫描的结果。高并发或长时间超时可能导致不同的扫描结果。
网络波动:网络延迟或丢包可能导致某些请求未能成功返回,进而影响扫描结果的完整性。
服务器响应不稳定:目标服务器可能会因负载过高或配置问题导致响应不一致,从而影响扫描结果。
fscan扫描
扫描ip地址,发现有phpstudy所搭建的网站,以及开放的端口和网关。