ARP病毒问题的处理
有关ARP病毒问题的处理说明:
故障现象:机器以前可正常上网的,突然出现可认证,不能上网的现象(无法ping通网关),重启机器或在MSDOS窗口下运行命令ARP -d后,又可恢复上网一段时间。 故障原因:
这是APR病毒欺骗***造成的。 引起问题的原因一般是由传奇外挂携带的ARP******。当在局域网内使用上述外挂时,外挂携带的病毒会将该机器的MAC地址映射到网关的IP地
址上,向局域网内大量发送ARP包,从而致使同一网段地址内的其它机器误将其作为网关,这就是为什么掉线时内网是互通的,计算机却不能上网的原因。
临时处理对策:
步骤一. 在能上网时,进入MS-DOS窗口,输入命令:arp –a 查看网关IP对应的正确MAC地址,将其记录下来。

注:如果已经不能上网,则先运行一次命令arp –d将arp缓存中的内容删空,计算机可暂时恢复上网(***如果不停止的话),一旦能上网就立即将网络断掉(禁用网卡或拔
掉网线),再运行arp –a。
步骤二. 如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被***影响。手工绑定可在MS-DOS窗口下运行以下命令: arp –s
网关IP 网关MAC
例如:假设计算机所处网段的网关为218.197.192.254,本机地址为218.197.192.1在计算机上运行arp –a后输出如下:
C:\Documents and Settings>arp -aInte***ce: 218.197.192.1 --- 0x2Internet Address Physical Address Type218.197.192.254 00-01-02-03-04-05 dynamic
其中00-01-02-03-04-05就是网关218.197.192.254对应的MAC地址,类型是动态(dynamic)的,因此是可被改变。
被***后,再用该命令查看,就会发现该MAC已经被替换成***机器的MAC,如果大家希望能找出***机器,彻底根除***,可以在此时将该MAC记录下来,为以后查找做准备。
手工绑定的命令为:
arp –s 218.197.192.254 00-01-02-03-04-05
绑定完,可再用arp –a查看arp缓存,

C:\Documents and Settings>arp -aInte***ce: 218.197.192.1 --- 0x2Internet Address Physical Address
Type218.197.192.254 00-01-02-03-04-05 static
这时,类型变为静态(static),就不会再受***影响了。但是,需要说明的是,手工绑定在计算机关机重开机后就会失效,需要再绑定。所以,要彻底根除***,只有找出
网段内被病毒感染的计算机,令其杀毒,方可解决。找出病毒计算机的方法:
如果已有病毒计算机的MAC地址,可使用NBTSCAN软件找出网段内与该MAC地址对应的IP,即病毒计算机的IP地址,然后可报告校网络中心对其进行查封。
NBTSCAN的使用方法:
下载nbtscan.rar到硬盘后解压,然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:\windows\system32(或system)下,进入MSDOS窗口就可以输入命令:
nbtscan -r 218.197.192.0/24 (假设本机所处的网段是218.197.192,掩码是255.255.255.0;实际使用该命令时,应将斜体字部分改为正确的网段) 。 注:使用nbtscan时,
有时因为有些计算机安装防火墙软件,nbtscan的输出不全,但在计算机的arp缓存中却能有所反应,所以使用nbtscan时,还可同时查看arp缓存,就能得到比较完全的网段内
计算机IP与MAC的对应关系。
补充一下:
Anti ARP Sniffer 使用说明
一、功能说明:
使用Anti ARP Sniffer可以防止利用ARP技术进行数据包截取以及防止利用ARP技术发送地址冲突数据包。
二、使用说明:
1、ARP欺骗:
填入网关IP地址,点击[获取网关mac地址]将会显示出网关的MAC地址。点击[自动防护]即可保护当前网卡与该网关的通信不会被第三方监听。
注意:如出现ARP欺骗提示,这说明***者发送了ARP欺骗数据包来获取网卡的数据包,如果您想追踪***来源请记住***者的MAC地址,利用MAC地址扫描器可以找出IP 对应的
MAC地址。
2、IP地址冲突
首先点击“恢复默认”然后点击“防护地址冲突”。
如频繁的出现IP地址冲突,这说明***者频繁发送ARP欺骗数据包,才会出现IP冲突的警告,利用Anti ARP Sniffer可以防止此类***。
首先您需要知道冲突的MAC地址,Windows会记录这些错误。查看具体方法如下:
右击[我的电脑]-->[管理]-->点击[事件查看器]-->点击[系统]-->查看来源为[TcpIP]--->双击事件可以看到显示地址发生冲突,并记录了该MAC地址,请复制该MAC地址并填入
Anti ARP Sniffer的本地MAC地址输入框中(请注意将:转换为-),输入完成之后点击[防护地址冲突],为了使MAC地址生效请禁用本地网卡然后再启用网卡,在CMD命令行中输入
Ipconfig /all,查看当前MAC地址是否与本地MAC地址输入框中的MAC地址相符,如果更改失败请与我联系。如果成功将不再会显示地址冲突。
注意:如果您想恢复默认MAC地址,请点击[恢复默认],为了使MAC地址生效请禁用本地网卡然后再启用网卡。
ARP病毒***技术分析与防御
一、ARP Spoofing***原理分析
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产
生大量的ARP通信量使网络阻塞或者实现“man in the middle” 进行ARP重定向和嗅探***。 用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的***。
每个主机都用一个ARP高速缓存存放最近IP地址到MAC硬件地址之间的映射记录。MS Windows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始
算起。
默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。
***者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人***。
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和 MAC地址存储在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可不知道被伪造了)。 当***源大量向局域网中发送虚假的ARP信息后,就会造成局域网中的机器
ARP缓存的崩溃。
Switch上同样维护着一个动态的MAC缓存,它一般是这样,首先,交换机内部有一个对应的列表,交换机的端口对应MAC地址表Port n <-> Mac记录着每一个端口下面存在那些MAC
地址,这个表开始是空的,交换机从来往数据帧中学习。因为MAC-PORT缓存表是动态更新的,那么让整个 Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送
大量假MAC地址的数据包,Switch就更新MAC-PORT缓存,如果能通过这样的办法把以前正常的MAC和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch
基本变成一个 HUB,向所有的端口发送数据包,要进行嗅探***的目的一样能够达到。也将造成Switch MAC-PORT缓存的崩溃,如下下面交换机中日志所示:
Internet 172.20.156.10000b.cd85.a193 ARPAVlan256Internet 172.20.156.50000b.cd85.a193 ARPAVlan256Internet 172.20.156.254 0000b.cd85.a193 ARPAVlan256Internet
172.20.156.53 0000b.cd85.a193 ARPAVlan256Internet 172.20.156.33 0000b.cd85.a193 ARPAVlan256Internet 172.20.156.130000b.cd85.a193 ARPAVlan256Internet 172.20.1
56.150000b.cd85.a193 ARPAVlan256Internet 172.20.156.140000b.cd85.a193 ARPAVlan256
二、ARP病毒分析
当局域网内某台主机运行ARP欺骗的***程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒
主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,
这样病毒主机就可以盗号了。
由于ARP欺骗的***程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的***程序停止运行时,用户
会恢复从路由器上网,切换过程中用户会再断一次线。
在路由器的“系统历史记录”中看到大量如下的信息:
MAC Chged 10.128.103.124MAC Old 00:01:6c:36:d1:7fMAC New 00:05:5d:60:c7:18
这个消息代表了用户的MAC地址发生了变化,在ARP欺骗***开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机
的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。
如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的***程序停止运行时,主机在路由器上恢复其真实的MAC地址)。
BKDR_NPFECT.A病毒引起ARP欺骗之实测分析
Part1. 病毒现象
中毒机器在局域网中发送假的APR应答包进行APR欺骗, 造成其他客户机无法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通信.
Part2. 病毒原理分析:
病毒的组件
本文研究的病毒样本有三个组件构成:
%windows%\SYSTEM32\LOADHW.EXE(108,386 bytes) ….. ”病毒组件释放者”
%windows%\System32\drivers\npf.sys(119,808 bytes) ….. ”发ARP欺骗包的驱动程序”
%windows%\System32\msitinit.dll (39,952 bytes)…”命令驱动程序发ARP欺骗包的控制者”
病毒运作基理:
1.LOADHW.EXE 执行时会释放两个组件npf.sys 和msitinit.dll .
LOADHW.EXE释放组件后即终止运行.
注意: 病毒假冒成winPcap的驱动程序,并提供winPcap的功能. 客户若原先装有winPcap,
npf.sys将会被病毒文件覆盖掉.
2.随后msitinit.dll将npf.sys注册(并监视)为内核级驱动设备: "NetGroup Packet Filter Driver"
msitinit.dll 还负责发送指令来操作驱动程序npf.sys (如发送APR欺骗包, 抓包, 过滤包等)
以下从病毒代码中提取得服务相关值:
BinaryPathName = "system32\drivers\npf.sys"StartType = SERVICE_AUTO_STARTServiceType= SERVICE_KERNEL_DRIVERDesiredAccess= SERVICE_ALL_ACCESSDisplayName =
 "NetGroup Packet Filter Driver"ServiceName = "Npf"
3. npf.sys 负责监护msitinit.dll. 并将LOADHW.EXE注册为自启动程序:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
dwMyTest =LOADHW.EXE
注: 由于该项位于RunOnce下,该注册表启动项在每次执行后,即会被系统自动删除.
Part3. 反病毒应急响应解决方案
按以下顺序删除病毒组件
1) 删除 ”病毒组件释放者”
%windows%\SYSTEM32\LOADHW.EXE
2) 删除 ”发ARP欺骗包的驱动程序” (兼 “病毒守护程序”)
%windows%\System32\drivers\npf.sys
a. 在设备管理器中, 单击”查看”-->”显示隐藏的设备”
b. 在设备树结构中,打开”非即插即用….”
c. 找到” NetGroup Packet Filter Driver” ,若没找到,请先刷新设备列表
d. 右键点击” NetGroup Packet Filter Driver” 菜单,并选择”卸载”.
e. 重启windows系统,
f.删除%windows%\System32\drivers\npf.sys
3) 删除 ”命令驱动程序发ARP欺骗包的控制者”
%windows%\System32\msitinit.dll
2. 删除以下”病毒的假驱动程序”的注册表服务项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Npf
三、定位ARP***源头和防御方法
1.定位ARP***源头
主动定位方式:因为所有的ARP***源都会有其特征——网卡会处于混杂模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器
有可能就是“元凶”。定位好机器后,再做病毒信息收集,提交给趋势科技做分析处理。
标注:网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它。这实际就是Sniffer
工作的基本原理:让网卡接收一切它所能接收的数据。
被动定位方式:在局域网发生ARP***时,查看交换机的动态ARP表中的内容,确定***源的MAC地址;也可以在局域居于网中部署Sniffer工具,定位ARP***源的MAC。
也可以直接Ping网关IP,完成Ping后,用ARP –a查看网关IP对应的MAC地址,此MAC地址应该为欺骗的MAC。
使用NBTSCAN可以取到PC的真实IP地址、机器名和MAC地址,如果有”ARP***”在做怪,可以找到装有ARP***的PC的IP、机器名和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网
段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。
NBTSCAN的使用范例:
假设查找一台MAC地址为“000d870d585f”的病毒主机。
1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。
2)在Windows开始—运行—打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C: btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。
3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。
通过上述方法,我们就能够快速的找到病毒源,确认其MAC——〉机器名和IP地址。
2.防御方法
a.使用可防御ARP***的三层交换机,绑定端口-MAC-IP,限制ARP流量,及时发现并自动阻断ARP***端口,合理划分VLAN,彻底阻止盗用IP、MAC地址,杜绝ARP的***。
b.对于经常爆发病毒的网络,进行Internet访问控制,限制用户对网络的访问。此类ARP***程序一般都是从Internet下载到用户终端,如果能够加强用户上网的访问控制,就能
极大的减少该问题的发生。
c.在发生ARP***时,及时找到病毒***源头,并收集病毒信息,可以使用趋势科技的SIC2.0,同时收集可疑的病毒样本文件,一起提交到趋势科技的TrendLabs进行分析,
TrendLabs将以最快的速度提供病毒码文件,从而可以进行ARP病毒的防御。(e129)