1. DNS 解析的详细步骤
DNS(Domain Name System,域名系统)解析是一个将域名转换为 IP 地址的过程。
-
客户端查询本地缓存:客户端首先检查其本地缓存中是否已经有该域名对应的 IP 地址记录。
-
请求本地 DNS 服务器:如果没有找到记录,客户端会向本地 DNS 服务器发送查询请求。
-
本地 DNS 检查缓存:本地 DNS 服务器检查其缓存中是否有该域名的记录。
-
递归查询或迭代查询:如果本地 DNS 缓存中没有记录,它可能会进行递归查询或者迭代查询。
- 迭代查询:DNS 服务器只提供它知道的信息(通常是根 DNS 服务器的地址),然后客户端自己继续查询。
- 递归查询:DNS 服务器负责处理所有查询直到找到答案,并将结果返回给客户端。
-
根 DNS 服务器查询:如果是迭代查询,客户端会从根 DNS 服务器开始查询。
-
顶级域(TLD) DNS 服务器查询:根 DNS 服务器会指向相应的顶级域 DNS 服务器。
-
权威 DNS 服务器查询:顶级域 DNS 服务器会指向具体的权威 DNS 服务器,后者拥有最终的 IP 地址记录。
-
返回 IP 地址:最后,权威 DNS 服务器返回 IP 地址给上一级 DNS 服务器,直至客户端。
-
缓存结果:所有参与查询过程的 DNS 服务器都会将结果缓存起来,以备后续使用。
2. 绕过 CDN 查找主机真实 IP 的方法
1.使用 Whois 查询:有时候可以通过 WHOIS 数据库来获取一些有用的信息。
2.查找非 CDN 资源:有些网站可能有一些资源(如图片或脚本文件)并未通过 CDN 分发,直接访问这些资源可能会暴露真实 IP。
3.利用 DNS 记录:查看 MX 或 TXT 记录等其他 DNS 记录,这些记录有时会指向真实的服务器 IP。
4.使用特定工具:有些工具可以帮助识别 CDN 后面的真实 IP,比如使用 Shodan 进行搜索。
3. 子域名信息收集常用手段
收集子域名信息对于渗透测试和安全审计非常重要。常用的手段包括:
1.使用子域名枚举工具:例如 Sublist3r, Subfinder, Amass 等工具可自动发现子域名。
2.分析证书透明度日志:TLS/SSL 证书通常包含子域名信息,可以通过证书透明度日志来查找这些信息。
3.利用搜索引擎:Google 和 Bing 等搜索引擎可以用来查找公开的子域名信息。
4.扫描 DNS 记录:通过扫描目标的 DNS 区域记录来发现未知的子域名。
5.使用社交工程:有时可以通过观察社交媒体和官方文档来找到未公开的子域名信息。
4.Nmap 全端口扫描
Nmap(Network Mapper)是一款强大的网络扫描工具,它可以用来探测网络中的主机和服务。进行全端口扫描意味着扫描目标主机的所有端口(通常是从 0 到 65535)。这种类型的扫描非常全面但也较为耗时,并且可能会触发目标系统的入侵检测系统(IDS)或防火墙。
扫描本地回环,全端口扫描 nmap -p 1-65535 -T4 -A -v 127.0.0.1
思考题
SYN 半开扫描(SYN Scan)原理
SYN 半开扫描是 Nmap 中最常用的扫描类型之一,它基于 TCP 协议的三次握手机制。在正常的 TCP 连接建立过程中,客户端首先发送一个 SYN(同步)数据包到服务器的指定端口,服务器收到后回应一个 SYN+ACK(同步确认)数据包,客户端再发送一个 ACK 数据包来完成连接的建立。而在 SYN 半开扫描中,客户端仅发送一个 SYN 数据包,并等待服务器的响应,但不再发送 ACK 数据包来完成连接建立。
跳过主机存活检测(Host Discovery)原理
在默认情况下,Nmap 会在扫描之前进行主机存活检测,以确定目标主机是否在线。这一步骤可以通过发送 ICMP 请求(如 ping 请求)、TCP SYN 数据包或其他方式来实现。跳过主机存活检测意味着不执行这一步骤,而是直接对目标主机进行端口扫描。
跳过主机存活检测扫描使用常见:
-sS:使用 SYN 扫描进行端口扫描,这是一种隐蔽且快速的扫描方式。
-Pn:跳过主机存活检测,可以提高扫描速度并减少被检测的可能性,但在使用时需要注意准确性问题以及潜在的风险。
5.DirMap 目录勘测工具实践
DirMap 是一款用于目录遍历和文件泄露漏洞探测的工具。它可以帮助用户快速找到网站中存在的隐藏目录、文件和其他敏感资源。
在Windows Powershell中安装依赖:
问题:找不到imp模块
在 Python 3 中,imp
模块已经被移除,取而代之的是 importlib
模块。
解决方案
- 修改源代码:
- 打开
E:\shixi\dirmap-master\dirmap-master\lib\core\option.py
文件。 - 将第一行的
import imp
替换为使用importlib
的相应代码。将以下代码替换到
option.py
文件中相应的import imp
位置:from importlib import util
- 打开
打开dirmap查看操作指南
运行dirmap.py
输入python dirmap.py -i 127.0.0.1 -lcf运行dirmap.py扫描
为什么dirmap每次扫描条数不一样
答:
-
动态内容:
如果目标网站包含动态生成的内容,那么每次请求可能会返回不同的页面或资源列表。 -
随机性:
dirmap
可能使用了一些随机性来优化扫描效率,例如在扫描过程中随机选择待扫描的目录或文件。 -
缓存影响:
浏览器或代理服务器的缓存可能会导致重复或不同的响应。 -
服务器状态:
服务器的状态可能会改变,例如某些资源可能暂时不可用或已被删除。 -
扫描参数:
每次扫描时使用的参数可能不同,例如使用的字典文件、扫描深度、扫描速度等。 -
网络状况:
网络状况的变化,如延迟、丢包等,也可能影响扫描结果。 -
并发度:
dirmap
支持并发扫描,每次扫描时的并发请求数量可能会有所不同,这也会影响扫描结果的数量。 -
扫描策略:
dirmap
可能有不同的扫描策略,例如是否使用递归扫描、是否使用深度优先或广度优先等,这些策略的不同也会导致结果数量的变化。 -
重试机制:
如果某个请求失败了,dirmap
可能会有重试机制,重试次数或重试间隔的不同也会导致结果数量的变化。
dirmap高级应用:
根目录下的dirmap.conf
文件通常是 dirmap
工具的一个配置文件,它用于设置工具的行为和参数。高级配置实例有多线程扫描,自定义字典,高级扫描模式,网络超时重试,代理支持等。详细工具需在dirmap.conf中进行配置。
6.Fscan 实践指南
在fscan.exe文件目录下打开Windows Powershell
7、课上所演示插件安装成功截图