arp欺骗超详细过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(一)ARP工作原理、ARP攻击分析叙述:

随着网络设备在接入市场的应用也越来越多;同时遇到的问题也越来越多样,其中最让人头疼的就是ARP 的问题。

众所周知,ARP的基本功能就是在以太网环境中,通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。但由于ARP的广播、动态学习等特性注定了它不是一种安全的协议,所以在实际应用中,会由于各种各样的原因使ARP学习失败,从而影响网络的互通性,并进而影响用户的业务稳定运行。由于ARP处于数据链路层,处于整个OSI开放式七层模型的倒数第二层,所以除了HUB等极少数的、几乎所有跟以太网接口有关的设备,都涉及到ARP处理的问题。如果ARP问题处理不好,带来的影响也是非常巨大的。

在整个internet网络体系中,网络设备主要分为两类:一类就是安装有各种操作系统平台的PC、服务器等host;而另外一类就是负责网络互联的路由器、交换机、防火墙等数据通讯设备。这些设备由于自身所处的网络位置的不同、安全稳定程度的不同、服务的不同,在ARP机制的处理上也不尽相同,当然本文不是要全面阐述ARP的原理和实现,只是希望能够说明并解决或规避在我们的应用环境中出现的问题――我们考虑的范围是Win2K/XP主机和路由器、交换机。

1 ARP基础知识

一般的,正常的ARP过程只需ARP Request和ARP Response两个过程,简单的说就是一问一答,如下:

这记录了局域网内一台IP为192.168.19.180的PC与网关设备(IP为192.168.1.6)之间的ARP交互,该PC发送请求之后,在0.000434秒之后,网关设备做出了回应,此时路由器就学习到了对方的ARP信息:如下:

我们关注的是ARP的过程,而不是结果;来看一下ARP Request:

从[Ethernet Header]可以看出,ARP请求的目标地址是全F,也就是广播地址;因为在请求之前,本PC 不知道对方的MAC地址,为了确保ARP Request能够让对方收到,以广播形式方式是很自然的选择。在[ARP]

中可以看到,发送的源IP和源MAC都是本PC的网卡设置值,这是已知参数;目的IP地址是我要请求的地址,而目的MAC地址是全0,用于表示本PC不知道该参数,暂时忽略/ignore。

网关设备在收到ARP Request之后,会首先读取Sender的IP和MAC地址,并在存入自己的缓冲中,以备后用。因为ARP请求毕竟是广播性质的,如果每次通讯都要完成一个ARP的流程,对于以太网的压力是非常巨大的,为了尽可能减少这种广播的负面影响,这里引入了缓冲机制,这就是ARP Table。

ARP Response又是怎样回应的呢?

先看[Ethernet Header],可以看到以太网目的MAC地址为PC的MAC地址,因为网关设备只要把回应的信息发送给请求者即可,局域网内的其他主机是没有必要同步知道的,这很好理解。在[ARP]中,网关设备把自己的MAC地址填充在ARP Response中,发送给原请求者。

当然收到ARP Response之后也会把这个ARP信息缓存下来,这样一个ARP的过程就完成了。从中可以看出,无论是哪方先发起ARP Request,最终双方都会得到对方的MAC地址信息的。这也是处于减少网络上不必要流量的考虑。

2 免费ARP

整个ARP的体系里基本上就是由ARP Request和Response组成的,从上面的描述中,可以看出Request就是告知对方“我要什么”,而Response是回答“我是什么”。但有些时候也会例外,他们虽然从形式上还是Request和Response的,但它们通常不会不是一问一答的,而是只有其中的一部分,所以通常被称为免费ARP或无为ARP(Gratuitous ARP)。

从作用而言,它们主要是可以分为两类:

1、以ARP Request的形式发送广播,请求自己的MAC地址,目的是探测局域网中是否有跟自己IP地址相同的主机,也就是常说的IP冲突,如下:

正常情况下,这样的报文是不会有回复的,如果有,则说明有冲突发生。

2、以ARP Response的形式发送广播,它通常只是为了把自己的ARP信息通告/更新给局域网全体,这种Response不需要别人请求,是自己主动发送的通告。报文结构如下。

这两种ARP帧虽然都是广播发送的,但目的不同,从帧结构上来说,前者注重的是Target Internet Address,而后者注重的是Sender Hardware Address和Sender Inteernet Address。

RG NBR系列路由器就采用上述第二种方式来发布自己的免费ARP,来防止网内PC机被其它中毒机器恶意修改其ARP Cache中保存的网关正确MAC地址信息;

3 触发ARP动作的事件

当然,如果windows的应用需要通过IP与别的IP地址进行通讯,而且本机ARP Table中没有对方的相应cache时,就会触发ARP自动学习。

另外,通过实验观察,我们发现Wind2K/XP在设置/修改IP、网卡禁用/启用、网线拔插、系统重启的时候,都会连续发送三次免费ARP Request,目的显然是为了判断网络上是否存在IP地址冲突。

对于RG Routers和Layer 3 Switch来说,如果存在上层IP通讯,那么自然需要触发ARP学习过程,这一点跟windows是完全相同的。

在以太网端口设置/修改IP时,路由器、Layer3 Switch会自动发送免费ARP Request报文来探测是否有IP冲突;而在端口shut/no shut、端口线缆拔插、系统重启的时候,路由器又会自动发送免费ARP Response 报文,用以把自己的ARP信息通告全体主机。

同时,无论是那种免费ARP,路由器、Layer 3 Switch都只发送一次。

很显然,windows的ARP触发事件跟路由器、Layer 3 Switch是有差别的:

1、Windows/PC作为网络上的一个主机,它可能只是跟少数的几个PC进行信息交互,所以它在非必要情况下不(通过免费ARP Response)把自己的ARP信息广播给所有主机是合理、也是明智的。路由器、Layer 3 Switch虽然不直接参与应用层的处理,但它通常是一个局域网的网关,肩负则所有主机的数据转发任务,也就是说几乎所有的主机跟路由器、Layer 3 Switch之间都会存在ARP交互,与其被动的响应ARP请求,还不如主动的把自己的ARP信息广播给所有主机,这对于降低路由器、Layer 3 Switch的工作负荷、减少网络带宽占用都是有好处的。

2、从免费ARP报文的发送数量来看,Windows发送的免费ARP都是3次,这有利于确保对方成功收到,同时也有利于减少其他主机的免费ARP干扰;而RG路由器、Layer 3 Switch仅仅发送一次,而且任何情况都不再重复,这显然是不够的。

4 异常情况下的ARP处理机制

常见的局域网异常状况有:IP地址冲突、MAC地址冒用、ARP欺骗等,极端情况下还可能IP+MAC同时冒用,下面我们就来具体分析。

相关文档
最新文档