Nmap 的 FIN 扫描和空扫描是什么
1. FIN 扫描 (FIN Scan)
- 命令:
nmap -sF <target>
- 原理:
- FIN 扫描的原理基于 TCP 协议的 RFC 793 规范
- 攻击者向目标端口发送一个只包含
FIN
(Finish)标志位的 TCP 数据包 - 如果端口是关闭的:根据 TCP 协议规范,目标系统会回复一个带有
RST
(Reset)标志位的 TCP 包,表示连接已重置 - 如果端口是开放的:根据 TCP 协议规范,目标系统会忽略这个包,不回复任何信息
- 优点:
- 隐蔽性:由于不进行完整的三次握手,许多基本的防火墙和 IDS 都不会记录这种连接尝试,从而使扫描行为更加隐蔽
- 绕过状态防火墙:一些状态防火墙只跟踪那些以
SYN
包开始的连接。由于 FIN 扫描不使用SYN
包,因此可以绕过这类防火墙
- 缺点:
- Windows 兼容性:FIN 扫描在许多非 Windows 系统(如 Linux、BSD)上表现良好,但在 Windows 系统上,即使端口是开放的,它也可能回复一个
RST
包,导致扫描结果不准确。这是因为 Windows 系统的 TCP/IP 栈实现与 RFC 规范略有不同
- Windows 兼容性:FIN 扫描在许多非 Windows 系统(如 Linux、BSD)上表现良好,但在 Windows 系统上,即使端口是开放的,它也可能回复一个
2. 空扫描 (Null Scan)
- 命令:
nmap -sN <target>
- 原理:
- 空扫描的原理与 FIN 扫描类似,也基于 TCP 协议规范
- 攻击者向目标端口发送一个没有任何标志位(
SYN
,ACK
,FIN
,RST
等)的 TCP 数据包 - 如果端口是关闭的:根据 TCP 协议规范,目标系统会回复一个带有
RST
标志位的 TCP 包 - 如果端口是开放的:根据 TCP 协议规范,目标系统会忽略这个包,不回复任何信息
- 优点:
- 极度隐蔽:由于发送的数据包没有任何标志位,空扫描比 FIN 扫描更具隐蔽性,因为数据包看起来像是损坏或无效的,许多 IDS 可能会直接忽略它
- 缺点:
- Windows 兼容性:与 FIN 扫描一样,空扫描在 Windows 系统上同样表现不佳,即使端口开放,也可能收到
RST
回复,导致误报
- Windows 兼容性:与 FIN 扫描一样,空扫描在 Windows 系统上同样表现不佳,即使端口开放,也可能收到