20242935 2024-2025-2 《网络攻防实践》第四周作业
实践四 TCP/IP网络协议攻击
一、实验要求
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
二、知识点梳理
(1)ARP病毒攻击的工作原理是通过伪造通信双方一端的IP地址或 MAC 地址,让另一端误以为该主机为正确主机从而达到欺骗目的。
(2)ICMP重定向攻击利用ICMP协议的特性,攻击者发送虚假的重定向消息,欺骗目标主机更新路由表,使流量通过攻击者的机器重定向。这可能导致中间人攻击,拦截或修改数据
(3)SYN洪水攻击是一种拒绝服务攻击,攻击者发送大量SYN数据包启动TCP连接,但不完成三次握手(SYN-ACK-ACK),导致服务器资源耗尽,无法响应合法请求
(4)TCP RST攻击通过发送伪造的RST(重置)数据包,强制终止已建立的TCP连接。这种攻击可用于中断通信或配合其他攻击如拒绝服务
(5)TCP会话劫持攻击涉及接管两个实体之间的TCP连接,攻击者通过预测序列号或拦截通信,冒充合法一方,拦截、修改或注入数据
三、实验过程
- 在此之前需要将这三个虚拟机的ip地址放入同一网段内,都放在VMnet1中好了,也需要改一下ip地址
- 输入指令
vim /etc/network/interfaces
-
保存并退出(按
ESC
,输入:wq
,回车)。 -
重新启用网络
sudo systemctl restart networking
-
再重启kali虚拟机,就可以看到kali的IP地址改为了192.168.200.140,那么现在和linux靶机、Win靶机在一个网段里了
-
kali可以ping通linux靶机了
- 查看IP
虚拟机 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux(攻击机) | 192.168.200.140 | 00:0c:29:e6:a3:58 |
Metasploitable-Linux(靶机) | 192.168.200.130 | 00:0c:29:22:e3:25 |
Win2kServer(靶机) | 192.168.200.131 | 00:0c:29:F2:B5:6E |
任务一:ARP缓存欺骗攻击
- 使用命令用靶机Linux 去ping 靶机win2k,再使用命令打开ARP表查看记录,并将其记录
ping 192.168.200.131
arp -a
- 在Kali虚拟机中安装netwox,使用命令
apt install netwox
-
打开Kali,利用命令对其进行攻击
-
然后在Kali上执行指令 netwox 80 -e 00:0c:29:e6:a3:58(kali的MAC地址) -i 192.168.200.131( win2k的IP地址)
-
将Win2kServer的MAC地址伪造变成了kali攻击机的MAC的地址
sudo netwox 80 -e 00:0c:29:e6:a3:58 1 -i 192.168.200.131
- 回到靶机Linux再次查看arp,发现发生了改变
arp -a
任务二:ICMP重定向攻击
虚拟机 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux(攻击机) | 192.168.200.6 | 00:0c:29:e6:a3:58 |
Ubuntu(靶机) | 192.168.200.4 | 00:0c:29:df:5c:dc |
- 现在将Kali Linux 从 VMnet1(仅主机模式) 切换回 VMnet8(NAT模式,自动获取IP)
- 重启虚拟机kali,再打开终端编辑
sudo vim /etc/network/interfaces
- 将上一个实验的配置改一下
- 修改
eth0
配置(删除静态 IP,改为 DHCP)
auto eth0
iface eth0 inet dhcp
-
保存退出(按
ESC
,输入:wq
,然后回车) -
执行以下命令,让 Kali 重新获取 IP
sudo systemctl restart networking
-
再重启kali虚拟机,可以看到kali的IP地址成了192.168.200.6
-
使用到攻击机kali(IP:192.168.200.6)和靶机Ubuntu(IP:192.168.200.4)
-
使用命令ifconfig查看Ubuntu的IP地址为192.168.200.4
运行命令,查看Ubuntu的网关为192.168.200.1
route -n
- ping baidu.com 可以看到百度的IP地址为110.242.68.66
-
在Kali虚拟机中运行攻击指令
-
192.168.200.4:Ubuntu的IP地址
-
192.168.200.6:Kali攻击机IP地址
-
192.168.200.1:Ubuntu的网关
netwox 86 -f "host 192.168.200.4" -g 192.168.200.6 -i 192.168.200.1
- 在靶机Ubuntu中发现新的下一跳,路由的下一跳地址被修改为了192.168.200.6(kali虚拟机的IP地址)
任务三:SYN Flood攻击
虚拟机 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux(攻击机) | 192.168.200.6 | 00:0c:29:e6:a3:58 |
Metasploitable-Linux(靶机) | 192.168.200.5 | 00:0c:29:22:e3:25 |
Ubuntu(靶机) | 192.168.200.4 | 00:0c:29:df:5c:dc |
-
这里更改了Metasploitable-Linux(靶机)的ip地址
-
Metasploitable(Linux 靶机)调整到 VMnet8(NAT模式),并自动获取 IP
-
先修改网络适配器到VMnet8 NAT模式,再重启Metasploitable-Linux虚拟机
-
进入终端,使用
msfadmin
账户登录。 -
编辑
/etc/network/interfaces
文件:
sudo vim /etc/network/interfaces
- 将
eth0
的配置改为 DHCP:
auto eth0
iface eth0 inet dhcp
-
保存并退出(按
ESC
,输入:wq
,然后回车) -
修改
/etc/rc.local
以删除旧的静态 IP 设置,打开/etc/rc.local
进行编辑
sudo vim /etc/rc.local
-
按
i
进入编辑模式 -
删除 这一行:
ifconfig eth0 192.168.200.130 netmask 255.255.255.128 route add default gw 192.168.200.1
- 再修改
rc.local
文件,改成:
#!/bin/sh -e
# rc.localexit 0
-
确保
exit 0
在最后一行,否则rc.local
可能无法正常运行。 -
按
Esc
,再输入:wq
,然后按Enter
(保存并退出)。 -
重启系统
sudo reboot
-
确认 Metasploitable 获取到 NAT(VMnet8)的 IP
-
检查 IP 地址,可以看到我的IP地址变成了192.168.200.5
ip a show eth0
- 首先Ubuntu主机通过telnet终端访问Metasploitable-Linux靶机
telnet 192.168.200.5
- 打开Kali攻击机中的Wireshark,并选择eth0网卡,并输入
ip addr == 192.168.200.5(Linux靶机的IP地址)
-
SEED主机能够正常访问Linux靶机,并且kali能在wireshark中找到正常的TCP-SYN/ACK响应
-
在Kali Linux虚拟机的终端中运行攻击命令,对Linux靶机进行SYN Flood攻击
netwox 76 -i 192.168.200.5 -p 23
- 表示利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击
- 可以在wireshark中看到许多目的地址为192.168.200.5的SYN数据包,且发送地址为伪造的
任务四: TCP RST攻击
-
选择利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机对靶机发起TCP RST攻击
-
使用SEED Ubuntu向MetaSploitable发起访问
telnet 192.168.200.5
- 在Kali上利用netwox的78号工具对靶机进行TCP RST攻击
netwox 78 -i 192.168.200.5
- 我们再次用SEED Ubuntu对靶机MetaSploitable发起telnet服务访问,得知已经不能访问
任务五: TCP会话劫持攻击
虚拟机 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux(攻击机) | 192.168.200.6 | 00:0c:29:e6:a3:58 |
Metasploitable-Linux(靶机) | 192.168.200.5 | 00:0c:29:22:e3:25 |
Ubuntu(靶机) | 192.168.200.4 | 00:0c:29:df:5c:dc |
- 在Kali上使用命令
ettercap -G
-
点击画面右上角的√(accept)
-
再点击”…”-“hosts”-“Scan for hosts”,开始扫描网络中的主机
- 点击“…”-“Hosts”-“Hosts list”,查看扫描出来的主机
- 其中
192.168.200.1[网关] 192.168.200.120[网关]
192.168.200.4[靶机Ubuntu] 192.168.200.5[靶机Metasploitable]
- 选择SEED主机,将其添加到Target1中;选择Linux靶机,将其添加到Target2中
- 打开MITM Menu->ARP poisoning,出现弹窗后点击OK
- 点击“…(Ettercap Menu)” -> “View” -> “Connections"查看连接
- 在Ubuntu上使用TELNET服务登录靶机Metasploitable
telnet 192.168.200.5
- 此时在kali上查看所嗅探到的,点击查看该项数据
- 在列表中可以看到攻击机与靶机之间传输的数据,包括账号、密码以及登录状态记录
四、学习中遇到的问题及解决
问题一:ARP缓存欺骗操作时,kali攻击机一直无法正常攻击,使得Linux靶机的ARP缓存里一直存的是Win靶机的真实MAC地址,而不是伪造的MAC地址
解决方法:把kali虚拟机改到和Linux靶机、Win靶机所在的同一局域网内,再进行攻击操作
五、学习感想和体会
实验中遇到的问题让我认识到网络拓扑和配置对攻击成功的关键作用。例如,确保虚拟机在同一网络段是ARP攻击成功的前提,这增强了我对网络环境的理解。通过执行五种攻击,我深入理解了TCP/IP协议的漏洞及其潜在影响,如拒绝服务、数据拦截等。
六、参考资料
TCP/IP协议常见漏洞类型及安全措施 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com