TCP/IP协议攻击
实验概述
TCP/IP协议安全漏洞是协议的设计与实现中的一种特殊类型的漏洞,它们提供了宝贵的教训,这也是为什么安全应该从一开始就设计而不是事后考虑的原因。此外,研究这些漏洞有助于理解网络安全的挑战,为什么许多网络安全措施是必要的。
(1)网络拓扑图
本实验中至少需要3台机器,一个用于攻击,另一个用于被攻击,第三个作为观察者使用。因此,我们在一台主机上同时开启3台虚拟机,并将其设在同一个LAN子网中,其配置图如下所示:
Machine 1
192.168.0.129
Machine 2
192.168.0.130
Machine 3
192.168.0.131
(2)配置IP地址
按照网络拓扑图分别配置Machine1、Machine2和Machine3。配置完毕后,使用ifconfig命令查看3台机器的IP地址。
截图如下:
(3)相互通信
配置好后,使用ping工具查看3台机器是否能够相互通信。
(4)实验中需要用到的工具有Wireshark,和Netwox,需要的服务有Ftp和Telnet,因此在三台机器上分别安装这些工具和服务。3台机器安装过程相同,安装完毕后,分别查看是否安装成功。
二、实验内容
(1)ARP缓存中毒(ARP cache poisoning)
ARP缓存是ARP协议的重要组成部分。ARP协议运行的目标就是建立MAC地址和IP地址的映射,然后把这一映射关系保存在ARP缓存中,使得不必重复运行ARP协议。因为ARP缓存中的映射表并不是一直不变的,主机会定期发送ARP请求来更新它的ARP映射表,利用这个机制,攻击者可以伪造ARP应答帧使得主机错误的更新自己的ARP映射表,这个过程就是ARP缓存中毒。
这样的后果即使要么使主机发送MAC帧到错误的MAC地址,导致数据被窃听;要么由于MAC地址不存在,导致数据发送不成功。
的攻击模拟如下:
Machine 1:
MAC:00:0C:29:29:B1:19
IP:192.168.0.129
Machine 2:
MAC:00:0C:29:1B:04:89
IP:192.168.0.130
Machine 3:
MAC:00:0C:29:1F:8C:BB
IP:192.168.0.131
攻击机制:
正常情况下:
如果Machine 2向Machine 3请求建立Telnet链接,Machine 2会广播ARP请求,询问192.168.40.41(Machine 3)的MAC地址是多少?Machine
3发现ARP广播的IP地址是自己IP,就会儿发送ARP应答,告诉Machine 2自己的MAC地址。然后两者建立请求进行通信。
攻击过程示意图
Machine
1伪造Machine 3的ARP应答,周期性的广播,构造过程如下:
广播情况为:
这样Machine 2的ARP缓冲就会被修改,无法Telnet到Machine 3
(2)ICMP重定向攻击
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
为了表达清楚,重申一下局域网配置:
Machine 1:网关
MAC:00:0C:29:29:B1:19
IP:192.168.0.129
Machine 2:受害者
MAC:00:0C:29:1B:04:89
IP:192.168.0.130
Machine 3:攻击者
MAC:00:0C:29:1F:8C:BB
IP:192.168.0.131
正常情况下:
如果从Machine 2远程访问172.31.17.42,则Machine 3先把请求数据包发送至默认网关,默认网关会转发数据包到192.160.0.129
路由信息示意图如下:
下图为网关的mac地址
实施攻击
现在Machine 3以默认网关的名义向Machine2发送IMCP重定位信息,通知Machine
2,默认路由的地址已经改为Machine 3(192.168.0.131)。
同时为了让Machine 1能够转发数据包,需要对Machine 1进行转发数据包的设置,可用下面的命令实现:
sudo sysctl net.ipv4.ip_forward=1
此时Machine 2再次访问172.31.17.42时,它会首先把数据包发送至新的路由Machine 3,再由machine3来转发数据包,从而达到Machine 2的路由表被更新的效果:
示意图如下:
网关地址:
Netwox命令: