20242903 2024-2025-2 《网络攻防实践》实验四
1.实验任务:
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
2.前置知识
2.1 ARP缓存欺骗攻击
核心原理
通过伪造ARP应答包(ARP Reply),覆盖目标主机的ARP缓存表,使其将特定IP的流量错误导向攻击者MAC地址,形成中间人攻击。
关键技术点
- 持续发送单播/广播伪造ARP应答(需维持更新防止缓存恢复)
- 开启IP转发功能避免网络中断
- 可针对特定主机或全网段实施(如网关欺骗)
检测特征 - ARP表中同一IP地址对应多个MAC地址
- Wireshark捕获异常ARP报文(非请求的Reply包)
- 目标主机访问外网时出现间歇性卡顿
2.2 ICMP重定向攻击
核心原理
伪造源IP为网关的ICMP Redirect报文(Type 5),欺骗目标主机将流量重定向到攻击者指定地址。
关键技术点
- 攻击者必须与目标处于同一子网(ICMP Redirect仅在局域网生效)
- 需禁用目标的ICMP重定向防护
检测特征 - 异常ICMP Type 5报文(Payload指向非网关IP)
- 目标主机路由表出现非授权网关条目
- 特定IP段通信异常但其他流量正常
2.3 SYN Flood攻击
核心原理
伪造大量源IP的TCP SYN请求,耗尽目标主机的半连接队列资源(TCB表),导致拒绝服务。
关键技术点
- 使用随机源IP+端口组合规避黑名单
- 反射攻击模式(利用DNS/NTP服务器放大流量)
- 对抗SYN Cookie:构造偏移量正确的ACK包(需预测服务端ISN)
检测特征 - 每秒SYN包数量超过阈值(通常>500/s)
- SYN-ACK响应包无对应ACK回复(三次握手未完成)
- 目标服务器CPU占用率异常飙升
2.4 TCP RST攻击
核心原理
伪造携带正确序列号的TCP RST包,强制中断目标TCP连接。
关键技术点
- 序列号嗅探(需中间人位置)或预测(针对低熵序列号生成算法)
- 时间窗口攻击(在有效窗口期内发送大量RST包)
检测特征 - 合法连接突发RST中断(如SSH/Telnet会话突然断开)
- Wireshark显示RST包的Seq/Ack与上下文不连续
- 出现相同四元组的重复RST报文
2.5 TCP会话劫持攻击
核心原理
通过中间人窃取或预测序列号,向合法TCP会话注入伪造数据包。
关键技术点
- 实时计算Seq/Ack偏移量(需监听双向流量)
- 抑制原通信方响应(如通过ARP欺骗阻断ACK确认包)
- 劫持后维持会话状态(持续伪造ACK包防止超时)
检测特征 - 同一会话出现矛盾指令(如SSH会话执行未授权命令)
- 网络流量中出现突发的非连续Seq/Ack跳跃
- 服务器日志记录与客户端行为不符的操作
3.实验过程
实验环境为如图表:
| 名称 | IP地址 | MAC地址 |
|---|---|---|
| KALI | 192.168.200.6 | 00:0c:29:67:10:4c |
| WinXpattcker | 192.168.200.5 | 00-0C-29-C6-F7-79 |
| SEED | 192.168.200.3 | 00:0c:29:f4:64:40 |
3.1 ARP缓存欺骗攻击
查看kali、winXp和seed的IP和Mac地址如图



随后测试seed与winXp的连通性,可以看到seed是可以ping通winXp的,输入arp -a指令查看Arp表如下

随后下载Netwox工具,它是一个网络安全工具包,使用netwox 80 -e 00:0c:29:67:10:4c 1 -i 192.168.200.5命令欺骗Seed,seed原本要发送给winXp的数据包Mac地址被篡改为kali的,命令中80为工具编号 代表指定使用ARP缓存投毒攻击模块,1为布尔值表示启用持续ARP响应发送模式。

可以看到seed中的arp表被改变,随后再进行ping操作使用wireshark监听kali的eth0如下:


3.2 ICMP重定向攻击
在seed上查看输入route -n后查看路由表,默认的网关是192.168.200.1,这是我电脑主机本来的IP地址,随后输入ping www.baidu.com后世宇服务器110.242.68.66之间进行通信

随后kali输入netwox 86 -f "host 192.168.200.3" -g 192.168.200.6 -i 192.168.200.1指令,可以看到kali上icmp被重定向后的信息,seed上的下一跳地址也变为了kali的地址


3.3 SYN Flood攻击

首先开启winxp上的telnet服务

使用虚拟机kalitelnet登录到winXp上

随后输入netwox 76 -i 192.168.200.5 -p 23指令开始对于winxp用于telnet的23端口进行SYN Flood攻击在wireshark瞬间抓取到攻击的数据包如下

3.4 SYN RST攻击
在seed ubuntu上远程telnet连接winXp,此时是正常连接的

随后在kali中输入netwox 78 -i 192.168.200.5 --device eth0指令seed的telnet断开连接


使用wireshark 可以抓取到kali伪造了seed地址发送了多个带有RST标志的包

随后在seed端再次telnet尝试登录也无法进入到winXp中

3.4 TCP 会话劫持攻击
打开kali中的ettercap-pkexec工具

通过scan for host扫描网段中的主机

将seed和winxp添加到target1和2当中

点击MITM Attack: ARP Poisoning后确认

打开connections查看连接清单,telnet是23端口

可以看到telnet会话中的用户名和密码,这里我用户名输错输入backspace也体现了出来

4.学习中遇到的问题及解决
- 问题:wireshark无法抓取到SYN RST 攻击时的攻击包
- 问题解决方案:
![]()
未指定接口可能导致请求发送到错误网卡,因此在命令中通过--device指定eth0接口,随后能够抓取到
5.学习感悟、思考等
本次实验回顾了TCP/IP协议的架构,再次捡起了一下之前学习过的知识,并且通过通过ARP欺骗、SYN Flood、TCP RST等攻击实践验证了TCP/IP协议栈在无认证机制、弱随机性等设计的缺陷。同时熟系了Netwox/ettercap工具配合Wireshark完成流量分析取证的网络攻防初级体验。
浙公网安备 33010602011771号