20253915 2024-2025-2 《网络攻防实践》实践4报告
1.实践内容
1.1 ARP 缓存欺骗攻击(链路层)
- 核心原理
ARP 协议用于 IP 与 MAC 地址的映射,无身份认证机制,攻击者可发送伪造 ARP 响应包,篡改目标主机的 ARP 缓存表,将目标 IP 地址映射为攻击者的 MAC 地址,从而劫持目标主机的网络流量,实现中间人攻击或流量嗅探。 - 实验操作
使用netwox/ettercap工具,向目标主机(如 SEEDUbuntu)发送伪造 ARP 响应,冒充靶机 IP(如192.168.200.4)的 MAC 地址为攻击者 Kali 的 MAC 地址,通过arp -a命令验证目标主机 ARP 缓存已被篡改。 - 危害与防御
- 危害:流量劫持、中间人攻击(嗅探 / 篡改数据)、网络中断、钓鱼攻击。
- 防御:静态 ARP 绑定、部署 ARP 防火墙、启用 802.1X 端口认证、使用加密通信协议。
1.2 ICMP 重定向攻击(网络层)
- 核心原理
ICMP 重定向报文用于优化路由路径,无认证机制,攻击者可伪造网关身份发送重定向报文,诱导目标主机修改路由表,将对外流量转发至攻击者主机,实现流量劫持与中间人攻击。 - 实验操作
使用netwox 86工具,针对目标主机(如 SEEDUbuntu)发送伪造 ICMP 重定向报文,指定重定向网关为攻击者 Kali 的 IP 地址,通过route -n命令验证目标主机路由表已被篡改。 - 危害与防御
- 危害:流量劫持、监听目标主机对外通信、中间人攻击。
- 防御:禁用主机接收 ICMP 重定向报文、防火墙过滤非法 ICMP 报文、部署动态路由认证机制。
1.3 SYN Flood 攻击(传输层,拒绝服务)
- 核心原理
利用 TCP 三次握手的缺陷:攻击者发送大量伪造源 IP 的 SYN 报文,目标主机为维护半连接状态消耗资源,最终导致半连接队列耗尽,无法处理正常的连接请求,实现拒绝服务(DoS)。 - 实验操作
使用hping3/Metasploit 工具,向目标服务(如 HTTP、SSH)发送海量伪造 SYN 报文,观察目标主机服务响应延迟、连接超时或服务瘫痪。 - 危害与防御
- 危害:目标服务不可用、系统资源耗尽、业务中断。
- 防御:启用 SYN Cookie 机制、优化 TCP 半连接队列参数、防火墙限流清洗、部署云抗 DDoS 服务。
1.4 TCP RST 攻击(传输层,会话中断)
- 核心原理
TCP 协议中 RST 报文用于强制关闭连接,无认证机制,攻击者可嗅探目标 TCP 会话的源 / 目的 IP、端口及序列号,伪造 RST 报文发送给目标主机,强制中断合法 TCP 会话。 - 实验操作
使用netwox/scapy工具,嗅探目标 TCP 会话(如 Telnet、SSH),构造并发送匹配会话参数的伪造 RST 报文,使目标会话突然中断。 - 危害与防御
- 危害:强制断开合法连接、破坏服务可用性、干扰正常通信。
- 防御:TCP 序列号随机化、使用加密协议(SSH/TLS)、防火墙过滤异常 RST 报文、启用会话完整性校验。
1.5 TCP 会话劫持攻击(会话层 / 应用层)
- 核心原理
攻击者嗅探目标 TCP 会话的序列号、确认号及通信参数,伪造 ACK / 数据报文注入会话,冒充合法用户执行操作,实现会话接管或数据篡改。 - 实验操作
使用ettercap/sshmitm工具,嗅探目标明文会话(如 Telnet),预测 TCP 序列号,注入恶意命令或数据,接管目标会话并执行未授权操作。 - 危害与防御
- 危害:账户劫持、数据篡改、未授权操作、敏感信息泄露。
- 防御:使用加密协议(SSH/TLS)、会话令牌绑定 IP / 端口、TCP 序列号随机化、启用应用层会话认证。
2.实践过程
2.1 设置IP地址
首先本次实验使用三台机器,kali作为攻击机,其他两台机器作为正常通信的机器(靶机1:SEEDUbuntu,靶机2:Metasploitable_ubuntu)。在开始具体攻击实验前,先将网络适配器都设置成VMnet8(NAT模式)并查看三台虚拟机的IP地址和MAC地址。
攻击机kali

两个靶机


2.1.1 seed的IP和MAC地址

2.1.2 Metasploitable_ubuntu的IP地址和MAC地址
如果IP地址还是在VMnet1网段,需要先
dhclient -r eth0
dhclient eth0
重新获取IP地址

2.1.3 Kali的IP和MAC地址

| 虚拟机名称 | IP地址 | MAC地址 |
|---|---|---|
| Kali Linux | 192.168.200.3 | 00:0c:29:dd:3a:4f |
| Metasploitable Ubuntu | 192.168.200.4 | 00:0c:29:47:6d:b0 |
| SEED Ubuntu | 192.168.200.101 | 00:0c:29:4a:47:e1 |
2.2 ARP缓存欺骗攻击
2.2.1 SEEDUbuntu ping Metasploitable_ubuntu
在SEEDUbuntu中输入指令 ping 192.168.200.4 ,即靶机 Metasploitable_ubuntu的IP,得到arp缓存表

2.2.2 查看arp缓存表
使用 arp -a 查看arp缓存表,可以从下图中看到靶机Metasploitable_ubuntu的IP地址和MAC地址是对应的

2.2.3 ARP缓存欺骗攻击
在 Kali 上用循环命令反复发送欺骗包,持续覆盖真实 ARP 刷新
while true; do
sudo netwox 33 -d eth0 -a 00:0c:29:dd:3a:4f -b 00:0c:29:4a:47:e1 -e 2 -g 192.168.200.4 -h 00:0c:29:dd:3a:4f -i 192.168.200.101
sleep 0.5
done
安装工具netwox:

运行命令
while true; do
sudo netwox 33 -d eth0 -a 00:0c:29:dd:3a:4f -b 00:0c:29:4a:47:e1 -e 2 -g 192.168.200.4 -h 00:0c:29:dd:3a:4f -i 192.168.200.101
sleep 0.5
done

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

2.2.4 抓包结果查看
在Kali上使用Wireshark进行捕获
打开抓包软件

选择eth6

过滤arp

捕获的包如下所示

2.3 ICMP重定向攻击
2.3.1 查看IP地址
本次实验需要两台主机(处于同一网段),选择攻击机kali、靶机SEEDUbuntu,查看两台虚拟机的IP地址和MAC地址


| 虚拟机名称 | IP 地址 | MAC 地址 |
|---|---|---|
| Kali Linux | 192.168.200.3 | 00:0c:29:dd:3a:4f |
| SEED Ubuntu | 192.168.200.101 | 00:0c:29:4a:47:e1 |
2.3.1 查看网关
在SEEDUbuntu中输入route -n,查看到网关为192.168.200.1

2.3.2 访问外网
在终端 ping baidu.com,SEEDUbuntu可以直接访问外网

2.3.3 ICMP重定向
在Kali主机上执行命令 sudo netwox 86 -f "host 192.168.200.101" -g 192.168.200.3 -i 192.168.200.1
sudo:提权执行(ICMP 重定向需要 root 权限);
netwox 86:ICMP 重定向攻击专用模块,用于发送伪造的 ICMP 重定向报文;
-f "host 192.168.200.101":过滤规则,只对 SEEDUbuntu(192.168.200.101)的数据包生效;
-g 192.168.200.3:指定重定向的目标 —— 让 SEEDUbuntu 把流量转发到 Kali(192.168.200.3);
-i 192.168.200.1:伪造网关 IP,让 SEEDUbuntu 误以为是网关(192.168.200.1)发送的重定向指令,增加欺骗可信度。

可以看到其访问百度的数据包已经被重定向到Kali,数据包来源为192.168.200.1

2.4 SYN Flood攻击
2.4.1 查看IP
Metasploitable_ubuntu的IP地址:192.168.200.4

2.4.2 SYN Flood攻击
本步骤选择利用SEEDUbuntu向靶机Metasploitable_ubuntu发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。
- 首先使用SEEDUbuntu向Metasploitable_ubuntu发起登陆 ,
telnet 192.168.200.4(Metasploitable_ubuntu的IP地址),输入Metasploitable2-Linux的用户名及密码:msfadmin;
![image]()
- 在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击 sudo netwox 76 -i 192.168.200.4 -p 23
![image]()
- 在Kali中用重新打开终端,利用sudo wireshark抓包,可以看到攻击机向靶机发送了大量的虚假IP发出的SYN连接请求
![image]()
2.5 TCP RST攻击
本步骤选择利用SEEDUbuntu向靶机Metasploitable_ubuntu发起telnet服务访问,用Kali攻击机对靶机发起TCP RST攻击
- 首先使用SEEDUbuntu向Metasploitable_ubuntu发起登陆 ,
telnet 192.168.200.4(Metasploitable_ubuntu的IP地址),输入Metasploitable2-Linux的用户名及密码:msfadmin
![image]()
- 在Kali上利用netwox的78号工具对靶机进行TCP RST攻击
netwox 78 -i 192.168.200.4
![image]()
- 回到刚才SEEDUbuntu的登陆界面,在SEEDUbuntu中再次输入 telnet 192.168.200.4 访问Metasploitable_ubuntu,发现连接被强制关闭
![image]()
2.6 TCP会话劫持攻击
| 虚拟机名称 | IP地址 | MAC地址 |
|---|---|---|
| Kali Linux | 192.168.200.3 | 00:0c:29:dd:3a:4f |
| Metasploitable Ubuntu | 192.168.200.4 | 00:0c:29:47:6d:b0 |
| SEED Ubuntu | 192.168.200.101 | 00:0c:29:4a:47:e1 |
本步骤使用ettercap工具,在kali中输入sudo ettercap -G打开图形化界面进行操作,并点击右上角对号开始

进入此页面

点击Hosts - Scan for hosts开始扫描



再点击Hosts - Hosts list查看列表

将SEEDUbuntu设置为目标1

将Metasploitable_ubuntu设置为目标2

点击MITM Menu - ARP poisoning,然后点击OK



点击View - Connections查看数据



使用SEEDUbuntu向Metasploitable_ubuntu发起登陆 telnet 192.168.200.4 (Metasploitable_ubuntu的IP地址),输入Metasploitable2-Linux的用户名及密码:msfadmin

在Connections中可以看到建立的telnet连接

进一步点击后可以看到登录使用的用户名、密码和命令

3.学习中遇到的问题及解决
- 问题1:ping不通靶机
- 问题1解决方案:修改IP地址使其位于一个网段
- 问题2:发送欺骗包后未生效
- 问题2解决方案:单次欺骗包效力极短,持续发送欺骗包
4.实践总结
通过本次针对ARP缓存欺骗、ICMP重定向、SYN Flood、TCP RST及TCP会话劫持的系列实验,我完整完成了从链路层到传输层的TCP/IP协议攻击实操,直观验证了各类经典网络攻击的实现流程。在实验中,借助Kali攻击机与SEEDUbuntu、Metasploitable靶机环境,通过netwox等工具构造伪造报文,成功实现ARP缓存篡改、路由重定向、TCP连接阻断与会话劫持等效果,清晰认识到TCP/IP核心协议在设计上缺乏身份验证、报文完整性校验等安全缺陷,是各类攻击能够生效的根本原因。
本次实践让我明确了不同攻击的应用场景与危害差异:ARP与ICMP重定向攻击以流量劫持为核心,是中间人攻击的重要前提;SYN Flood攻击通过消耗系统资源实现拒绝服务,直接破坏服务可用性;TCP RST与会话劫持则针对已建立的连接,分别实现会话强制中断与非法接管。同时我也体会到,攻击的有效性依赖网络拓扑、主机配置与协议报文特征,在实操中需精准匹配IP、MAC、端口及序列号等参数,才能保证攻击效果稳定达成。
综合本次实验操作,我不仅掌握了常见网络攻击的基本方法,更建立起攻防结合的安全思维。在理解攻击原理的基础上,也对应梳理出静态绑定、流量加密、启用SYN Cookie、过滤非法报文等防御思路,深刻认识到网络安全防护需要从协议配置、主机加固、流量管控等多层面协同实施,为后续深入学习网络攻防技术奠定了扎实的实践基础。





浙公网安备 33010602011771号