20242802 2023-2024-2 《网络攻防实践》第四周作业
1.实验内容与知识点整理
-
TCP/IP参考模型
在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层,所以在TCP/IP参考模型中结构层次为四层:
- 应用层:面向不同的网络应用引入了不同的应用层协议。负责为用户提供各种网络服务和应用。
- 传输层:要负责端到端的数据传输,它为应用程序提供了可靠的数据传输服务。
- 网络层:把分组发往目标网络或主机,在不同的网络之间传输数据,主要通过IP协议来实现。
- 网络接口层:负责定义数据在物理介质上的传输方式,其中也包括了硬件设备等物理介质。
将层次结构和主要协议画图表示如下:
-
TCP的“三次握手”
TCP协议中,用于建立链接的三个步骤:
- 第一次挥手(FIN)• 发起方(客户端):当客户端完成数据发送任务后,会发送一个带有 FIN 标志的TCP报文给服务器。 FIN 标志表示“我这边的数据已经发送完毕,准备关闭连接了”。
- 第二次挥手(ACK)• 接收方(服务器):服务器收到客户端的 FIN 报文后,会发送一个带有 ACK 标志的TCP报文作为响应。 ACK 标志表示“我收到了你的关闭连接请求,我这边的数据可能还没有发送完,稍等一下”。
- 第三次挥手(FIN + ACK)• 接收方(服务器):当服务器完成自己的数据发送任务后,也会发送一个带有 FIN 标志的TCP报文给客户端,同时带上 ACK 标志,表示“我这边的数据也发送完了,现在可以关闭连接了”。
-
ARP缓存欺骗攻击
攻击机通过发送假的ARP数据包,可以篡改IP地址与MAC地址的映射关系,实现对被靶机的ARP欺骗。
-
ICMP重定向攻击
攻击者发送伪装的ICMP重定向消息给目标主机,指示目标主机使用不安全的路由器或网关进行通信。
-
SYN Flood攻击
攻击机向目标服务器发送大量的SYN请求,但不进行后续的ACK响应,导致目标服务器的半连接队列被占满,消耗目标服务器的资源,无法正常建立新的TCP连接,从而实现拒绝服务攻击。
-
TCP RST攻击
攻击者发送虚假的TCP RST分节给目标主机,强制终止已建立的TCP连接。
-
TCP会话劫持攻击
攻击者通过篡改TCP连接中的序列号和确认号,插入自己的数据,从而控制目标设备的TCP连接。
2.实验过程
(1)ARP缓存欺骗攻击
首先配置ARP缓存欺骗攻击的实验环境,将两个靶机Metasploitable-Linux和Win2kServer设置为Vmnet1网段,kali攻击机设置为Vmnet8网段,逐一确定其IP地址和mac地址
Metasploitable-Linux
IP地址-192.168.200.130 MAC地址-00:0C:29:7B:D5:F4
Win2kServer靶机
IP地址-192.168.200.195 MAC地址-00:0C:29:48:DD:5A
Kali-Linux攻击机
IP地址-192.168.200.5 MAC地址-00:0c:29:cc:98:4e
seed虚拟机
IP地址-192.168.200.7 MAC地址-00:0C:29:58:48:74
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Metasploitable-Linux靶机 (Vmnet1网段) | 192.168.200.130 | 00:0C:29:7B:D5:F4 |
Win2kServer靶机(Vmnet1网段) | 192.168.200.195 | 00:0C:29:48:DD:5A |
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.5 | 00:0c:29:cc:98:4e |
seed(Vmnet8网段) | 192.168.200.7 | 00:0C:29:58:48:74 |
两个靶机互ping测试连通性
Metasploitable-Linux靶机 ping Win2kServer靶机
Win2kServer靶机 ping Metasploitable-Linux靶机
连通性测试成功,在Metasploitable虚拟机中查看当前ARP表,发现只有Win2kServer靶机的记录
arp-a
现在在kali上进行ARP缓存欺骗攻击,首先安装攻击工具netwox
sudo apt-get install netwox
安装好netwox后,使用命令,伪造一个mac地址为00:0C:29:48:DD:5C 且ip地址为192.168.200.195的数据包
sudo netwox 80 -e 00:0C:29:48:DD:5C 192.168.200.195
Metasploitable-Linux靶机误以为mac地址为00:0C:29:48:DD:5C的就是Win2kServer靶机的mac地址,当前ARP表中对Win2kServer靶机的mac地址已经变为5C,则ARP缓存欺骗攻击成功
并且此时Win2kServer靶机也检测到了异常
(2)ICMP重定向攻击
确定Kali-Linux攻击机和seed虚拟机的IP地址和mac地址
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.5 | 00:0c:29:cc:98:4e |
seed(Vmnet8网段) | 192.168.200.7 | 00:0C:29:58:48:74 |
在SEEDUbuntu上ping www.baidu.com检查连通性:
在Kali上使用netwox工具进行ICMP重定向攻击
以网关192.168.200.1的名义向数据包192.168.200.7 的源地址发送一个ICMP重定向报文,使得Kali攻击机的IP地址192.168.200.5作为默认路由,使用的代码如下:
sudo netwox 86 -f "host 192.168.200.7" -g 192.168.200.5 -i 192.168.200.1
返回SEED再次ping www.baidu.com,发现已经重定向到192.168.200.5上,ICMP重定向攻击成功!
(3)SYN Flood攻击
确定Kali-Linux攻击机、seed虚拟机和Metasploitable-Linux靶机的IP地址和mac地址
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.5 | 00:0c:29:cc:98:4e |
seed(Vmnet8网段) | 192.168.200.7 | 00:0C:29:58:48:74 |
Metasploitable-Linux靶机 (Vmnet1网段) | 192.168.200.130 | 00:0C:29:7B:D5:F4 |
在Seed上使用telnet连接Metasploitable-Linux靶机:
telnet 192.168.200.130
使用Kali攻击机使用netwox工具进行进行SYN Flood攻击
Metasploitable-Linux靶机的telnet端口为23,该攻击主要是消耗靶机的资源,直至服务崩溃,打开kali的wireshark一直收到SYN请求
sudo netwox 76 -i 192.168.200.130 -p 23
表明SYN Flood攻击 攻击成功!
(4)TCP RST攻击
确定Kali-Linux攻击机、seed虚拟机和Metasploitable-Linux靶机的IP地址和mac地址:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.5 | 00:0c:29:cc:98:4e |
seed(Vmnet8网段) | 192.168.200.7 | 00:0C:29:58:48:74 |
Metasploitable-Linux靶机 (Vmnet1网段) | 192.168.200.130 | 00:0C:29:7B:D5:F4 |
首先在Seed上,使用telnet命令远程连接Metasploitable-Linux靶机,检测连通性:
仍然是在Kali攻击机上使用netwox工具进行攻击:
sudo netwox 78 -i 192.168.200.130
开始攻击后返回SEED虚拟机可以看到telnet连接被中断,并且再次通过telnet命令也无法连接,说明TCP RST攻击成功!
(5)TCP会话劫持攻击
在TCP会话劫持攻击实验中三个虚拟机都使用了桥接模式,首先确定Kali-Linux攻击机、seed虚拟机和Metasploitable-Linux靶机的IP地址和mac地址:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Metasploitable-Linux靶机 | 192.168.31.118 | 00:0C:29:7B:D5:F4 |
seed | 192.168.31.106 | 00:0C:29:58:48:74 |
Kali-Linux攻击机 | 192.168.31.22 | 00:0c:29:cc:98:4e |
Metasploitable-Linux
IP地址-192.168.31.22 MAC地址-00:0c:29:cc:98:4e
seed虚拟机
IP地址-192.168.31.106 MAC地址-00:0C:29:58:48:74
Kali-Linux攻击机
IP地址-192.168.31.22 MAC地址-00:0c:29:cc:98:4e
TCP会话劫持攻击中要用到的攻击工具为ettercap
sudo ettercap -G
点击Scan for hosts,进行网段内主机扫描
现在Host List扫描到了以下IP:
其中192.168.31.106seed靶机 是和192.168.31.118是Metasploitable-Linux靶机
点击ARP Poisoning进行ARP欺骗
之后进行Connections连接查看,来查看SEED和MetaSploitable之间的连接
返回SEED通过telnet链接MetaSploitable
此时Connections连接列表中出现了相关信息,即192.168.31.106通过23号端口对192.168.31.118进行了连接:
能查看SEED通过telnet链接MetaSploitable时输入的账号密码msfadmin
证明TCP会话劫持攻击攻击成功!
3.学习中遇到的问题及解决
-
问题1:在刚开始实验时无法,两个靶机无法ping通。
-
问题1解决方案:发现Metasploitable-Linux之前被设置为静态IP,将其恢复为动态IP ,并将Metasploitable-Linux和Win2kServer两个靶机同时设置为Vmnet1网段则可以Ping通
-
问题2:使用kali攻击机无法攻击到靶机
-
问题2解决方案:将蜜网网关打开,则kali可以实行攻击操作。
4.实验总结
通过这次《网络攻防实践》课程的实验,我不仅重新回顾了计算机网络的基础知识,还在实践中加深了对网络攻击技术的理解,收获颇丰。
在实验开始之前,通过老师上课的提问,我发现自己对计算机网络的相关知识已经生疏了。TCP/IP参考模型、ARP协议、ICMP协议、TCP的三次握手等概念虽然曾经学过,但在实际操作中却显得有些模糊。在实验过程中,我也遇到了一些问题,比如靶机之间无法ping通,以及Kali攻击机无法成功攻击靶机。但通过仔细检查网络配置和请教同学,特别是实验一开始靶机无法互ping的问题,尝试了很多种方法后找到了解决方法。
通过实际操作来加深对相关知识的理解。比如在ARP缓存欺骗攻击中,我明白了ARP协议在地址解析过程中的重要性,以及攻击者如何利用伪造的ARP响应来篡改IP和MAC地址的映射关系。让我认识到,网络通信的安全性在很大程度上依赖于协议的正确实现和防护机制。