ARP学习

来源:互联网 发布:秦美人骑兵进阶数据 编辑:程序博客网 时间:2024/05/18 01:53

ARP: Address Resolution Protocol(地址解析协议)

简单的说就是在广义的局域网内将IP解析为MAC地址:

IP 数据包常通过以太网发送,以太网设备并不识别 32 位 IP 地址,它们是以 48 位以太网地址传输以太网数据包。因此,必须把 IP 目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP 协议用于将网络中的 IP 地址解析为的硬件地址(MAC 地址),以保证通信的顺利进行。 

 ARP 工作原理: 
首先,每台主机都会在自己的 ARP 缓冲区中建立一个  ARP 列表,以表示 IP 地址和 MAC地址的对应关系。   
当源主机需要将一个数据包要发送到目的主机时,会首先检查自己  ARP 列表中是否存在该  IP 地址对应的 MAC 地址,如果有﹐就直接将数据包发送到这个 MAC 地址;如果没有,就向本地网段发起一个 ARP 请求的广播包,查询此目的主机对应的 MAC 地址。此 ARP 请求数据包里包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。 
网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆盖,然后给源主机发送一个  ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地址;   
源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。 

值得一提的是:ARP 协议并不只在发送了 ARP 请求才接收 ARP 应答。当计算机接收到 ARP 应答数据包的时候,就会对本地的 ARP 缓存进行更新,将应答中的 IP 和 MAC 地址存储在 ARP 缓存中。所以在网络中,有人发送一个自己伪造的 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攻击过程,但是里面却忽略了一点,B发送的ARP应答包,A和C可能都会受到,譬如B向A发送的ARP应答包:IP  地址是 192.168.10.3BB-BB-BB-BB-BB-BBB的了呢,这时候C会做出什么反应呢?因为没有测试,也是网上偶然看到的,似乎C会提示IP冲突,理论上讲似乎是对的。

网上找了点资料:IP冲突后,操作系统的处理
里面讨论的很热烈,有人猜测有人试验,哈哈,咱还是根据他们的试验结果来说事吧

实验证实:vista机器自己也不弹出地址冲突提示,只是让其手动设置的网卡地址变为169段的一个地址。

也就是说,如果C是vista,那么他在收到B发给A的ARP欺骗应答包时,会将自己的地址变为169段,这样上面的攻击就失效了。

所以说通过ARP欺骗作为中间人攻击,应该不是上面例子中讲的那么简单,肯定还有其它一些控制,至于是什么,暂时就不明确了

但是ARP下线攻击,就没那么多条条杠杠了。


原创粉丝点击