现在局域网中感染ARP病毒的情况比较多,清理和防范都比较困难,给不少的网络管理员造成了很多的困扰。下面就是个人在处理这个问题的一些经验,同时也在网上翻阅了不少的参考资料。

 ARP病毒的症状
 有时候无法正常上网,有时候有好了,包括访问网上邻居也是如此,拷贝文件无法完成,出现错误;局域网内的ARP包爆增,使用ARP查询的时候会发现不正常的MAC地址,或者是错误的MAC地址对应,还有就是一个MAC地址对应多个IP的情况也会有出现。
 ARP***的原理
 ARP欺骗***的包一般有以下两个特点,满足之一可视为***包报警:第一以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库MAC/IP不匹配。这些统统第一时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道那台机器在发起***了。现在有网络管理工具比如网络执法官、P2P终结者也会使用同样的方式来伪装成网关,欺骗客户端对网关的访问,也就是会获取发到网关的流量,从而实现网络流量管理和网络监控等功能,同时也会对网络管理带来潜在的危害,就是可以很容易的获取用户的密码等相关信息。
处理的办法:
写个脚本提供大家参考,解决局域网内部的APR***
  c:
   cd\
   if exist ipconfig.txt del ipconfig.txt
   ipconfig /all >c:\ipconfig.txt //获取本地MAC地址
   if exist GateMac.txt del GateMac.txt
   arp -a %GateIP% >c:\GateMac.txt
   for /f “skip=3 tokens=2″%%H in(GateMac.txt)do set GateMac=%%H //获取出口路由(即网关)的MAc地址
   if exist GateIP.txt del GateIP.txt
   find “Default Gateway” ipconfig.txt >c:\GateIP.txt
   for /f “skip=2 tokens=13″%%G in (GateIP.txt) do set GateIP=%%G
   echo set Ws= Wscript.Createobject(“Wscript.Shell”) >c:\banding.vbs
   echo count =0>>banding.vbs
   echo for each ps in getobject(“winmgmts:\\.\root\cimv2:win32_process”).instances_>>banding.vbs
   
   间隔6秒重新将网关的IP地址与MAC地址进行绑定
   echo if ps.name=”wscript.exe” then count=count+1>>banding.vbs
   echo if count >2 then wscript.quit>>banding.vbs
   echo i=1 >>banding.vbs
   echo for i= 1 to 5>>banding.vbs
   echo i=i-1>>banding.vbs
   echo Wscript.sleep(1000*60*0.1)每6秒钟绑定一次 >>banding.vbs
   echo ws.run “arp-d”,0>>banding.vbs
   echo ws.run “arp -s %GateIP% %GateMac%”,0>>banding.vbs
   echo next >>banding.vbs
 
 
   清除ARP缓存,重新将本机的Ip地址与MAC地址进行绑定
   
    c:
    cd \
    start banding.vbs
    del /f /q GateMac.txt
    del /f /q ipconfig.txt
    del /f /q GateIP.txt
    copy banding.vbs c:\ windows\system32
    echo Windows Registry Editor Version 5.00 >c:\arp.reg
    echo.>>arp.reg
    echo [HKEY_LOC AL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>>arp.reg
    echo “arptom”=”c:\\windows\\system32\\banding.vbs”>>arp.reg
    regedit -is arp.reg
    del /f /q arp.reg
    del /f /q banding.vbs
    exit
 
 把这些代码复制放入记事本,后缀名保存为.bat
 适合各种环境