Files
Sec-Interview/Chapter1/1-18.md
T
2025-09-25 03:18:53 +08:00

28 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 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` 回复,导致误报