TCP的端口扫描技术详解
字数 1035 2025-11-15 14:37:24
TCP的端口扫描技术详解
一、知识点描述
端口扫描是计算机网络中的一种技术,用于探测目标主机上开放的网络端口。通过向目标主机的特定端口发送探测数据包,根据响应判断端口状态(开放、关闭、过滤等)。这是网络诊断、安全评估和渗透测试中的基础技术,涉及TCP/IP协议栈的深层交互。
二、端口状态类型
- 开放:有应用程序正在该端口监听连接
- 关闭:没有应用程序监听,但主机会返回拒绝数据包
- 过滤:防火墙拦截了探测包,无法获得明确响应
三、经典扫描技术详解
3.1 TCP连接扫描(全连接扫描)
- 原理:完成完整的三次握手
- 步骤:
- 扫描器向目标端口发送SYN包
- 若返回SYN/ACK,说明端口开放 → 扫描器发送ACK完成握手后立即发送RST断开
- 若返回RST,说明端口关闭
- 无响应可能为过滤状态
- 特点:准确率高但易被日志记录
3.2 SYN扫描(半开放扫描)
- 原理:只进行三次握手的前两步
- 步骤:
- 发送SYN包(伪造源IP避免追踪)
- 收到SYN/ACK判断为开放 → 直接回复RST终止握手
- 收到RST判断为关闭
- 优势:比全连接扫描更隐蔽快速
3.3 FIN扫描
- 原理:利用TCP规范异常处理
- 步骤:
- 向端口发送FIN包(正常FIN应在建立连接后使用)
- 若端口关闭,目标按协议要求返回RST
- 若端口开放,可能丢弃FIN包不响应
- 适用场景:可绕过简单防火墙
3.4 NULL扫描和Xmas扫描
- NULL扫描:发送所有标志位为0的TCP包
- Xmas扫描:发送所有标志位(FIN/URG/PSH)置1的"圣诞树包"
- 判断逻辑:与FIN扫描类似,依赖系统协议栈实现差异
四、高级扫描技术
4.1 空闲扫描
- 原理:利用僵尸主机作为跳板进行隐蔽扫描
- 关键步骤:
- 探测僵尸主机的IPID(IP包标识符)
- 伪造源IP为僵尸主机向目标发送SYN
- 通过监测僵尸主机IPID的变化推断端口状态
- 优势:实现完全匿名扫描
4.2 UDP端口扫描
- 挑战:UDP无握手机制,可靠性低
- 方法:发送UDP包后根据"ICMP端口不可达"消息判断关闭状态
五、防御措施
- 防火墙配置:最小化开放端口,设置默认拒绝策略
- 入侵检测系统:监控异常连接模式
- 端口欺骗:对扫描端口返回虚假响应
- 速率限制:限制单位时间内的连接请求数
六、技术演进
现代扫描工具(如Nmap)会组合多种技术,通过操作系统指纹识别、服务版本探测等增强扫描精度,同时采用随机延迟、分片传输等技术规避检测。