准备知识:
ARP数据包格式:
用wireshark抓取一个ARP广播包,内容如下:
以太网层目的MAC地址全f,代表广播,网络层ARP包目的MAC全0代表目的MAC未知。
wireshark抓取一个ARP应答包,内容如下:
arp -a 查看本机ARP缓存表:
静态绑定网关IP和MAC:
例如:arp –s 192.168.1.1 AA-AA-AA-AA-AA-AA
ARP攻击原理:
PC1向PC2发送数据包,但此时PC1只知道目的主机的IP地址IP2,不知道目的MAC,于是PC1先发送一条广播信息,MAC字段全f,此网段的所有主机都会收到这条广播信息,正常情况下只有PC2会应答,其他主机都是丢弃该数据包,PC2先将PC1 MAC1这条路由信息写入到自己的ARP映射表中,然后应答PC1我就是目的主机,其中包含PC2的IP和Mac信息,然后PC1收到应答后把PC2的IP和MAC加入到ARP缓存表中,至此双方都建立了连接。而在ARP攻击中,恶意主机PC3也会收到PC1 的广播包,他会伪装成PC2进行应答,即IP2 MAC3的数据包会发送给PC1,PC2和PC3同时发送ARP应答包给PC1,由于PC1会遵循后到达的数据包为真,PC3会反复的发送应答包给PC1,直到覆盖掉PC2的数据包,PC1的ARP缓存表里便会存入IP2 MAC3的条目,下一次它想发送数据给PC2时,数据包都会到达PC3,至此ARP攻击原理结束。
实验:
PC1 10.0.0.128 00:0c:29:56:79:f2
PC2 10.0.0.130 00:0c:29:65:62:0c
PC3 10.0.0.132 00:0c:29:cb:f0:c0
PC3向PC1发送arp攻击:
查看虚拟机1的arp 缓存表:
(arp攻击前)
(arp攻击后)
此时10.0.0.130(PC2)对应的MAC 地址已被修改为PC3的MAC地址
PC1ping PC2的IP地址,用wireshak 抓包发现:
PC1已经误以为PC3是目标主机发送数据包给他,而这会导致其不能正常与PC2通信了:
试着攻击PC1的网关,使其无法上网,
arp -a查看网关地址:
目的MAC已被更改为恶意主机PC3的MAC地址,而此时发现目标主机已无法上网或者上网速度非常慢:
arp攻击的防御:
静态绑定IP和MAC
对PC1的网关进行静态绑定,此时PC3再攻击PC1的网关时,发现已经不起作用,其网关地址并未改变,并且可以正常上网:
其他防御arp攻击的方法还有:
1. ARP 高速缓存超时设置
在ARP高速缓存中的表项一般都要设置超时值,缩短这个这个超时值能够有用的避免ARP表的溢出。
2. IP+MAC访问操控
单纯依托IP或MAC来树立信赖联系是不安全,抱负的安全联系树立在IP+MAC的根底上,这也是咱们校园网上网有必要绑定IP和MAC的因素之一。
3. 自动查询
在某个正常的时间,做一个IP和MAC对应的数据库,以后定时检查当时的IP和MAC对应联系是否正常,定时检查交流机的流量列表,检查丢包率。
ARP本身不能形成多大的损害,一旦被联系使用,其风险性就不可估量,因为ARP自身的疑问,使得防备ARP的攻击很棘手,经常检查当时的网络状况,监控流量对一个站长来说是个很好的习惯。