ARP的原理和查杀方式

大家好!我是新会员猫猫,希望在以后的日子里大家互相学习。
现在入正题
前些天,女友的QQ闪动中向我发来讯息。
我满心欢喜的用快捷键(CTRL+ALT+Z)打开闪动的QQ
:页面几个大字:老公,我的电脑中毒了,杀了好些遍都没用55555555555555555555555555555
汗!!我利马就急着问她到底怎么回事
她用很普通的理解方式告诉我:能上QQ不能上网站,只有拔掉她的机器从路由上拔掉其他的机器才可以进行正常上网。
我听了她这句话以后立马想到这就是ARP劫持的迹象!!!
简单描述一下ARP劫持的的原理:
首先我们可以肯定一点的就是发送ARP欺骗包是通过一个恶毒的程序自动发送的,正常的TCP/IP网络是不会有这样的错误包发送的,而人工发送又比较麻烦。也就是说当***没有运行这个恶毒程序的话,网络上通信应该是一切正常的,保留在各个连接网络计算机上的ARP缓存表也应该是正确的,只有程序启动开始发送错误ARP信息以及ARP欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下ARP欺骗的原理。
第一步:假设这样一个网络,一个Hub或交换机连接了3台机器,依次是计算机A,B,C
A的地址为:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA B的地址为:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB C的地址为:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC
第二步:正常情况下在A计算机上运行ARP -A查询ARP缓存表应该出现如下信息。
Interface: 192.168.1.1 on Interface 0x1000003 Internet Address Physical Address Type 192.168.1.3 CC-CC-CC-CC-CC-CC dynamic 第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3(C的IP地址)和无效的DD-DD-DD-DD-DD-DD mac地址。
第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3(C的IP地址)和无效的DD-DD-DD-DD-DD-DD mac地址。
第四步:欺骗完毕我们在A计算机上运行ARP -A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。Interface: 192.168.1.1 on Interface 0x1000003 Internet Address Physical Address Type 192.168.1.3 DD-DD-DD-DD-DD-DD dynamic从上面的介绍我们可以清楚的明白原来网络中传输数据包最后都是要根据MAC地址信息的,也就是说虽然我们日常通讯都是通过IP地址,但是最后还是需要通过ARP协议进行地址转换,将IP地址变为MAC地址。而上面例子中在计算机A上的关于计算机C的MAC地址已经错误了,所以即使以后从A计算机访问C计算机这个192.168.1.3这个地址也会被ARP协议错误的解析成MAC地址为DD-DD-DD-DD-DD-DD的。问题也会随着ARP欺骗包针对网关而变本加厉,当局域网中一台机器,反复向其他机器,特别是向网关,发送这样无效假冒的ARP应答信息包时,严重的网络堵塞就会开始。由于网关MAC地址错误,所以从网络中计算机发来的数据无法正常发到网关,自然无法正常上网。这就造成了无法访问外网的问题,另外由于很多时候网关还控制着我们的局域网LAN上网,所以这时我们的LAN访问也就出现问题了。
发作后的反应:网络掉线,但网络连接正常,内网的部分PC机不能上网,或者所有电脑不能上网,无法打开网页或打开网页慢,局域网时断时续并且网速较慢等。
呵呵........话说了那么多!大家最关心的是到底怎么查杀这个讨厌的ARP***病毒呢?嘿嘿!!
ARP病毒的查找目标机:一、在任意客户机上进入命令提示符(或MS-DOS方式),用arp –a命令查看: C:WINNTsystem32>arp -aInterface: 192.168.100.93 on Interface 0x1000003Internet Address Physical Address Type192.168.100.1 00-50-da-8a-62-2c dynamic192.168.100.23 00-11-2f-43-81-8b dynamic192.168.100.24 00-50-da-8a-62-2c dynamic192.168.100.25 00-05-5d-ff-a8-87 dynamic192.168.100.200 00-50-ba-fa-59-fe dynamic 可以看到有两个机器的MAC地址相同,那么实际检查结果为 00-50-da-8a-62-2c为192.168.0.24的MAC地址,192.168.100.1的实际MAC地址为00-02-ba-0b-04-32,我们可以判定192.168.100.24实际上为有病毒的机器,它伪造了192.168.100.1的MAC地址。
二、在192.168.100.24上进入命令提示符(或MS-DOS方式),用arp –a命令查看: C:WINNTsystem32>arp -aInterface: 192.168.100.24 on Interface 0x1000003Internet Address Physical Address Type192.168.100.1 00-02-ba-0b-04-32 dynamic192.168.100.23 00-11-2f-43-81-8b dynamic192.168.100.25 00-05-5d-ff-a8-87 dynamic192.168.100.193 00-11-2f-b2-9d-17 dynamic192.168.100.200 00-50-ba-fa-59-fe dynamic 可以看到带病毒的机器上显示的MAC地址是正确的,而且该机运行速度缓慢,应该为所有流量在二层通过该机进行转发而导致,该机重启后所有电脑都不能上网,只有等arp刷新MAC地址后才正常,一般在2、3分钟左右。
三、如果主机可以进入dos窗口,用arp –a命令可以看到类似下面的现象: C:WINNTsystem32>arp -aInterface: 192.168.100.1 on Interface 0x1000004Internet Address Physical Address Type192.168.100.23 00-50-da-8a-62-2c dynamic192.168.100.24 00-50-da-8a-62-2c dynamic192.168.100.25 00-50-da-8a-62-2c dynamic192.168.100.193 00-50-da-8a-62-2c dynamic192.168.100.200 00-50-da-8a-62-2c dynamic 该病毒不发作的时候,在代理服务器上看到的地址情况如下: C:WINNTsystem32>arp -aInterface: 192.168.100.1 on Interface 0x1000004Internet Address Physical Address Type192.168.0.23 00-11-2f-43-81-8b dynamic192.168.100.24 00-50-da-8a-62-2c dynamic192.168.100.25 00-05-5d-ff-a8-87 dynamic192.168.100.193 00-11-2f-b2-9d-17 dynamic192.168.100.200 00-50-ba-fa-59-fe dynamic 病毒发作的时候,可以看到所有的ip地址的mac地址被修改为00-50-da-8a-62-2c正常的时候可以看到MAC地址均不会相同。[local]1[/local]
我让女友先打开CMD(开始-运行-输入CMD-确定),进入MS-DOS窗口,输入命令:ipconfig /all 查看本机IP(IP ADDRESS)和MAC(Physical Address),再输入arp –a 查看网关IP对应的正确MAC地址,将其记录下来。  注:如果已经不能上网,则先运行一次命令arp –d将arp缓存中的内容删空,计算机可暂时恢复上网(***如果不停止的话),       一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp –a。如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被***影响。手工绑定可在MS-DOS窗口下运行以下命令:arp –s 网关IP(Internet Address)网关MAC(Physical Address Type)
这时,类型变为静态(static),就不会再受***影响了。
做到这里,女友的机器是恢复正常了
但是我告诉她,只有查找出网内中毒的机器杀毒才能恢复而使下次开机后正常上网!
不燃的话这样的操作还需要在每次开机时重复一次
女友微微一笑的头像发过来了!!(没什么,我大不了以后多重复几次,暴汗.........)
她算是开心了,但是我的活可不能停下!我得继续啊.......
当用ARP -A查找到网内有主机类型为动态(Dynamic)的时候,确定主机位置
再进行如下操作:
1.在设备结构中打开“非即插既用驱动程序”找到“NetGroup Packet Filter”或“NetGroup Packet Filter Driver” 把它删了(如果没有就说明没有中毒)
2 删除病毒文件
%windows%\SYSTEM32\LOADHW.EXE
%windows%\System32\msitinit.dll
%windows%\System32\drivers\npf.sys
有的机器有个文件可能没有
3.计算机管理->设备管理器->查看->显示隐藏设备
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Npf
4 删除注册表里的 找这个 NPF 应该有2个左右 看到就删
然后重新启动
把ARP防火墙(自己下载)打开就可以了
值得注意的是,在进行上面操作的时候最好先拔掉网线!
这样的话,ARP病毒就不能在里机器里威风了!!!忽忽.................在这里我附上批处理论坛里别人做的一个ARP双绑定防御系统.exe希望对大家有帮助!!!