30 lines
2.1 KiB
Markdown
30 lines
2.1 KiB
Markdown
### 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 规范略有不同
|
||
|
||
|
||
|
||
**2. 空扫描 (Null Scan)**
|
||
|
||
- **命令**:`nmap -sN <target>`
|
||
- **原理**:
|
||
- 空扫描的原理与 FIN 扫描类似,也基于 TCP 协议规范
|
||
- 攻击者向目标端口发送一个**没有任何标志位**(`SYN`, `ACK`, `FIN`, `RST` 等)的 TCP 数据包
|
||
- **如果端口是关闭的**:根据 TCP 协议规范,目标系统会回复一个带有 **`RST`** 标志位的 TCP 包
|
||
- **如果端口是开放的**:根据 TCP 协议规范,目标系统会忽略这个包,**不回复任何信息**
|
||
- **优点**:
|
||
- **极度隐蔽**:由于发送的数据包没有任何标志位,空扫描比 FIN 扫描更具隐蔽性,因为数据包看起来像是损坏或无效的,许多 IDS 可能会直接忽略它
|
||
- **缺点**:
|
||
- **Windows 兼容性**:与 FIN 扫描一样,空扫描在 Windows 系统上同样表现不佳,即使端口开放,也可能收到 `RST` 回复,导致误报 |