目前知道的带有ARP欺骗功能的软件有“QQ第六感”、“网络执法官”、“P2P终结者”、“网吧传奇杀手”等,这些软件中,有些是人为手工操作来破坏网络的,有些是做为病毒或者木马出现,使用者可能根本不知道它的存在,所以更加扩大了ARP攻击的杀伤力。
从影响网络连接通畅的方式来看,ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进行。不管理怎么样,欺骗发送后,电脑和路由器之间发送的数据可能就被送到错误的MAC地址上,从表面上来看,就是“上不了网”,“访问不了路由器”,“路由器死机了”,因为一重启路由器,ARP表会重建,如果ARP攻击不是一直存在,就会表现为网络正常,所以网吧业主会更加确定是路由器“死机”了,而不会想到其他原因。为此,宽带路由器背了不少“黑锅”,但实际上应该ARP协议本身的问题。
如果出现这种问题,一般有如下几个特点:
1、局域网内部所有的(或者大多数)PC都ping不通网关地址,无法上网;但是网卡、交换机的连接指示灯都是正常的。
2、由于Windows系统默认的ARP timeout时间较长,即便是立刻找出了是哪个PC搞的鬼,只关闭该PC也无法立刻解决问题,还需要在客户PC上清空ARP表[在CMD模式下执行arp /d]重新学习或者干脆重启PC才行。
3、虽然这些ARP欺骗是仿冒了路由器网口的MAC的地址,但实际上它们并不需要真的把自己网卡的ip/ mac设置的和路由器一样,所以路由器上通常不会有地址冲突的告警提示。
要确认该问题方法也很简单,在确保局域网交换机正常工作和网线正常连接的情况下,随便找个不能上网的PC,打开CMD命令行界面,执行arp /a,察看网关ip地址对应的mac是否是路由器的网口的mac地址,如果不是,那么基本可以确定是ARP欺骗了。例如:
这是PC端的ARP表项:
C:/>arp /a
Interface: 192.168.19.180 --- 0x2
Internet Address Physical Address Type
192.168.0.3 00-90-27-a7-ad-00 dynamic
192.168.0.1 00-e0-0f-58-cc-1c(路由器以太网口的MAC地址信息) dynamic
192.168.0.10 00-0a-5e-04-72-50 dynamic
再查看路由器以太网口的MAC地址信息:00-e0-0f-58-cc-1c 192.168.0.1,如果上面所查看到的不是Router的MAC,说明有人在故意扰乱。
如果是ARP问题,通常会导致全网不通的掉线,影响很大,也很容易发现和定位。应急处理的方法和不难,前面已经说过。对于预防的方法,可以在每个PC上使用CMD命令:arp -s 192.168.1.6 00-e0-0f-62-c6-09来绑定静态的ARP表项,但是每个PC都要配置,实施、维护起来比较麻烦。每次开机都会重新绑定静态的ARP表项,所以很麻烦,可以新建一个批处理文件如static_arp.bat,注意后缀名为bat。编辑它,以后可以通过双击它来执行这条命令,还可以把它放置到系统的启动目录下来实现启动时自己执行。打开电脑“开始”->“程序”,双击“启动”打开启动的文件夹目录,把刚才建立的static_arp.bat复制到里面去,以后电脑每次启动时就会自己执行arp –s命令了。
在路由器上面也有ARP静态绑定的命令,但是ARP欺骗的是仿冒网关的身份去欺骗局域网的PC,所以在路由器上绑定各个PC的mac地址意义不大。不过这种方式倒是可以防止局域网PC乱改ip地址。