原作者:rockaka

一 什么是ARP协议?

ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓地址解析就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。所以说从某种意义上讲ARP协议是工作在更低于IP协议的协议层。这也是为什么ARP欺骗更能够让人在神不知鬼不觉的情况下出现网络故障,他的危害更加隐蔽。

ARP欺骗的原理:

首先我们可以肯定一点的就是发送ARP欺骗包是通过一个恶毒的程序自动发送的,正常的TCP/IP网络是不会有这样的错误包发送的,而人工发送又比较麻烦。也就是说当***没有运行这个恶毒程序的话,网络上通信应该是一切正常的,保留在各个连接网络计算机上的ARP缓存表也应该是正确的,只有程序启动开始发送错误ARP信息以及ARP欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下ARP欺骗的原理。

第一步:假设这样一个网络,一个Hub或交换机连接了3台机器,依次是计算机ABC

A的地址为:IP192.168.1.1 MAC: AA-AA-AA-AA-AA-AA 

B的地址为:IP192.168.1.2 MAC: BB-BB-BB-BB-BB-BB 

C的地址为:IP192.168.1.3 MAC: CC-CC-CC-CC-CC-CC 

第二步:正常情况下在A计算机上运行ARP -A查询ARP缓存表应该出现如下信息。

Interface: 192.168.1.1 on Interface 0x1000003 
Internet Address Physical Address Type
192.168.1.3 CC-CC-CC-CC-CC-CC dynamic

第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。

B A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3CIP地址),MAC地址是DD-DD-DD-DD-DD-DDCMAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3CIP地址)和无效的DD-DD-DD-DD-DD-DD mac地址。

第四步:欺骗完毕我们在A计算机上运行ARP -A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。

Interface: 192.168.1.1 on Interface 0x1000003 

Internet Address Physical Address Type

192.168.1.3 DD-DD-DD-DD-DD-DD dynamic

从上面的介绍我们可以清楚的明白原来网络中传输数据包最后都是要根据MAC地址信息的,也就是说虽然我们日常通讯都是通过IP地址,但是最后还是需要通过ARP协议进行地址转换,将IP地址变为MAC地址。而上面例子中在计算机A上的关于计算机CMAC地址已经错误了,所以即使以后从A计算机访问C计算机这个192.168.1.3这个地址也会被ARP协议错误的解析成MAC地址为DD-DD-DD-DD-DD-DD的。问题也会随着ARP欺骗包针对网关而变本加厉,当局域网中一台机器,反复向其他机器,特别是向网关,发送这样无效假冒的ARP应答信息包时,严重的网络堵塞就会开始。由于网关MAC地址错误,所以从网络中计算机发来的数据无法正常发到网关,自然无法正常上网。这就造成了无法访问外网的问题,另外由于很多时候网关还控制着我们的局域网LAN上网,所以这时我们的LAN访问也就出现问题了。

(以上2节内容摘抄于网络)

ARP欺骗的模拟:


下面我们使用科来网络分析系统进行模拟

一 首先使用 科来物理地址扫描 主机ipmac地址

 

219.150.184.46  00:0C:76:20:0F:23

219.150.184.39  00:16:76:C2:BF:84

219.150.184.33  00:E0:FC:12:D0:19

 

 

 

使用科来网络分析系统捕获一个arp的响应数据包

这里最简单的办法就是用ping命令去ping一台主机,在科来网络分析系统系统中设置过滤器仅捕获arp协议


 

三 把捕获到的arp相应发送到数据包苟照构造器并进行如下修改

 

四 呵呵,剩下的就是把这个数据包发送出去了,

    发送前用arp –a命令在219.150.184.46上看一下

这是正确的网关的ipmac的对应关系

 

好了,现在我们就把构造的数据包发送出去

 

发送后在用arp –a命令在219.150.184.46上看一下

ok 219.150.184.46上面的网关的ip地址已经被映射到了我们的主机上了,你再用219.150.184.46去试下,是不是不能上网了?!呵呵!