ARP欺骗

1、什么是ARP协议

要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。 ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI 模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。我们知道二层的以 太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输 以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标 的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的 协议。ARP工作时,首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包,然 后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要 到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不 必要的ARP通信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(windows系 统这个时间为2分钟,而Cisco路由器的这个时间为5分钟),就会被删除,这样可以大大减少ARP缓 存表的长度,加快查询速度。通过下面的例子我们可以很清楚的看出ARP的工作机制。 ARP原理 如上图所示,假如我们有两个网段、三台主机、两个网关、分别是: 主机名 IP地址 MAC地址 网关1 192.168.1.1 01-01-01-01-01-01 主机A 192.168.1.2 02-02-02-02-02-02 主机B 192.168.1.3 03-03-03-03-03-03 网关2 10.1.1.1 04-04-04-04-04-04 主机C 10.1.1.2 05-05-05-05-05-05 假如主机A要与主机B通讯,它首先会通过网络掩码比对,确认出主机B是否在自己同一网段内,如果 在它就会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域 网的广播地址发送ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而 广播地址会把这个请求包广播给局域网内的所有主机,但是只有192.168.1.3这台主机才会响应这个 请求包,它会回应192.168.1.2一个arp reply包,大致的意思是192.168.1.3的MAC地址是 03-03-03-03-03-03。这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自 己的ARP缓存表中。之后主机A与主机B之间的通讯就依靠两者缓存表里的MAC地址来通讯了,直到通 讯停止后两分钟,这个对应关系才会被从表中删除。 再来看一个非局域网内部的通讯过程,假如主机A需要和主机C进行通讯,它首先会通过比对掩码发 现这个主机C的IP地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查 自己的ARP缓存表里是否有网关1(192.168.1.1)对应的MAC地址,如果没有就通过ARP请求获得,如果 有就直接与网关通讯,然后再由网关1通过路由将数据包送到网关2,网关2收到这个数据包后发现 是送给主机C(10.1.1.2)的,它就会检查自己的ARP缓存(没错,网关一样有自己的ARP缓存), 看看里面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址将 数据转发给主机C。

2、ARP欺骗原理

在了解ARP协议后我们再来看看什么是ARP欺骗,它的目的又是什么?通过上面的例子我们知道了 在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包 括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效的保证数据传输的一对一性, 也就是说主机A与主机C之间的通讯只通过网关1和网关1,象主机B之类的是无法截获A与C之间的 通讯信息的。但是在ARP缓存表的实现机制中存在一个不完善的地方,当主机收到一个ARP的应答 包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的 关系替换掉原有的ARP缓存表里的相应信息。如下图所示: ARP欺骗原理 这就导致主机B截取主机A与主机C之间的数据通信成为可能。首先主机B向主机A发送一个ARP应答 包说192.168.1.1的MAC地址是03-03-03-03-03-03,主机A收到这个包后并没有去验证包的真实性而 是直接将自己ARP列表中的192.168.1.1的MAC地址替换成03-03-03-03-03-03,同时主机B向网 关1发送一个ARP响应包说192.168.1.2的MAC是03-03-03-03-03-03,同样网关1也没有去验证这个 包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成03-03-03-03-03-03。当主机A想要与 主机C通讯时,它直接把应该发送给网关1(192.168.1.1)的数据包发送到03-03-03-03-03-03这个 MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真正的网关1,当从主 机C返回的数据包到达网关1后,网关1也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地 址的数据发往03-03-03-03-03-03这个MAC地址也就是主机B,主机B在收到这个包后再转发给主 机A完成一次完整的数据通讯,这样就成功的实现了一次ARP欺骗攻击。 因此简单点说ARP欺骗的目的就是为了实现全交换环境下的数据监听与篡改。到这里我们可以知道 要完成一次有效的ARP欺骗的关键点就是双向欺骗,也就是说欺骗者必须同时对网关和主机进行欺骗。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值