20251911 2024-2025-2 《网络攻防实践》实践四报告
1. 实践内容
本次实践围绕TCP/IP协议栈中五种典型网络攻击展开,具体内容如下:
-
ARP缓存欺骗攻击:攻击者伪造ARP响应包,告诉目标主机“网关的MAC地址是攻击者的MAC地址”,使目标将本应发往网关的流量误发给攻击机。攻击机开启IP转发后,可在目标不知情的情况下实现中间人监听或篡改。
-
ICMP重定向攻击:利用ICMP重定向机制,攻击者伪装成网关向目标发送伪造的ICMP重定向报文,声称“去往外网走攻击机IP更近”。目标收到后更新路由缓存,将外网流量引向攻击机,攻击机再转发以维持上网功能。
-
SYN Flood攻击:针对TCP三次握手的半连接队列,攻击者向服务器发送大量伪造源IP的SYN请求。服务器为每个请求分配资源并等待ACK,但永远收不到最终确认,导致半连接队列耗尽,无法接受正常连接。
-
TCP RST攻击:利用TCP重置RST标志位,攻击者伪造源IP和目标端口,向通信一方发送窗口内有效的RST包,强制中断合法TCP连接。
-
TCP会话劫持攻击:攻击者通过中间人位置嗅探或猜测TCP序列号,伪造数据包插入现有会话,冒充其中一方发送指令。在明文协议中,可直接注入恶意命令。
2. 实践过程
2.1 环境准备与初始验证
2. 实践过程
前置ip与mac环境
| 名称 | IP地址 | MAC地址 |
|---|---|---|
| seedUbuntu | 192.168.200.65 | 00:0c:29:a6:5a:29 |
| kali | 192.168.200.64 | 00:0c:29:11:10:41 |
| WinXp | 192.168.200.66 | 00:0c:29:97:aa:11 |



首先确认各虚拟机网络互通。在 seedUbuntu 上分别 ping Kali 和 winXP,记录下响应情况。

然后执行 arp -n 查看当前的 ARP 映射表,确认各 IP 对应的 MAC 地址是真实的。

验证成功!
2.2 ARP 缓存欺骗攻击
目标:让 seedUbuntu 误以为 winXP 的 MAC 地址是 Kali 的 MAC。
操作:
-
在 Kali 上下载并安装 netwox 工具
-
执行欺骗命令:
netwox 80 -e 00:0c:29:11:10:41 -i 192.168.200.66其中
-e填入 Kali 的 MAC,-i填入 winXP 的 IP 地址。该命令会向局域网内发送伪造的 ARP 响应,声称192.168.200.66的 MAC 是 Kali 的 MAC。
![image]()
-
回到 seedUbuntu,再次执行
arp -n查看映射表。发现192.168.200.66对应的 MAC 已经变成了 Kali 的 MAC(00:0c:29:11:10:41),欺骗成功!
![image]()
2.3 ICMP 重定向攻击
目标:让 seedUbuntu 将外网流量的下一跳指向 Kali。
操作:
-
在 seedUbuntu 上 ping 百度,同时用 Wireshark 抓包,观察正常的 ICMP 报文。
![image]()
-
在 Kali 上执行:
netwox 86 -f "host 192.168.200.65" -g 192.168.200.64 -i 192.168.200.1
!! 参数含义:-f 指定受害者 IP(seedUbuntu),-g 指定伪造的“更优网关”(Kali),-i 指定真实网关。

-
用 Wireshark 在 Kali 上抓包,可以看到发出的 ICMP 重定向报文。
![image]()
-
回到 seedUbuntu,再次 ping 百度,观察路由表,发现下一跳变成了 Kali 的 IP,攻击生效。
![image]()
2.4 SYN Flood 攻击
目标:对 winXP 的 23 端口即Telnet发起拒绝服务攻击。
操作:
-
在 winXP 上启用 Telnet 服务,控制面板服务中开启。
![image]()
-
先用 Kali 尝试正常 Telnet 登录 winXP,确认服务可用。
![image]()
-
在 Kali 上执行:
netwox 76 -i 192.168.200.66 -p 23该命令向 winXP 的 23 端口发送大量伪造源 IP 的 SYN 包。
-
用 Wireshark 抓包,看到大量 SYN 标志的 TCP 包涌向
192.168.200.66,源地址随机。
![image]()
-
此时再次尝试从seedUbuntu Telnet 到 winXP,出现严重延迟或连接失败,说明半连接队列被占满。
2.5 TCP RST 攻击
目标:中断 seedUbuntu 与 winXP 之间已建立的 Telnet 连接。
操作:
-
在 seedUbuntu 上执行
telnet 192.168.200.66登录 winXP,保持会话。
![image]()
-
在 Kali 上执行 RST 攻击命令:
netwox 78 -i 192.168.200.66 --device eth0!!!注意:必须指定
--device eth0明确网卡接口,否则攻击可能无效。
![image]()
-
回到 seedUbuntu 的 Telnet 窗口,立即看到连接被强制关闭。
![image]()
Wireshark 中捕获到大量 RST 包,由 Kali 伪造发送。
![image]()
-
再次尝试从 seedUbuntu Telnet 到 winXP,发现短时间内无法成功连接,证明攻击有效。
![image]()
2.6 TCP 会话劫持攻击
目标:在中间人位置窃取 Telnet 登录的账号密码。
操作:
-
在 Kali 上启动 Ettercap 图形界面
![image]()
-
开始嗅探
![image]()
-
点击“Hosts” → “Scan for hosts”扫描网络内主机,然后在“Hosts list”中查看扫描结果。
![image]()
-
将 seedUbuntu 设置为 Target 1,winXP 设置为 Target 2。
![image]()
-
点击“MITM Menu” → “ARP poisoning”,勾选“Sniff remote connections”,启用中间人攻击。
![image]()
-
在 seedUbuntu 上执行
telnet 192.168.200.66并输入用户名和密码。
![image]()
-
在 Ettercap 中点击“View” → “Connections”,找到对应的 Telnet 记录,双击即可看到捕获的明文账号密码,会话劫持成功。
![image]()
3. 学习中遇到的问题及解决
-
问题2:ARP 欺骗后,目标主机偶尔出现断网现象。
- 原因分析:攻击机未开启 IP 转发,导致被欺骗的流量无法继续转发到真实网关。
- 解决方案:在攻击机上执行
sysctl net.ipv4.ip_forward=1开启转发,必要时同时欺骗网关实现双向劫持。!!!!!!!!
-
问题3:SYN Flood 攻击时,Kali 自身变得卡顿导致死机!。
- 原因分析:netwox 76 默认以较高速率发包,虚拟机资源有限导致响应慢。
- 解决方案:适当降低攻击强度,或给 Kali 分配更多 CPU/内存资源。实验时观察到现象后及时停止攻击即可。
4. 学习感想与体会
通过本次动手实验,我对几种经典网络攻击的触发条件和实现细节有了更直观的认识。尤其是对于ARP 欺骗,让我意识到,同一广播域内的主机之间缺乏身份验证,任何人都可以冒充他人。这解释了为什么ARP表在安全加固中很重要。对于ICMP 重定向攻击虽然现代操作系统有所限制,但在老系统或配置不当的环境中仍然有效,提醒我不能轻易信任控制报文。并且对于SYN Flood展示了资源耗尽类攻击的简单粗暴——不需要漏洞,只需要数量。这也让我理解了 SYN Cookie 机制(!!)的价值。
实验中也遇到一些小波折,通过查阅资料和请教同学,这些问题都得到了解决。总的来说,这次实践加深了我对 TCP/IP 协议栈安全弱点的理解,也提升了动手排错的能力。





















浙公网安备 33010602011771号