20253920 2025-2026-2 《网络攻防实践》第4次作业
20253920 2025-2026-2 《网络攻防实践》第4次作业
1.实践内容
本实验在网络攻防实验环境中,以 Kali Linux 2025.4为攻击机,针对SEEDUbuntu9、Metasploitable Ubuntu等靶机,完成 TCP/IP 协议栈核心协议的 5 类经典攻击实践,覆盖协议层从数据链路层到传输层的全链路脆弱性验证:
- ARP 缓存欺骗攻击:ARP(地址解析协议)负责将 IP 地址映射为 MAC 地址,由于协议在设计时未加入身份验证与完整性校验机制,攻击者可在局域网内持续发送伪造 ARP 应答报文,误导靶机将攻击机 MAC 地址误认为网关或其他主机 MAC,从而劫持靶机通信流量,为中间人攻击奠定基础。利用 ARP 协议无认证缺陷,在 Kali 中启动 arpspoof 对靶机实施持续 ARP 欺骗,伪造网关与靶机之间的 MAC 映射关系。通过 Wireshark 捕获伪造 ARP 报文,在靶机使用 arp -a 查看缓存变化,验证流量已被劫持至攻击机,成功构建中间人链路。
- ICMP 重定向攻击:ICMP 重定向原本是路由器向主机发送的路由优化消息,攻击者利用该机制缺乏源地址验证的缺陷,伪造网关发送 ICMP 重定向报文,诱导靶机修改本地路由表,将正常外网流量强制转发至攻击机,实现路由劫持与流量监听。使用 netwox 构造伪造的 ICMP 重定向报文,伪装成网关向靶机发送路由调整指令,使靶机错误更新路由表。攻击过程中观察靶机访问外网时的路由变化,验证攻击机可成功接管靶机外出流量,同时解决因未开启 IP 转发导致的靶机断网问题。
- SYN Flood 拒绝服务攻击:该攻击利用 TCP 三次握手的设计弱点,由攻击机批量发送源地址伪造的 SYN 连接请求包。靶机收到后会回复 SYN+ACK 并分配资源维持半开连接,而虚假源地址不会返回最终 ACK,最终导致靶机连接资源耗尽,无法响应正常用户请求,形成拒绝服务(DoS)。针对 Metasploitable Ubuntu 等靶机发起 SYN Flood 攻击,批量发送伪造源 IP 的 SYN 报文至 23 等常用端口。通过 Wireshark 分析海量虚假 SYN 流量,在靶机查看大量 SYN_RECV 半连接状态,验证系统资源耗尽、服务不可用的拒绝服务效果。
- TCP RST 攻击:利用 TCP 协议中 RST 复位报文的强制中断机制,攻击者通过嗅探获取合法 TCP 连接的四元组与序列号,伪造 RST 报文注入通信链路,使通信双方误认为连接异常并直接断开,从而在不消耗大量资源的情况下快速破坏正常业务连接。在靶机已建立 Telnet 等合法 TCP 连接的基础上,使用 netwox 伪造 RST 复位报文注入通信过程,使正常连接瞬间中断。通过 Wireshark 捕获 RST 报文,观察业务连接强制断开现象,验证轻量级拒绝服务攻击的有效性。
- TCP 会话劫持攻击:基于 TCP 协议序列号可预测性的安全缺陷,攻击者在劫持通信链路后,嗅探并猜测会话序列号,伪造来自合法主机的 TCP 报文,向靶机插入恶意指令或直接接管已建立的应用会话,实现未授权操作与远程控制。在 ARP 欺骗建立中间人链路的基础上,嗅探靶机与服务器之间的 TCP 会话信息,预测并获取 TCP 序列号与确认号,构造恶意数据包插入会话中,实现对已有连接的劫持与控制,验证 TCP 会话在缺乏加密和保护机制下的脆弱性。
2.实践过程
2.1 ARP缓存欺骗攻击
2.1.1实验环境配置
本次实验主要用到三台机器,kali攻击机和两台靶机:SEEDUbuntu9;metasploitable ubuntu。实验前,我将它们的网络适配器都设置成了VMnet8(NAT模式)


利用命令行ifconfig查看其IP地址和MAC地址

SEEDUbuntu9的IP地址:192.168.200.3;MAC地址:00:0c:29:2d:72:4c

metasploitable ubuntu的IP地址:192.168.200.4;MAC地址:00:0c:29:5c:22:fd

kali的IP地址:192.168.200.2;MAC地址:00:0c:29:4b:3a:09
综上,我本次实验的网络配置为:
| 虚拟机 | IP地址 | MAC地址 |
|---|---|---|
| SEEDUbuntu9 | 192.168.200.3 | 00:0c:29:2d:72:4c |
| metasploitable ubuntu | 192.168.200.4 | 00:0c:29:5c:22:fd |
| kali | 192.168.200.2 | 00:0c:29:4b:3a:09 |
2.1.2实验过程
首先,SEEDUbuntu ping Metasploitable_ubuntu,利用命令行ping 192.168.200.4,来查看arp缓存表
问题一:ping不上靶机Metasploitable_ubuntu

但是ping外网依旧可行

综合分析,主要是网段不匹配的原因,/25子网掩码将网段分成了两部分,即网段1:192.168.200.0-192.168.200.127和网段二:192.168.200.128-192.168.200.255,然而两个靶机分别处于这两个网段,两个网段互相隔离,属于不同广播域,SEED Ubuntu 认为 .130 是跨网段地址,于是把请求发给了默认网关 192.168.254.69,而这个网关没有到 .130 网段的路由,直接返回”目标不可达“。
因此,我利用命令行sudo nano /etc/network/interfaces进入编辑界面,将靶机 Metasploitable_ubuntu的IP修改为192.168.200.4

利用命令行ifconfig验证是否修改成功

执行指令ping 192.168.200.3 -c 4测试是否和 SEED Ubuntu 互通

执行指令ping 192.168.200.2 -c 4测试是否和Kali互通

重新在SEEDUbuntu中输入指令 ping 192.168.200.4 ,互通

利用命令arp -a查看arp缓存表

在kali上利用该命令行while true; do sudo netwox 33 -d eth0 -a 00:0c:29:5c:22:fd -b 00:0c:29:2d:72:4c -e 2 -g 192.168.200.4 sleep 0.5 done循环反复发送欺骗包,持续掩盖真实ARP刷新

问题二:ARP欺骗未生效

具体原因未知,我修改了命令,利用arpspoof工具来自动循环发包,强制覆盖目标ARP缓存,命令行如下: sudo arpspoof -i eth0 -t 192.168.200.3 192.168.200.4

在SEEDUbuntu中再次使用 arp -a 查看ARP映射,可以看到欺骗成功

sudo wireshark在SEEDUbuntu中打开抓包工具,按鼠标选择地方点击

选择eth6

过滤arp

捕获的包如下所示:

2.2 ICMP重定向攻击
2.2.1实验环境配置
本实验我利用攻击机kali(IP地址:192.168.200.2 MAC地址: 00:0c:29:4b:3a:09)和靶机SEEDUbuntu9(IP地址:192.168.200.3 MAC地址 00:0c:29:2d:72:4c)来完成
2.2.2实验过程
首先输入命令行route -n来查看SEEDUbuntu的网关为:192.168.200.1

在SEEDUbuntu终端ping baidu.com

利用命令行sudo netwox 86 -f "host 192.168.200.3" -g 192.168.200.2 -i 192.168.200.1来伪造网关给SEED主机发送ICMP重定向报文,强制将SEED 的所有外网流量劫持到 Kali 攻击机

返回SEED验证,发现欺骗成功,流量被重定向到了kail

2.3 SYN Flood攻击
2.3.1实验环境配置
本次实验我利用两个靶机SEEDUbuntu9(IP地址:192.168.200.3 MAC地址 00:0c:29:2d:72:4c)和metasploitable ubuntu(IP地址:192.168.200.4;MAC地址:00:0c:29:5c:22:fd),以及攻击机kali(IP地址:192.168.200.2 MAC地址: 00:0c:29:4b:3a:09)来完成
2.3.2实验过程
首先利用命令行telnet 192.168.200.4使SEEDUbuntu向靶机Metasploitable_ubuntu发起telnet服务访问

利用netwox 76工具对靶机的23号端口进行SYN Flood攻击,命令行如下:sudo netwox 76 -i 192.168.200.4 -p 23

在kali打开抓包工具wirehark,可以看到攻击机kali向靶机发送了大量的虚假IP发送出的SYN连接请求

2.4 TCP RST攻击
2.4.1实验环境配置
本次实验我利用两个靶机SEEDUbuntu9(IP地址:192.168.200.3 MAC地址 00:0c:29:2d:72:4c)和metasploitable ubuntu(IP地址:192.168.200.4;MAC地址:00:0c:29:5c:22:fd),以及攻击机kali(IP地址:192.168.200.2 MAC地址: 00:0c:29:4b:3a:09)来完成
2.4.2实验过程
首先利用命令行telnet 192.168.200.4使SEEDUbuntu向靶机Metasploitable_ubuntu发起telnet服务访问

利用netwox 78工具对靶机metasploitable ubuntu进行SYN Flood攻击,命令行如下:netwox 78 -i 192.168.200.4

回到SEED主机界面,再次进行telnet登陆,来访问靶机metasploitable ubuntu,发现连接被强制关闭

同时,对kali抓到的包进行tcp.flags.reset == 1过滤,可以发现有大量的RST 置位的 TCP 重置包,netwox 78工具伪造了双向的RST报文:伪造“来自靶机192.168.200.4的 RST 包”发给 SEED,让 SEED 以为连接被靶机关闭;伪造“来自 SEED192.168.200.3的 RST 包”2.5发给靶机,让靶机以为连接被 SEED 关闭

2.5 tcp会话劫持攻击
2.5.1实验环境配置
本次实验我利用两个靶机SEEDUbuntu9(IP地址:192.168.200.3 MAC地址 00:0c:29:2d:72:4c)和metasploitable ubuntu(IP地址:192.168.200.4;MAC地址:00:0c:29:5c:22:fd),以及攻击机kali(IP地址:192.168.200.2 MAC地址: 00:0c:29:4b:3a:09)来完成
2.5.2实验过程
首先在kali中输入命令行sudo ettercap -G利用ettercap工具打开图形化界面,进行
Ettercap ARP 中间人攻击部署

点击Hosts - Scan for hosts开始扫描



点击Hosts - Hosts list查看列表

将SEEDUbuntu设置为Target1

将Metasploitable_ubuntu设置为Target2

点击MITM Menu - ARP poisoning


点击View - Connections查看数据

至此Ettercap ARP 中间人攻击部署完成

利用命令行telnet 192.168.200.4使SEEDUbuntu向靶机Metasploitable_ubuntu发起telnet服务访问

在Connections中可以看到建立的telnet连接,Ettercap ARP 中间人攻击 100% 成功,已经完整劫持了 SEED 与靶机的 Telnet 通信,Ettercap 通过 ARP 投毒,让 SEED 和靶机都把对方的 MAC 误认为 Kali 的 MAC,从而将所有通信流量完整转发到 Kali,实现中间人劫持。
Telnet 是明文传输协议,所有账号、密码、命令都会以明文形式在网络中传输,因此 Ettercap 可以直接捕获完整的会话内容,甚至实时篡改。


3.学习中遇到的问题及解决
1.同网段子网隔离导致靶机互访失败:SEED Ubuntu 与 Metasploitable 靶机分属/25子网掩码划分的两个隔离广播域(网段 1:192.168.200.0~192.168.200.127,网段 2:192.168.200.128~192.168.200.255),导致 SEED 无法 ping 通靶机,仅能正常访问外网。因此明确子网划分导致广播域隔离、跨子网 ARP 请求无法直达的核心原理,通过 Kali 作为三层转发节点,利用 ARP 欺骗打通两个子网的通信链路;同时调整两台主机的子网掩码为255.255.255.0,合并为同一广播域,从根源解决互访隔离问题,为后续 ARP 欺骗奠定基础。
2.ARP 欺骗未生效问题:执行常规 ARP 欺骗命令后,SEED 主机 ARP 缓存未被篡改,欺骗效果未达成,且初期出现arp: command not found的工具调用异常。通过排查发现常规单次 ARP 报文发送无法覆盖目标主机 ARP 缓存,改用arpspoof工具实现循环发包,执行命令sudo arpspoof -i eth0 -t 192.168.200.3 192.168.200.4,通过持续发送伪造 ARP 应答报文,强制覆盖 SEED 主机的 ARP 缓存表;同时通过apt install net-tools补全arp命令工具,解决命令调用失败问题,最终验证 ARP 欺骗成功生效。
3.攻击后靶机断网问题:执行 ICMP 重定向命令后,SEED 主机出现ping: unknown host baidu.com的网络中断现象,无法正常访问外网。明确断网根源为 Kali 未开启 IP 转发,靶机流量被攻击机丢弃。通过ip route flush cache重置 SEED 路由缓存,恢复网络连通性,验证了攻击的有效性。
4.学习感想和体会
这次网络攻防实验,我亲手实操了 ARP 欺骗、ICMP 重定向、SYN Flood、TCP RST 攻击和 Ettercap 中间人劫持这些经典攻击手段,不仅搞懂了 TCP/IP 协议里的各种安全漏洞,比如 ARP 没做身份验证、TCP 三次握手有缺陷、Telnet 明文传输容易被窃听,还解决了子网隔离、抓包报错、系统卡死、ARP 欺骗不生效等一堆实操问题,练熟了 Wireshark、arpspoof 这些工具的用法,也学会了从现象找根源、用原理推方案的排查思路。
这次实验让我彻底转变了对网络安全的看法,从只会被动防御的使用者,变成了能理解攻击逻辑的攻击者,真正明白了 “懂攻击才会更好防御” 的道理,也清楚了网络安全不是只靠单一防护,而是要从协议加固、网络配置、异常监测等多方面一起发力。整个过程不仅夯实了我的网络攻防实操基础,也让我建立了动态对抗的安全意识,为之后深入学习网络安全相关内容打下了扎实的基础。

浙公网安备 33010602011771号