ARP协议的安全问题及安全威胁
在实现TCP/IP协议的网络环境中,路由表定义IP地址和路由。然而,当IP数据包到达网络,该机响应的IP数据包的MAC地址识别包含在IP数据包,也就是说,机器只能响应硬件机器的MAC地址和IP包的相同的硬件MAC地址的IP包,因为在网络上,每个主机有时间发送IP包,在每台主机的内存中,有一个ARP转换硬件。台Mac,它通常是一个动态的转换表(ARP表可以手动添加静态条目)。也就是说,相应的表刷新由主机在一定的时间间隔,这个时间间隔是ARP缓存超时时间。通常,当一个主机发送一个IP数据包,它会寻找硬件MAC的转换表的IP数据包对应的地址。如果找不到主机,主机将发送ARP广播包,主机将刷新其ARP缓存,然后发出IP包。在理解了常识之后,现在可以介绍如何在以太网中生成ARP欺骗,并可以查看下面的示例。
1 ARP欺骗分析。同一网段
如下所示,三个主机的IP地址和MAC地址分布如下:
答:IP地址192.168.0.1硬件地址:AA AA AA AA AA::::AA;
B:IP地址192.168.0.2硬件地址:BB BB BB BB BB::::BB;
C:IP地址192.168.0.3硬件地址抄送:抄送:抄送:抄送:抄送:CC。
位于主机B中的入侵者想要非法进入主机,但在主机上安装了防火墙。通过收集数据,他知道这个主机的防火墙只有与主机C(开放23端口(telnet))的信任关系。他必须使用telnet进入主机A,此时他应该做什么
入侵者必须让相信主机B主机C的主机,如果主机A和主机C之间的信任关系是基于IP地址。如果只有主机B的IP地址改为主机C,它不工作,至少不能可靠地工作。如果你说的以太网卡设备驱动程序与您的IP是192.168.0.3,那么它只是一个纯粹的竞争关系,也不会达到目标。我们可以先学习C的机器,如果我们能让这台机器暂时下降,竞争关系可以解除,这仍然是可能的。机C下跌的同时,B机的IP地址192.168.0.3,这样就可以成功的通过23端口远程登录到该机,并成功绕过防火墙限制。
以上想法不在下列情况下工作,如果主机A和主机C之间的信任关系是基于硬件地址。在这个时候,我们需要使用ARP欺骗使主人改变192.168.0.3映射在它自己的ARP映射缓存到主机B的硬件地址的硬件地址。
我们可以创建一个arp_reply响应包人工和发送给主机,我们想欺骗,它可以实现的,因为协议没有规定,在收到arp_echo,响应数据包可以发送。很多这样的工具,我们也可以直接使用Wireshark抓取一个ARP响应包,然后修改它。
这个包可以人工制造,您可以在ARP包、目标IP、源MAC地址和目标MAC地址中指定源IP,这样就可以通过使用假ARP响应包修改主机A上的动态ARP缓存来进行欺骗。
下面是具体步骤。
(1)他首先研究了192.0.0.3主机,发现主机的漏洞。
(2)根据发现的漏洞。主机C停机,暂时停止工作。
(3)在这段时间,入侵者改变了他们的IP 192.0.0.3。
(4)他使用工具发送一个包有BB的192.168.0.3源MAC地址的源IP地址:BB BB BB BB BB:::主机,要求主机更新自己的ARP表转换。
(5)主机在ARP表中更新主机C的IP - mac对应。
(6)防火墙是无效的,入侵IP成为合法的MAC地址,它可以是telnet。
(7)以上是ARP欺骗过程,发生在同一网段内。然而,提醒我们,当B和C处于不同网段时,上述方法是无效的。
2 ARP欺骗分析。不同的网络段
假设A和C位于同一段,而主机B位于另一网段中,三台机器的IP地址和硬件地址如下所示:
答:IP地址192.168.0.1硬件地址:AA AA AA AA AA::::AA;
B:IP地址192.168.1.2硬件地址:BB BB BB BB BB::::BB;
C:IP地址192.168.0.3硬件地址抄送:抄送:抄送:抄送:抄送:CC。
在目前的情况下,如何在我们的主机B段冒充主机欺骗主机显然,如果采用上述方法,即使欺骗成功,没有办法建立Telnet会话主机B与主机之间,因为路由器不会发送主机到主机B B,和路由器将在192.168.0.x找到地址。段。
另一种欺骗方式,即ICMP重定向,涉及到ARP欺骗和ICMP重定向相结合,基本上可以达到跨网络欺骗的目的。
ICMP重定向消息是ICMP控制报文之一,在特定情况下,当路由器使用非优化路由检测机器时,它向主机发送ICMP重定向消息,请求主机改变路由,路由器也将初始数据报转发到目的地。
我们可以使用ICMP重定向消息来实现欺骗的目的,以下是将ARP欺骗和ICMP重定向结合起来攻击的步骤。
(1)为了使网络上的非法IP包长时间存活,开始修改IP包的生存时间TTL,并对后续过程中可能出现的问题做准备,将TTL转换为255(TTL定义了IP包)。如果你不能在网络上找到主机,那么在网络上生存的时间越长,就有助于在这种情况下进行充分的广播。
(2)下载工具,可以自由地做出各种软件包(例如hping2)。
(3)然后如上所述,在这个主机C主机C漏洞查找漏洞下。
(4)当网络的主机找不到原来的192.0.0.3,它将更新自己的ARP对应表。所以他发送一个ARP响应包与BB的192.168.0.3硬件地址的原始IP地址:BB BB BB BB::::BB。
(5)现在每个主人知道一个新的MAC地址对应一个192.0.0.3,ARP欺骗是完成,但每个主机只会在局域网中找到这个地址,它永远不会输送到192.0.0.3.so他建立一个ICMP重定向广播IP数据包。
(6)定制一个ICMP重定向包在网络中告诉主持人:192.0.0.3最短的路线是不是局域网,但路由。主机重定向你的路由路径,把所有的IP数据包192.0.0.3。
(7)主机接收到这个合理的ICMP重定向和修改其路由路径,把所有的通信到192.0.0.3到路由器。
(8)入侵者最终可以从路由器接收来自路由器的IP包,并且他可以将telnet启动到主机的23端口。
事实上,上述想法只是一个理想的例子。主机许可证接收的ICMP重定向包有许多限制。这些条件使得ICMP重定向非常困难。
在TCP/IP协议的实现中,主机接收ICMP重定向消息有几个主要的限制。
(1)新的路由必须是直接的。
(2)重定向包必须来自当前指向目标的路由。
(3)重定向包不能通知主机自己的路由。
(4)更改后的路线必须是间接路线。
由于这些局限性,ICMP欺骗实际上是很难实现的,但我们也可以根据上述思路采取一些其他的方法,更重要的是我们知道这些欺骗方法的危害性,并可以采取相应的防御措施。
3.arp欺骗的防御原则
我们给出了以下几种防御方法。
(1)不要基于IP地址或硬件MAC地址建立您的网络安全信任关系。(RARP也有作弊的问题),理想的关系应该是基于IP和MAC。
(2)设置静态macrarr;IP对应表,不要让主机刷新好的转换表。
(3)停止使用ARP除非必要,保持ARP在相应的表永久条目,使用ifconfig -使ARP linux下网卡驱动程序停止使用ARP。
(4)使用代理网关发送传出通信。
(5)修改系统拒收ICMP重定向消息。在Linux的领导下,ICMP重定向消息可以被拒绝的ICMP重定向报文的防火墙或重新编译内核选项,通过修改内核。ICMP消息可以被防火墙和IP策略赢得2000下。