使用Wireshark分析SYN半连接扫描:从抓包到端口探测
一、实验背景
在网络渗透测试中,端口扫描是信息收集阶段的关键技术。SYN半连接扫描(SYN Stealth Scan)是一种隐蔽性较强的扫描方式,通过分析其流量特征可以帮助我们理解攻击原理并掌握防御方法。本文通过分析nmap.pcap
文件,结合Wireshark工具,还原SYN扫描的全过程。
二、实验步骤与分析
1. 打开抓包文件
使用Wireshark打开nmap.pcap
文件后,首先观察到大量来自IP地址192.168.177.155
的TCP连接请求(SYN包),目标IP为192.168.177.145
。以下是关键数据片段:
2.服务端响应分析
观察服务端192.168.177.145的响应数据包:
关键发现:
- 服务端对某些端口回复了RST/ACK包,表明这些端口处于关闭状态。
- 客户端未响应任何SYN/ACK包(即未发送第三次ACK包),符合SYN半连接扫描的特征:通过仅发送SYN包探测端口状态,不建立完整连接。
3. SYN半连接扫描原理
-
开放端口:若目标端口开放,服务端回复SYN/ACK。
-
关闭端口:若目标端口关闭,服务端回复RST/ACK。
-
隐蔽性:由于不完成三次握手,扫描行为更难被日志记录。
4. 使用过滤器定位开放端口
通过Wireshark过滤器筛选服务端回复的SYN/ACK包:
实验结果:
共过滤到15个SYN/ACK响应包,表明目标主机192.168.177.145开放了15个端口。
5. SYN半连接扫描流程总结
三、思考与启示
为什么SYN半连接扫描比TCP全连接扫描更隐蔽?
1、核心原理对比
- SYN半连接扫描(SYN Stealth Scan)
- 流程:发送SYN包 → 接收响应(SYN-ACK或RST)→ 不发送最终的ACK包。
- 特点:仅完成TCP三次握手的前两步,连接未完全建立。
- TCP全连接扫描(TCP Connect Scan)
- 流程:发送SYN包 → 接收SYN-ACK → 发送ACK包完成握手 → 立即发送RST终止连接。
- 特点:完整执行三次握手,建立并终止连接。
2、隐蔽性差异的四大原因
- 日志记录更少
- SYN扫描:目标系统通常不会记录未完成握手的SYN请求(取决于配置),隐蔽性高。
- 全连接扫描:完整的握手过程会被记录在系统日志(如
netstat
或防火墙日志)中,易被检测。
- 资源消耗更低
- SYN扫描:无需维护连接状态,仅发送单次SYN包,占用资源少。
- 全连接扫描:需为每个连接分配资源(如文件描述符),可能触发目标系统的连接数限制或防御机制。
- 流量特征更隐蔽
- SYN扫描:流量表现为离散的SYN包,与正常网络活动相似,不易被IDS/IPS识别。
- 全连接扫描:快速建立和终止大量连接,形成“短连接洪峰”,易被标记为异常流量。
- 绕过部分防御机制
-
SYN扫描:部分防火墙仅监控完整连接,对未完成握手的SYN包忽略。
-
全连接扫描:因完成握手,可能触发防火墙的行为分析规则或反扫描策略。
SYN半连接扫描和TCP全连接扫描对比:
特征 | SYN半连接扫描 | TCP全连接扫描 |
---|---|---|
日志记录风险 | 低(不完全连接) | 高(完整连接记录) |
系统权限要求 | 需要root权限 | 普通用户权限即可 |
绕过防火墙能力d | 较强(模拟异常流量) | 较弱(标准连接行为) |