20251918 2025-2026-2 《网络攻防实践》第4次作业
1.实践内容
1、主要任务
1、ARP 缓存欺骗攻击
利用 ARP 协议无状态验证的缺陷,伪造 ARP 回复包以篡改目标主机的 ARP 缓存表,从而为中间人攻击奠定基础。
2、ICMP 重定向攻击
利用 ICMP 重定向机制的缺陷,伪造重定向报文,诱使目标主机修改其路由路径,将后续流量引向攻击者指定的网关。
3、SYN Flood 攻击
向目标主机的特定 TCP 端口发送大量伪造的 SYN 请求,耗尽半连接队列资源,导致正常用户无法建立连接,用以模拟拒绝服务攻击。
4、TCP RST 攻击
通过伪造匹配合法连接序列号窗口的 TCP RST 包,强制中断正在进行的 TCP 会话,验证 TCP 连接重置攻击的可行性。
5、TCP 会话劫持攻击
在嗅探到合法 TCP 连接的序列号与确认号后,伪造数据包向目标服务器注入恶意命令,实现在不中断连接情况下的未授权操作。
2、实验环境
本次实验使用之前搭建的攻防环境:Kali 作为攻击机(192.168.200.5),SEED Ubuntu(192.168.200.13)和 WinXPattacker(192.168.200.10)作为辅助实验机。所有攻击均在隔离的实验网络中进行。
3、知识点梳理
3.1 ARP协议与ARP缓存欺骗
ARP协议原理
ARP(地址解析协议)用于将IP地址解析为MAC地址,工作在数据链路层与网络层之间。主机通信前广播ARP请求:“谁拥有这个IP?”目标主机回复自身MAC地址。每个操作系统维护一个ARP缓存表,记录IP-MAC映射,并设置老化时间(通常几十秒到几分钟),超时后重新解析。
ARP缓存欺骗原理
ARP协议无状态:主机收到ARP回复包即信任并更新缓存,无论是否曾发送请求。攻击者伪造ARP回复包,将网关IP(或其他合法IP)映射到自己的MAC地址。此后受害主机发往网关的数据会被攻击机接收。若攻击机开启IP转发,可将数据转发给真实网关,从而实施中间人攻击(MITM)。
3.2 ICMP重定向攻击
ICMP重定向原理
ICMP重定向报文由路由器发出,通知主机“前往某目的IP存在更优的下一跳”,以优化路由。主机据此更新本地路由表。
攻击原理
攻击者伪造ICMP重定向包,冒充网关告知受害主机:“访问某特定IP(如靶机)应走攻击机”。若受害主机接受该重定向,后续发往该IP的流量将被送至攻击机。攻击机可开启IP转发,维持通信的同时进行监听或数据篡改。
3.3 TCP SYN Flood攻击
TCP三次握手与半连接队列
TCP连接需三次握手:SYN → SYN+ACK → ACK。服务器收到SYN后创建半连接条目(SYN_RECV状态),放入有限大小的半连接队列,等待最终ACK。
SYN Flood原理
攻击者发送大量伪造源IP的SYN包到目标端口。服务器回复SYN+ACK后永远等不到ACK,半连接队列迅速占满,导致正常用户的SYN请求被丢弃或严重延迟,服务不可用。这是一种典型的拒绝服务(DoS)攻击。常见防御包括SYN Cookie、增大半连接队列等。
3.4 TCP RST攻击
TCP RST报文
RST标志位用于异常终止连接。若主机收到不属于任何现有连接的包或序列号明显错误,会回复RST强制断开。RST攻击即伪造RST包中断合法连接。
攻击原理
攻击者嗅探合法连接的源IP、目标IP、端口以及当前序列号(只要落在对端窗口内即可),构造RST包发送给其中一方。对方收到后立即关闭连接。该攻击可用于阻断通信或踢除特定用户。
3.5 TCP会话劫持
会话劫持原理
TCP数据包携带序列号(SEQ)和确认号(ACK),保证可靠传输。攻击者通过嗅探获取合法连接的SEQ/ACK值后,可伪造数据包注入恶意载荷。因序列号正确,接收方将其视为连接的一部分,从而实现未授权命令注入。
2.实践过程
1.ARP缓存欺骗攻击
(1)查看arp缓存表
在kali 2025.4依次执行以下命令,目的是查看并记录当前活跃主机ip和mac,然后ping WinXPattacker目的主机,刷新查看arp缓存
nmap -sP 192.168.200.0/24
ping 192.168.200.10
arp -a


(2)在kali主机上安装netwox工具
依次执行以下代码
sudo apt update
sudo apt install netwox

安装成功后输入netwox显示如下

(3)通过指令修改arp缓存,使靶机的ip地址指向攻击机的mac地址
在靶机WinXPattacker上执行以下命令
ping 192.168.200.5

arp -n

然后在攻击机kali 2025.4执行以下指令
netwox 80

sudo netwox 80 -e 00:0c:29:9d:3b:72 -i 192.168.200.1 -E 00:0c:29:2c:8f:47 -I 192.168.200.10
这时再回到靶机执行
arp -a

可以发现网卡192.168.200.1的mac地址已经被修改了
最后使用以下命令清空arp缓存并恢复,再验证

2.ICMP重定向攻击
在攻击机kali 2025.4上执行
开启 IP 转发
sudo sysctl net.ipv4.ip_forward=1
启动 ICMP 重定向攻击(持续运行)
sudo netwox 86 -g 192.168.200.5 -f "host 192.168.200.10"
在另一个终端查看 ICMP 重定向包
sudo tcpdump -i eth0 -n icmp

在靶机SEED Ubuntu上ping 192.168.200.10,可以看到下一跳是攻击机kali的ip

此时在攻击机注意到tcpdump 显示 ICMP 重定向包

3.SYN Flood攻击
在SeedUbuntu上打开wireshark抓包,使用telnet访问服务器(使用luit -encoding gbk 避免中文乱码)
sudo wireshark # 选择eth6进行抓包
luit -encoding gbk telnet bbs.newsmth.net

攻击机kali 2025.4上执行以下命令
netwox 76 -i 192.168.200.13 -p 23
使用netwox 76 -i 192.168.188.3 -p 23命令后这时观察到SeedUbuntu明显变卡,CPU 使用率升高
在攻击机kali 2025.4上ctrl+c中断命令后,查看SeedUbuntu上的wireshark,发现大量tcp包出错

4.TCP RST攻击
在SeedUbuntu上打开wireshark抓包,使用telnet访问服务器
sudo wireshark # 选择eth6进行抓包
luit -encoding gbk telnet bbs.newsmth.net

在攻击机上执行sudo netwox 78

切回SeedUbuntu,发现连接中止,同时得到一些tcp连接错误的包

5.TCP会话劫持攻击
在kali 2025.4执行以下命令
sudo ettercap -G

单击右上角的对号,开始嗅探。
单击“...”-“hosts”-“Scan for hosts”,开始扫描网络中的主机。
单击“...”-“Hosts”-“Hosts list”,查看扫描出来的主机。

选择SEED Ubuntu主机,将其添加到Target1中;选择WinXPattacker靶机,将其添加到Target2中。

点击MITM并运行ARP Poisoning。


回到 Kali 的 Ettercap 界面,点击 View → Connections



回到SEED Ubuntu向Linux靶机发起登陆telnet 192.168.200.10

在kali里面可以看到自己输入的内容

3.学习中遇到的问题及解决
问题1、WinXPattacker无法启动Telnet服务

解决方法:

问题二、执行第五个实验时只有两个主机

解决方法:单击“...”-“hosts”-“Scan for hosts”,开始扫描网络中的主机。
4.学习感想和体会
本次实验使我通过实践验证了多种网络协议攻击的原理。ARP欺骗、SYN Flood、TCP会话劫持等概念此前仅停留在理论层面,经过实际操作后,我对它们的实现机制有了更清晰的理解。ARP缓存欺骗实验揭示了ARP协议无状态验证的安全风险:攻击者伪造ARP回复包即可将受害主机流量重定向至攻击机。ICMP重定向攻击同样体现了协议对报文来源的过度信任,攻击者冒充网关即可静默修改受害主机的路由表。SYN Flood攻击演示了半连接队列资源耗尽对服务可用性的影响,大量伪造SYN请求可导致正常连接被丢弃。TCP会话劫持实验给我留下了较深印象。通过嗅探获取合法连接的序列号与确认号后,攻击者可伪造数据包注入恶意命令,直观体现了明文传输协议(如Telnet)的脆弱性。TCP RST攻击则展示了强制中断合法连接的能力。实验中也遇到了一些问题,如Kali密钥过期、netwox参数不熟、Win2K的Telnet服务默认禁用等,通过查阅资料得以解决。本次实验加深了我对TCP/IP协议栈安全缺陷的理解,也强化了自身的网络安全意识。作为学习者,既应掌握攻击手法,也需从防御角度思考,通过加密、认证、监控等手段防范攻击。
浙公网安备 33010602011771号