
ARP病毒攻击技术分析与防御.doc
5页ARP病毒攻击技术分析与防御一、ARP Spoofing攻击原理分析在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC 地址)的ARP协议对网络安全具有重要的意义通过伪造IP地址和MAC地址 实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“manin the micldle^^进行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缓存的崩溃,如下下面交换机中日志所示:Internet172.20.156.10000b.cd85・ al93 ARPAVlan256Internet172・ 20・156 ・ 50000b.cd85・ al93 ARPAVlan256Internet172.20.156.254 0000b.cd85.al93 ARPAVlan256Internet172.20.156.53 0000b.cd85.al93 ARPAVlan256Internet172・20・156・33 0000b.cd85・al93 ARPAVlan256Internet172・ 20・156・130000b.cd85・ al93 ARPAVlan256Internet172.20.156.150000b・ cd85・ al93 ARPAVlan256Internet172.20.156.140000b.cd85.a!93 ARPAVlan256二、ARP病毒分析当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主 机和路由器,让所有上网的流量必须经过病毒主机其他用户原来直接通过路由 器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
切换到病毒主 机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的 假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯 拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢当ARP欺骗 的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次 线在路由器的“系统历史记录”中看到大量如下的信息:MAC Chged 10.128.103.124MAC Old 00:01:6c:36:dl:7fMAC New 00:05:5d:60:c7:18这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候, 局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同吋在路由器的“用户统计”中看到 所有用户的MAC地址信息都一样如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说 明局域网内曾经出现过ARPg® (ARP欺骗的木马程序停止运行时,主机在路由 器上恢复其真实的MAC地址)BKDR_NPFECT.A病毒引起ARP欺骗之实测分析1. 病毒现象中毒机器在局域网中发送假的APR应答包进行APR欺骗,造成其他客户机无 法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通 信.2. 病毒原理分析:病毒的组件 本文研究的病毒样本有三个组件构成:%windows%\SYSTEM32\LOADHW.EXE(108,386 bytes) ” 病毒组件释放者”%windows%\System32\drivers\npf.sys(119,808 bytes) ….."发 ARP 欺骗包的驱动 程序”%windows%\System32\msitinit.dll (39,952 bytes)…"命令驱动程序发 ARP 欺骗包 的控制者” ’ 病毒运作基理: :LLOADHW.EXE执行时■会释放两个组件npf.sys和msitinit.dll .LOADHW.EXE释放组件后即终止运行.注意:病毒假冒成winPcap的驱动程序,并提供winPcap的功能.客户若原先装有 win Pea p, 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下,该注册表启动项在每次执行后,即会被系统自动删 除.t3.反病毒应急响应解决方案按以下顺序删除病毒组件1) 删除”病毒组件释放者”%windows%\SYSTEM32\LOADHW.EXE2) 删除”发ARP欺骗包的驱动程序”(兼“病毒守护程序”)%w i n dows%\Syste m32\drivers\npf.sysa. 在设备管理器中,单击”查看”->”显示隐藏的设备”b. 在设备树结构中,打开”非即插即用….”c. 找到"NetGroup Packet Filter Driver",若没找到,请先刷新设备列表d. 右键点击"NetGroup Packet Filter Driver"菜单,并选择"卸载".e. 重启 windows系统,f. 删除 %wi nd ows%\Syste m 3 2\d ri ve rs\n pf.sys 3)删除”命令驱动程序发ARP欺骗包的控制者”%windows%\System32\msitinit.dll2.删除以下”病毒的假驱动程序”的注册表服务项:HKEY_LOCAL_MACHINE\SYSTEM\Cur rentControlSet\Services\Npf三、定位ARP攻击源头和防御方法1. 定位ARP攻击源头主动定位方式:因为所有的ARP攻击源都会有其特征一网卡会处于混杂 模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模 式的,从而判断这台机器有可能就是“元凶”。
定位好机器后,再做病毒信息收 集注:网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网 卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它这实际 就是Sniffer工作的基本原理:让网卡接收一切它所能接收的数据被动定位方式:在局域网发生ARP攻击吋,杳看交换机的动态ARP表中的内容, 确定攻击源的MAC地址;也可以在局域居于网中部署Sniffer工具,定位ARP攻 击源的MACo也可以直接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和cygwinl.dll解压缩放到c:下2) 在 Windows 开始一运行一打开,输入 cmd (windows98 输入"command"), 在出现的DOS窗口中输入:C: btscan-r 192.168.16.1/24 (这里需要根据用户实际 网段输入),回车3) 通过杳询IP-MAC对应表,杳出“000d870d585f”的病毒主机的IP地址为 “192.16 8.16.223”通过上述方法,我们就能够快速的找到病毒源,确认其MAC—〉机器名和IP 地址2. 防御方法a. 使用可防御ARP攻击的三层交换机,绑定端口-MAC-IP,限制ARP流量,及时 发现并自动阻断ARP攻击端口,合理划分VLAN,彻底阻止盗用IP、MAC地址, 杜绝ARP的攻击b. 对于经常爆发病毒的网络,进行Internet访问控制,限制用户对网络的访问 此类ARP攻击程序一般都是从Internet下载到用户终端,如果能够加强用户上网 的访问控制,就能极大的减少该问题的发生c. 在发生ARP攻击时,及吋找到病毒攻击源头,并收集病毒信息。
