# 20251916 2025-2026-2 《网络攻防实践》实践4报告
1.实验内容
1.ARP 缓存欺骗攻击:利用 ARP 协议无身份验证的缺陷,篡改目标主机 ARP 缓存表,实现流量中间人劫持;
2.ICMP 重定向攻击:伪造 ICMP 重定向报文,篡改目标主机路由表,诱导流量导向攻击机;
3.SYN Flood 攻击:发送大量伪造 SYN 报文耗尽目标主机 TCP 半连接队列,达成拒绝服务效果;
4.TCP RST 攻击:伪造携带 RST 标志位的 TCP 报文,强制断开目标主机与远程主机的 TCP 连接;
5.TCP 会话劫持攻击:结合 ARP 欺骗搭建中间人环境,监听并伪造 TCP 会话数据包,接管目标主机合法会话。
实践围绕协议底层安全缺陷展开,覆盖攻击工具使用、流量抓包验证、环境恢复全流程,旨在深入理解 TCP/IP 协议栈的安全漏洞与攻击利用逻辑。
2.实验过程
查看win2k靶机的IP地址为192.168.77.133,MAC地址为00:0c:29:A3:48:43

启动kali虚拟机,执行命令ip a,查看kali虚拟机的IP地址和MAC地址为IP:192.168.77.128,MAC:00:0c:29:2c:cb:52

执行命令ifconfig,查看seed虚拟机的IP地址为192.168.77.131,MAC地址为00:0c:29:27:2a:6c

查看虚拟机Metasploitable的IP地址为192.168.77.132,MAC地址为00:0c:29:36:e7:25

2.1 ARP缓存欺骗攻击
用Metasploitable ping win2k,ping通说明是连通的

执行命令arp -a查看当前的ARP缓存信息,可以看见输出的MAC地址与win2k的MAC地址相吻合

执行命令sudo apt install netwox,安装netwox

执行sudo netwox 80 -e 00:0C:29:2c:cb:52 -i 192.168.77.133,向靶机发送伪造 ARP 响应

再次用Metasploitable ping win2k,发现ping不通

执行arp -a,查看ARP缓存表,发现MAC地址已被改变

2.2 ICMP重定向攻击
在seed虚拟机终端执行命令route -n,查看seed虚拟机的网关为192.168.77.2

执行ping baidu.com,可以ping通

执行netwox 86 -f “host 192.168.77.131” -g 192.168.77.128 -i 192.168.77.2,启动ICMP重定向攻击

再次用seed ping baidu.com,发现靶机路由表被篡改,流量首跳变为攻击机

2.3 SYN Flood攻击
在Kali中打开Wireshark,选择eth0

在SEED上执行命令luit -encoding gbk telnet bbs.mysmth.net访问清华bbs服务器

用Wireshark 抓包,可见大量 SYN 报文,无 ACK 报文响应,半连接队列被占满

2.4 TCP RST攻击
在SEED上执行命令luit -encoding gbk telnet bbs.mysmth.net访问清华bbs服务器

在kali上执行命令sudo netwox 78 -i 192.168.77.131

返回SEED虚拟机,可见连接已经断开

在kali中打开wireshark,发现攻击机向靶机发送了RST包

2.5 TCP会话劫持攻击
在kali中打开Ettercap

点击scan for hosts开始扫描网络中的主机,在hosts list中查看扫描出来的主机

右键点击192.168.77.131,设置为target1;右键点击192.168.77.130,设置为target2

选择target1和target2,开启arp poisoning

执行 telnet 192.168.77.130,建立telnet会话

到 Ettercap,点击Connections刷新列表,找到对应端口 23 的 Telnet 连接,双击即可看到明文的账号密码、执行的所有命令

3.学习中遇到的问题及解决
- 问题1:Telnet 连接 WinXP 报错 Connection refused
- 问题1解决方案:WinXP 中打开「服务」,将 Telnet 服务启动类型改为手动 / 自动,启动服务,确认 23 端口处于 LISTENING 状态
- 问题2:Ettercap 中 Telnet 会话 Transferred bytes: 0,无法捕获账号密码、完成会话劫持
- 问题2解决方案:攻击前开启 Kali IPv4 流量转发:sudo sysctl -w net.ipv4.ip_forward=1,清空 iptables 防火墙规则
4.学习感悟、思考等)
这次实验让我真切体会到了实操和书本学习的差距。
最开始我以为照着实验步骤敲命令就能完成,前几个实验都比较顺利,当做到TCP会话劫持实验时,从 Telnet 服务装不上、靶机连接被拒,到 Ettercap 抓不到明文密码,一路踩满了坑。一开始对着满屏的报错只会乱搜命令,根本搞不懂问题出在哪,后来沉下心一步步拆解,才明白我连报错背后的基础逻辑都没摸透 —— 比如为什么服务装了却找不到单元、连接被拒的根源有哪些,这些都是书本里没讲透的实操细节。
这次实验也让我对网络安全有了真实的体感:原来明文传输的风险这么大,一个简单的 Telnet 登录,账号密码就能被中间人轻易偷走。同时我也明白,网络攻防从来不是靠工具 “一键操作”,TCP/IP 原理、Linux 系统基础这些底层知识,才是解决问题的核心。
这次踩坑的经历也改掉了我浮躁的毛病,遇到问题不再慌,学会了从现象定位根源、一步步排查验证。未来我也会更注重底层原理的学习,把每一个知识点真正学扎实,而不是只会照搬步骤。

浙公网安备 33010602011771号