# 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
9a79d2b190021f11152a7e45fc1ba71

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

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

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

2.1 ARP缓存欺骗攻击

用Metasploitable ping win2k,ping通说明是连通的
b0533a088c9abf61526c2bdd62235df

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

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

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

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

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

2.2 ICMP重定向攻击

在seed虚拟机终端执行命令route -n,查看seed虚拟机的网关为192.168.77.2
e1d11cef64ccbfe1f364b78a4b2d5be

执行ping baidu.com,可以ping通
f35621b37ca13fec665b2f581e9d4f0

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

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

2.3 SYN Flood攻击

在Kali中打开Wireshark,选择eth0
5892b68082bdc088a5ba8422471d447

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

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

2.4 TCP RST攻击

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

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

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

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

2.5 TCP会话劫持攻击

在kali中打开Ettercap
c23d37c8eff60699f8a334a572a425a

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

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

选择target1和target2,开启arp poisoning
1776043347767

执行 telnet 192.168.77.130,建立telnet会话
937ef478d23acec7307a0a1edb9301c

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

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 系统基础这些底层知识,才是解决问题的核心。
这次踩坑的经历也改掉了我浮躁的毛病,遇到问题不再慌,学会了从现象定位根源、一步步排查验证。未来我也会更注重底层原理的学习,把每一个知识点真正学扎实,而不是只会照搬步骤。

参考资料

posted @ 2026-04-13 09:34  杨小烊  阅读(10)  评论(0)    收藏  举报