- UID
- 872339
|
关键字:ARP 欺骗攻击
一、ARP欺骗攻击ARP(Address Resolution Protocol,地址解析协议)是局域网中用来进行地址解析的协议,它将IP地址映射到MAC地址。
图1所示为ARP地址解析的过程。当PC1要给PC2发送报文时,它先检查本地的ARP缓存,如果没有查找到PC2的MAC地址,则向网络中发送一个广播的ARP(ARP Request)请求报文,表示要请求解析PC2(172.16.1.2)的MAC地址,并且此报文的目的MAC地址为广播地址FFFF。
FFFF.FFFF.由于ARP请求报文是广播报文,网络中所有的设备都会接收到,但只有IP地址与ARP请求报文中被请求解析的IP地址相同的设备才会回复。图中由于PC2的IP地址就是PC1要请求的对象,PC2将回复一个单播的ARP应答(ARP Reply)报文,表示自己(172.16.1.2)的MAC地址是0002.0002.0002,报文的目的MAC地址为PC1的MAC地址(0001.0001.0001),也就是说,只有PC1会收到此应答。当PC1收到ARP应答报文后,它便获知了PC2的MAC地址,并将此条目加入到ARP缓存表中,用于后续的数据发送。
由于ARP当初被开发时,没有考虑到安全的因素,不存在任何的验证机制,所以就导致了ARP报文很容易伪造,也就是被欺骗。另一方面,发送ARP请求的设备并不能判断收到的ARP应答是否合法,是否为正确的源所发送的,只要它接收到ARP应答报文,它就将结果放入ARP表中,而不管是否之前已经存在此条目,或者与之前存在的条目不一样,这就给攻击者可趁之机。利用以上这些缺陷,攻击者就可以通过发送伪造(欺骗)的ARP应答报文(应答报文中的IP与MAC的绑定关系是错误的、伪造的)来更新其他设备的ARP缓存,导致其他设备之间不能正常进行通信。
图2所示就是一个典型的ARP攻击。用户PC的IP地址为172.16.1.2,网管出口的路由器地址为172.16.1.1,所有PC要发往外部网络的数据都要通过网关。我们来看一下攻击者(Attacker,172.16.1.3)是如何发起ARP欺骗攻击。在PC要向外部网络发送数据是,首先它要使用ARP请求报文去请求网关的MAC地址,由于请求是广播的,攻击者也可以收到此请求报文。之后攻击者将向PC发送伪造的ARP应答报文,而且攻击者可以通过特定的工具以特定的速率连续发送伪造的ARP应答报文。当PC收到伪造的应答报文后,它会毫不犹豫地将伪造报文的错误绑定信息加入到本地的ARP缓存中,不管之前是否已经获得了正确的绑定信息。攻击者在它发送的应答报文中“声称”自己就是网关,即172.16.1.1的MAC地址是0003.0003.0003(攻击者的MAC地址)。这样后续PC发往网关的数据都会发给攻击者而不是网关,达到了欺骗的目的,从而造成PC不能正常访问外部网络资源。 |
|