1、DNS解析详细步骤。
DNS(Domain Name System)解析是将域名转换为IP地址的过程,使得计算机可以通过数字地址进行网络通信。以下是DNS解析的详细步骤,包括客户端请求、DNS解析过程和响应的详细说明:
(1). DNS解析概述
当用户在浏览器中输入一个网址(如 www.example.com
),计算机需要将这个域名转换为IP地址,以便能够联系到目标服务器。这一过程包括多个步骤,从客户端发起请求到最终获取IP地址。
(2). DNS解析过程
步骤 1: 用户输入域名
用户在浏览器中输入域名(例如 www.example.com
)并按下回车。浏览器将开始查找对应的IP地址,以便能够与目标服务器建立连接。
步骤 2: 浏览器检查缓存
浏览器首先检查自己的缓存(Browser Cache),看看是否已经保存了这个域名的IP地址。如果缓存中有记录,则直接使用该IP地址进行连接。
步骤 3: 操作系统检查缓存
如果浏览器缓存中没有该域名的IP地址,操作系统会检查本地DNS缓存(Operating System Cache)。如果找到缓存记录,则将IP地址返回给浏览器。
步骤 4: 查询本地DNS服务器
如果操作系统缓存中也没有记录,客户端会向本地DNS服务器(通常是ISP提供的DNS服务器)发送DNS查询请求。这个请求是一个UDP数据包,包含需要解析的域名。
步骤 5: 本地DNS服务器检查缓存
本地DNS服务器会首先检查自己的缓存(Local DNS Cache)。如果缓存中有记录,它会将IP地址返回给客户端。如果缓存中没有记录,DNS服务器会开始递归查询过程。
步骤 6: 递归查询过程
如果本地DNS服务器没有缓存记录,它会进行递归查询,过程如下:
-
查询根DNS服务器:
- 本地DNS服务器会向根DNS服务器发送查询请求。根DNS服务器并不直接提供域名的IP地址,而是告诉本地DNS服务器负责该顶级域名的权威DNS服务器(例如
.com
的权威服务器)。
- 本地DNS服务器会向根DNS服务器发送查询请求。根DNS服务器并不直接提供域名的IP地址,而是告诉本地DNS服务器负责该顶级域名的权威DNS服务器(例如
-
查询顶级域名(TLD)服务器:
- 本地DNS服务器接收到根DNS服务器的响应后,会向指定的TLD服务器(如
.com
)发送请求。TLD服务器会提供负责该具体域名(如example.com
)的权威DNS服务器的地址。
- 本地DNS服务器接收到根DNS服务器的响应后,会向指定的TLD服务器(如
-
查询权威DNS服务器:
- 本地DNS服务器接收到TLD服务器的响应后,会向权威DNS服务器发送请求。权威DNS服务器是负责存储域名与IP地址映射关系的服务器,最终会返回目标域名的IP地址。
步骤 7: 返回结果
- 权威DNS服务器响应:权威DNS服务器将域名的IP地址返回给本地DNS服务器。
- 本地DNS服务器缓存和响应:本地DNS服务器将返回的IP地址缓存起来,并将其发送回客户端。
- 客户端接收IP地址:客户端接收到IP地址后,浏览器使用该IP地址与目标服务器建立连接,开始数据交换。
(3). DNS记录类型
在DNS解析过程中,常见的DNS记录类型包括:
- A记录:将域名映射到IPv4地址。
- AAAA记录:将域名映射到IPv6地址。
- CNAME记录:将一个域名别名指向另一个域名。
- MX记录:指定邮件服务器的地址。
- NS记录:指定域名的权威DNS服务器。
- PTR记录:用于反向DNS查找,将IP地址映射到域名。
- TXT记录:用于存储文本信息,常用于SPF、DKIM等验证机制。
(4). 缓存和TTL
- 缓存:为了提高解析效率和减少网络流量,DNS服务器会缓存域名的解析结果。客户端和DNS服务器都有缓存机制。
- TTL(Time to Live):DNS记录的TTL字段指定了记录在缓存中的有效时间。TTL到期后,DNS服务器需要重新查询权威DNS服务器以获取最新的记录。
(5). 故障排除
如果DNS解析失败,可以检查以下问题:
- DNS服务器是否正常运行:确保DNS服务器没有故障。
- 网络连接是否正常:检查客户端和DNS服务器之间的网络连接。
- DNS配置是否正确:检查DNS记录和服务器配置是否正确
2、绕过CDN查找主机真实IP的方法。
绕过CDN查找主机真实IP的方法包括:
-
DNS历史记录:通过查看DNS历史记录服务(如SecurityTrails或ViewDNS)来获取可能的IP地址。https://www.venuseye.com.cn/
-
DNS查找:使用
dig
或nslookup
工具检查是否有未被CDN保护的子域名。https://x.threatbook.com/v5/domain -
网络扫描:使用工具如Shodan或Censys扫描互联网以寻找暴露的IP地址。
-
HTTP头信息:有时在HTTP头信息中可以找到真实IP,尤其是使用反向代理时。
-
服务泄露:检查可能暴露的服务或端口,如通过公共漏洞扫描器。
3、子域名信息收集常用手段。
1. DNS查询
nslookup
和dig
:可以使用这些工具查询子域名。nslookup -type=any example.com dig example.com ANY
2. 子域名挖掘工具
-
空间测绘:https://fofa.info/
-
子域名挖掘机:https://github.com/euphrat1ca/LayerDomainFinderhttps://github.com/euphrat1ca/LayerDomainFinder
3. 在线服务
- VirusTotal:可以通过提交域名查看报告,报告中可能包含子域名信息。
- SecurityTrails:提供域名和子域名的详细信息。
- Shodan:可以搜索到暴露的子域名和相关信息。
- Censys:提供全面的互联网扫描数据。
4. 被动收集
- 公共数据源:如WHOIS记录、SSL证书等。可以通过证书透明日志查找关联的子域名。
- crt.sh:用于查询证书透明日志中的子域名。
4、Nmap全端口扫描
要快速扫描本地环回地址(127.0.0.1
)上的所有端口,可以使用Nmap的以下命令:
SYN半开扫描原理
SYN半开扫描(SYN Stealth Scan),也称为SYN扫描,是一种常见的端口扫描技术,其原理如下:
-
发送SYN包:扫描器向目标主机的特定端口发送一个SYN包(即TCP连接请求的一部分)。
-
观察响应:
- 开放端口:如果目标端口开放,目标主机将返回一个SYN-ACK包,表示它正在等待建立连接。扫描器随后发送一个RST包来重置连接,从而防止实际建立连接。
- 关闭端口:如果目标端口关闭,目标主机会返回一个RST包。
- 过滤端口:如果目标端口被防火墙或过滤器阻塞,扫描器将不会收到响应,或收到 ICMP 超时消息(这可能表明存在防火墙或过滤器)。
-
解析结果:通过分析这些响应,扫描器可以确定端口的状态(开放、关闭或过滤)。
优点:
- 隐蔽性:由于扫描器不会完成TCP三次握手,目标主机通常不会在日志中记录连接尝试,从而使扫描更加隐蔽。
- 效率:这种扫描方式比完整的TCP连接扫描(即进行三次握手)速度更快,因为它避免了完全建立连接的开销。
跳过主机存活检测扫描
在进行网络扫描时,有时你可能不需要进行主机存活检测(即不确认主机是否在线),而是直接扫描目标端口。这种方法可以通过以下Nmap选项实现:
使用 -Pn
选项
-Pn
(之前为 -P0
)选项告知Nmap跳过主机存活检测,直接进行端口扫描。默认情况下,Nmap会先执行主机存活检测来确定目标是否在线。如果使用 -Pn
选项,则跳过这一步骤,直接开始端口扫描。
跳过主机存活检测扫描
在进行网络扫描时,有时你可能不需要进行主机存活检测(即不确认主机是否在线),而是直接扫描目标端口。这种方法可以通过以下Nmap选项实现:
1. 使用 -Pn
选项
-Pn
(之前为 -P0
)选项告知Nmap跳过主机存活检测,直接进行端口扫描。默认情况下,Nmap会先执行主机存活检测来确定目标是否在线。如果使用 -Pn
选项,则跳过这一步骤,直接开始端口扫描。
命令示例:
nmap -Pn -p- 127.0.0.1
这个命令将对 127.0.0.1
执行全端口扫描,而不进行主机存活检测。
2. 与SYN半开扫描结合使用
要进行SYN半开扫描并跳过主机存活检测,可以结合使用 -sS
(SYN扫描)和 -Pn
选项:
命令示例:
nmap -sS -Pn -p- 127.0.0.1
总结
- SYN半开扫描:通过发送SYN包并根据响应来判断端口状态,是一种隐蔽且高效的扫描技术。
- 跳过主机存活检测:使用
-Pn
选项可以直接进行端口扫描而不确认主机是否在线,适用于特定需求和环境。
5、dirmap目录探测工具实践
实践,使用昨日搭建pikachu靶场
Dirmap扫描条数不一致可能由于以下原因:
- 网站内容变化:如果目标网站的文件或目录结构发生变化,扫描结果也会随之不同。
- 动态内容生成:某些网站可能基于请求生成不同的目录或文件,这影响扫描结果。
- 网络或权限限制:防火墙或权限设置可能影响扫描结果,导致有些条目被过滤掉。
- 工具配置:扫描工具的配置或更新可能影响结果,例如使用不同的字典或扫描策略。
高级应用技巧
dirmap
是一个强大的目录扫描工具,适用于发现网站隐藏目录和文件。要充分利用 dirmap
的功能,你可以使用以下高级应用技巧和策略:
-
使用自定义字典
自定义字典文件可以提高扫描的精确度。你可以根据目标网站的特性定制字典文件,包括常见的目录名、文件名以及特定的后缀名。python3 dirmap.py -i http://example.com -w /path/to/custom_wordlist.txt
-
指定多种扩展名
通过指定多种扩展名,能够检查不同类型的文件。这样可以发现.php
、.html
、.asp
等常见文件类型。python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -e php,html,js
-
调整线程数
通过增加线程数可以加快扫描速度,但要注意不要对目标网站造成过大的负担。根据网络速度和服务器性能调整线程数。python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -t 20
-
递归扫描
启用递归扫描以发现嵌套目录,尤其对于大型网站或复杂的目录结构很有用。python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -r
-
过滤 HTTP 状态码
使用过滤选项只显示特定状态码的结果,比如只关注返回 200 的目录和文件,忽略其他状态码。python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -x 404
-
保存和分析结果
将扫描结果输出到文件中,方便后续分析和记录。python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -o results.txt
高级配置示例
假设你需要对一个网站进行深入的扫描,你可以结合多个选项来实现:
python3 dirmap.py -i http://example.com -w /path/to/wordlist.txt -e php,html -t 50 -r -o scan_results.txt
提高扫描效率
- 使用合适的字典:一个好的字典文件能够显著提高扫描的成功率。可以从公开的字典库中获取或自行创建。
- 避免过于频繁的请求:使用适当的延迟(如果工具支持)来减少对目标网站的负担。
安全和合法性
- 授权:确保你获得了扫描目标的授权。未经授权的扫描可能会违反法律或网站的使用政策。
- 隐私和安全:处理扫描结果时应注意数据隐私和安全,不应公开敏感信息。