|
|
ARP的全称是Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,发的是广播(MAC地址为FF-FF-FF-FF-FF-FF)。在数据传输过程中,数据要封装成以太网帧(其帧格式如下图所示),当需要目的MAC地址时,就通过ARP广播来请求。
|
|
|
|
|
|
在OSI七层模型中,曾讲到数据在传输的过程中要进行不断地封装与解封装。当封装到第二层数据链路层时,需要知道源MAC地址与目的MAC地址,源MAC地址是自己网卡的,那么目的MAC地址如何得到呢?这时就需要主机发一个ARP广播来请求目的IP所对应的MAC地址,当目的主机与本机在同一个网段时,就能收到广播,给出单播回应;当目的主机在另外一个网段时,三层设备不转发广播,目的主机收不到请求,就不能回应,那怎么办呢?这时,主机的网关就会将自己的MAC地址回应给主机,这叫代理ARP。
|
|
|
|
A的地址为IP:192.168.10.11/24;MAC:AA-AA-AA-AA-AA-AA。
|
|
|
B的地址为IP:192.168.10.12/24;MAC:BB-BB-BB-BB-BB-BB。
|
|
|
A与B的网关IP:192.168.10.1/24;MAC:CC-CC-CC-CC-CC-CC。
|
|
|
|
IP包头中:源IP为192.168.10.11,目的IP为192.168.10.12。
|
|
|
以太网帧头中:源MAC为AA-AA-AA-AA-AA-AA,目的MAC为BB-BB-BB-BB-BB-BB。
|
|
|
|
IP包头中:源IP为192.168.10.11,目的IP为192.168.20.2。
|
|
|
以太网帧头中:源MAC为AA-AA-AA-AA-AA-AA,目的MAC为CC-CC-CC-CC-CC-CC。
|
|
|
|
|
(1)通信模式:请求→请求→请求→请求→请求→请求→应答→请求→请求→请求……
|
|
|
(2)描述:网络中出现大量的ARP请求广播包,几乎都是对网段内的所有主机进行扫描。大量的ARP请求广播可能会占用网络带宽资源;ARP扫描一般为ARP攻击的前奏。
|
|
|
|
|
ARP协议并不只在发送了ARP请求后才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。所以在网络中,如果有人发送一个自己伪造的ARP应答,网络可能就会出现问题。
|
|
|
假设一个网络环境中,网内有三台主机,分别为主机A、B、C。
|
|
|
|
A的地址为:IP地址是192.168.10.1,MAC地址是AA-AA-AA-AA-AA-AA。
|
|
|
B的地址为:IP地址是192.168.10.2,MAC地址是BB-BB-BB-BB-BB-BB。
|
|
|
C的地址为:IP地址是192.168.10.3,MAC地址是CC-CC-CC-CC-CC-CC。
|
|
|
正常情况下A和C之间进行通信,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为"发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)"。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址是192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通信的数据都经过了B。主机B完全可以知道它们之间说的什么。这就是典型的ARP欺骗过程。
|
|
|
ARP欺骗存在两种情况:一种是欺骗主机作为"中间人",被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通信数据;另一种是让被欺骗主机直接断网。
|
|
|
|
①通信模式:应答→应答→应答→应答→应答→请求→应答→应答→请求→应答……
|
|
|
②描述:这种情况就属于上面所说的典型的ARP欺骗,欺骗主机向被欺骗主机发送大量伪造的ARP应答包进行欺骗,当通信双方被欺骗成功后,自己成为一个"中间人"。此时被欺骗的主机双方还能正常通信,只不过在通信过程中被欺骗者"窃听"了。
|
|
|
|
|
①通信模式:应答→应答→应答→应答→应答→应答→请求……
|
|
|
②描述:这类情况就是在ARP欺骗过程中,欺骗者只欺骗了其中一方,如B欺骗了A,但是同时B没有对C进行欺骗,这样A实质上是在和B通信,所以A就不能和C通信了,另外一种情况就是欺骗者还可能伪造一个不存在的地址进行欺骗。
|
|
|
③出现原因:木马病毒、人为破坏和一些网管软件的控制功能。
|
|
|
|
目前对于ARP攻击防护主要有两种方法,一种是绑定IP和MAC,另一种是使用ARP防护软件。另外,也出现了具有ARP防护功能的路由器。我们来了解一下前两种方法。
|
|
|
|
最常用的方法就是进行IP和MAC静态绑定,在网内把主机和网关都进行IP和MAC绑定。
|
|
|
欺骗是通过ARP动态实时的规则欺骗内网机器,所以把ARP全部设置为静态,这样可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。
|
|
|
|
|
通过命令arp -s可以实现IP和MAC地址的静态绑定。
|
|
|
例如,使用arp -s命令,实现IP地址192.168.10.1和物理地址AA-AA-AA-AA-AA-AA之间的静态绑定。
|
|
|
|
如果设置成功,在PC上面执行arp -a时可以看到以下相关的提示。
|
|
|
|
|
|
说明:如果网络中有很多主机,如500台、1000台等,如果对每一台都去做静态绑定,工作量是非常大的。这种静态绑定,在电脑每次重启后,都必须重新再绑定,虽然也可以做一个批处理文件,但还是比较麻烦。
|
|
|
|
目前关于ARP类的防护软件出得比较多,比较常用的主要有ARP工具和Antiarp等。它们除了本身可以检测出ARP攻击外,防护的工作原理是以一定频率向网络广播正确的ARP信息。
|
|
|