中毒症状:网络周期性断开(比如半个小时断一次),最后直至整个网络阻塞瘫痪。
一、ARP Spoofing攻击原理分析
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地 址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
当局域网内某台主机运行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欺骗之实测分析
病毒现象:中毒机器在局域网中发送假的APR应答包进行APR欺骗, 造成其他客户机无法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通信.
病毒原理分析:
病毒的组件
本文研究的病毒样本有三个组件构成:
%windows%\SYSTEM32\LOADHW.EXE”..................病毒组件释放者
%windows%\System32\drivers\npf.sys”...............发ARP欺骗包的驱动程序
%windows%\System32\msitinit.dll ”..............命令驱动程序发ARP欺骗包的控制者
按以下顺序删除病毒组件
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工作的基本原理:让网卡接收一切它所能接收的数据。
也可以直接Ping网关IP,完成Ping后,用ARP –a查看网关IP对应的MAC地址,此MAC地址应该为欺骗的MAC。
使用NBTSCAN可以取到PC的真实IP地址、机器名和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的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下载到用户终端,如果能够加强用户上网的访问控制,就能极大的减少该问题的发生。
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下,该注册表启动项在每次执行后,即会被系统自动删除.
转载于:rinehart