ARP 的概念及作用
ARP 是地址转换协议(Address Resolution Protocal)的英文缩写,工作在链路层,同时对上层(网络层)提供服务。ARP 既然是地址转换协议,它的主要功能就是把 IP 地址转换为 MAC 地址。
为什么要进行转换呢?主要原因就是二层交换设备(二层交换机)是无法识别 32 位的 IP 地址的,只能根据 MAC 地址进行数据包的分发。
所以局域网内的一台主机 A 想要与另一台主机 B 通信就需要同时知道 B 的 IP 地址和 MAC 地址,IP 地址相当于你的姓名,但要确定要找的人是你,还需要知道你的身份证号,MAC 地址就相当于身份证号,全球唯一。
ARP 攻击原理
上面说到 A 想要与另一台主机 B 通信就需要同时知道 B 的 IP 地址和 MAC 地址。但是刚开始主机 A 是不知道主机 B 的 MAC 地址的,那么他需要怎么做呢?这是他就在 B 所在的小区里大喊:“谁是 B ?”。这时 B 收到了就回复:“我是B,我的身份证号是XXX”。
A 收到 B 的回复后就会把 B 的 IP 地址与 B 的 MAC 地址绑定,并写入 A 的ARP 缓存表。Windows 下可以使用arp -a
可查看 ARP 缓存表。
知道了 AB 如何通信的,下面来看一看如何进行 ARP 欺骗。从上面也可以看出,由于 A 是发送的广播包(在小区大喊),所以所有人都能收到,一般来说不是叫自己,不搭理就完了。但若有人心怀不轨,那他就完全可以假冒 B,把自己的信息发给 A,让 A 与自己通信。这也就是 ARP 欺骗的原理。
根据假冒角色的不同分为两种欺骗:
- 主机型 ARP 欺骗:欺骗者主机冒充网关设备对其他主机进行欺骗
- 网关型 ARP 欺骗:欺骗者主机冒充其他主机对网关设备进行欺骗
ARP 有个特点就是后到优先,也就是说后到的信息会替换以前的。比如,A 向 B 发送 ARP 请求报文后,B 和 攻击者都会回复,而 A 会存储后回复的。所以,攻击者需要做的就是不停地向 A 发送回应,直到 A 相信。
ARP 欺骗的危害
ARP 攻击属于中间人攻击,攻击者就相当于一个中间人,可以截获你和服务器通信时的信息,如假如一台服务器搭建了 FTP 服务来上传文件供其他人下载,你连接这台服务器下载文件或上传文件时需要输入账号密码,攻击者通过抓取你们的通信,就能获得你登陆用的账号和密码。
ARP 攻击还有一个危害就是可以让你断网,因为攻击者会发送大量的数据包,造成你的网络拥塞。
ARP 攻击的防护
对于普通用户来说,安装一些 ARP 防火墙就能防御,许多杀毒防护软件都自带有。
如果还不行仍有两种方案可以采取:
方案一:放弃 ARP 报文,改用PPTP PPOE之类的报文来连接。PPP协议有加密,消耗 CPU 很高。
方案二:使用静态ARP设置,停用ARP报文。这个方案比较复杂,能彻底决解。但需要交换机支持,而且只有在交换机里绑定了mac:ip的客户机才能上网。