常见的端口扫描
以下是端口扫描方式的详细解释,包括其工作原理、特点和应用场景:
1. 完全连接扫描(Full Connect Scan)
-
原理:
扫描器尝试与目标主机的指定端口完成完整的 TCP 三次握手:- 发送
SYN
报文; - 接收到目标返回的
SYN-ACK
; - 再发送
ACK
报文,建立连接。
如果连接成功建立,说明该端口处于 开放(Open) 状态;若返回
RST
(复位),则端口为 关闭(Closed)。 - 发送
-
特点:
- 扫描结果准确、可靠;
- 容易被目标主机的日志系统记录(因为连接已建立);
- 扫描行为明显,隐蔽性差;
- 常用于对安全性要求不高或允许深度探测的环境。
-
应用场景:
适用于内部网络安全检测、服务可用性测试等需要高准确率的场景。
2. 半连接扫描(Half-Open Scan / SYN 扫描)
实际上 SYN扫描就是最常见的半连接扫描。解释如下:
✅ SYN 扫描(Syn Scan)—— 半连接扫描的典型代表
-
原理:
扫描器只完成三次握手的前两步:- 发送
SYN
报文; - 接收到目标返回的
SYN-ACK
(表示端口开放); - 不发送第三次
ACK
,而是直接断开连接(可能发送RST
复位)。
这样,连接并未真正建立,称为“半连接”。
- 发送
-
特点:
- 不建立完整连接,隐蔽性强,不易被应用层日志记录;
- 扫描速度快、效率高;
- 能区分开放、关闭和过滤状态;
- 被大多数防火墙和入侵检测系统(IDS)识别为可疑行为;
- 是 Nmap 默认的扫描方式(
nmap -sS
)。
-
应用场景:
广泛用于网络渗透测试、安全评估中的端口发现阶段。
📌 注:“半连接扫描”是一个泛称,SYN 扫描是其最常见实现方式。
3. FIN 扫描(FIN Scan)
-
原理:
扫描器向目标端口发送一个 FIN 报文(结束连接标志),而不建立任何连接。根据返回的响应判断端口状态:- 如果端口 关闭,目标通常会返回
RST
; - 如果端口 开放,许多操作系统会直接丢弃 FIN 报文(无响应);
- 因此,无响应通常被认为是端口开放的迹象。
- 如果端口 关闭,目标通常会返回
-
特点:
- 完全不建立连接,高度隐蔽;
- 不触发服务日志,难以被传统防火墙发现;
- 依赖操作系统对 TCP 协议栈的实现差异,结果不总是可靠;
- 对 Windows 系统效果差(Windows 通常会对 FIN 回复 RST),但在某些类 Unix 系统上有效;
- 使用命令:
nmap -sF
。
-
应用场景:
用于绕过防火墙或 IDS 的检测,适用于高级渗透测试中的隐蔽探测。
总结对比表
扫描方式 | 是否完成三次握手 | 隐蔽性 | 准确性 | 是否易被记录 | 典型工具/命令 |
---|---|---|---|---|---|
完全连接扫描 | 是(三次握手) | 低 | 高 | 是 | nmap -sT |
SYN 扫描 | 否(只两次) | 中高 | 高 | 较难(未完成) | nmap -sS (默认) |
FIN 扫描 | 否(无连接) | 高 | 中 | 难 | nmap -sF |
补充说明
-
为什么 FIN 扫描能绕过防火墙?
因为正常的 TCP 连接应以 SYN 开始,而直接发送 FIN 的数据包在正常通信中不会出现,部分防火墙或日志系统可能忽略此类异常包,从而实现“隐身”扫描。 -
注意事项:
所有扫描行为在未经授权的情况下对他人网络进行探测均可能违法,请仅在合法授权范围内使用(如安全测试、CTF竞赛、自我系统检测)。
如果您还想了解其他扫描方式(如 ACK 扫描、NULL 扫描、UDP 扫描等),欢迎继续提问!