windows环境下,如果遭遇ARP攻击,解决方法很简单:“360安全卫士”或"QQ软件管理"的实时防护里,都有ARP防护功能(默认是关闭的),只要启用就行了。
但是Mac本上,就没这么方便了,先大概说下ARP攻击的原理:
我们在局域网中访问外网时,总是要经过网关才能出去,IP设置里网关设置的是一个具体的ip4地址(比如192.168.1.1),但是IP地址每台机器通常是可以随便设置的(只要不跟局域网中的其它机器冲突),这是一个逻辑上的虚拟地址,只有网络设备(比如网卡)本身的静态MAC地址,这个才是物理真实地址,所有对IP的访问,最终必须定位到MAC物理地址,才能直接跟物理设备通讯。OSI 7层网络模型里,IP处于第3层,MAC地址处于第2层,这二层并不能直接打交道,所以才需要ARP (Address Resolution Protocol) 地址解析协议来充当翻译。
ARP攻击时,就是通过伪装网关的MAC地址来达到欺骗的目的,更通俗的点,当你的机器访问网关(比如192.168.1.1)时,正常情况下,应该定位到网关路由器的真实物理地址(比如A),但是被攻击后,会被误导到其它假MAC地址(B),相当于你根本没通过网关正常访问,上不了网也就不奇怪了。
明白原理后,解决问题的思路就有了:
1、先找出网关的真实物理地址(即路由器的mac地址)
在mac本上安装虚拟机,然后在虚拟机里安装windows(开启ARP防护功能),这样环境就回到熟悉的windows了(或者找一台windows机器也行-前提是这台机器上安装有ARP防火墙,能正常上网),在windows的命运行中,输入 arp -a
C:\Users\jimmy.yang>arp -a
接口: 192.168.1.120 --- 0xb
Internet 地址 物理地址 类型
192.168.1.1 14-e6-e4-9b-38-aa 动态
192.168.1.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.2 01-00-5e-00-00-02 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态
从返回的结果中,就能知道192.168.1.1网关的物理地址是 14-e6-e4-9b-38-aa
2、回到mac环境中,将网关地址与物理地址绑定
在终端窗口中,输入:sudo arp -s 192.168.1.1 14:e6:e4:9b:38:aa pub
注:上面的物理地址,各节之间是用":"分隔的,不是"-"
一般情况下,这样就可以上网了,如果还不行,建议不要用DHCP动态获取IP,改成手动指定IP地址