admin管理员组文章数量:1532656
2024年5月20日发(作者:)
Arp攻击原理及防范
1.ARP协议简介
在局域网中,一台主机要和另一台主机进行通信,必须要知道另一台主机的IP地址,
但是最终负责在局域网中传送数据的网卡等物理设备是不识别IP地址的,只能识别其MAC
地址。MAC地址是48位的,通常表示为12个16进制数,每2个16进制数之间用“-”
或者冒号隔开,如:FF-FF-FF-FF-FF-FF就是一个MAC地址。每一块网卡都有其全球唯一
的MAC地址,网卡之间发送数据,只能根据对方网卡的MAC地址进行发送,这时就需
要一个将数据包中的IP地址转换成MAC地址的协议,而这个重要的任务将由ARP协议
完成。
ARP全称为Address Resolution Protocol,即地址解析协议。所谓“地址解析”就
是主机在发送数据包前将目标主机IP地址转换成目标主机MAC地址的过程。ARP协议的
基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进
行。 这时就涉及到一个问题,一个局域网中的电脑少则几台,多则上百台,这么多的电脑
之间,如何能准确的记住对方电脑网卡的MAC地址,以便数据的发送呢?这就涉及到了
另外一个概念,ARP缓存表。在局域网的任何一台主机中,都有一个ARP缓存表,该表
中保存这网络中各个电脑的IP地址和MAC地址的对照关系。当这台主机向同局域网中另
外的主机发送数据的时候,会根据ARP缓存表里的对应关系进行发送。
下面,我们用一个模拟的局域网环境,来说明ARP欺骗的过程。
2.ARP欺骗过程:
如图(1)所示(在相册)局域网中有三台主机与交换机相连接,主机名分别为A、B、
C,交换机为网关命名为S,IP如图所示。现在A与C进行通信,正常情况下通信过程如
下:A将自身的数据打包目地IP为C的IP,因为不知道C的MAC,所以A向全网发出
ARP请求要求得到C的MAC, C收到广播报文后将自身的MAC地址发送给A, A得到
C的MAC后将数据打包,封装目的为C的IP和MAC,然后将数据包发送给S;S收到该
包后拆包得到C的MAC,然后再对照自身的ARP缓存表,将数据包发送给C,一次通信
完成。
这样的机制看上去很完美,似乎整个局域网也天下太平,相安无事。但是,上述数据
发送机制有一个致命的缺陷,即它是建立在对局域网中电脑全部信任的基础上的,也就是
说它的假设前提是:无论局域网中那台电脑,其发送的ARP数据包都是正确的。那么这样
就很危险了!因为局域网中并非所有的电脑都安分守己,往往有非法者的存在。此时A想
得到C的MAC向全网发送广播,C将自己的MAC发给A,而此时一直沉默的B也向全
网发出广播报文,说自已的IP为192.168.0.4MAC为B的MAC即MAC_b,原本A得到
的C的MAC是正确的,由于B不停的发送广播报文,但A不知道B的MAC是伪造的,
导致A重新动态更新自己的ARP缓存表,此时A的ARP缓存表里记录了一条错误的记录,
这就导致了A以后要发送给C的数据全部发给了B。这就是ARP欺骗中冒充主机的方式。
如果B冒充网关又会是什么情况呢?大家知道局域网中所有电脑上网都要通过网关转
发数据才能登陆互联网。此时如果B向全网发送广播说我的IP为192.168.0.1 MAC为
MAC_b即B自己的MAC,由于局域网通信的前提条件是信任任何电脑发送的ARP广播
包。这样局域网中的其它电脑都会更新自身的ARP缓存表,记录下192.168.0.1-MAC_b
这样的记录,这样,当它们发送给网关,也就是IP地址为192.168.0.1这台电脑的数据,
结果都会发送到MAC_b这台电脑中!这样,B就将会监听整个局域网发送给互联网的数
据包!
版权声明:本文标题:Arp攻击原理及防范 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1716168496a489646.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论