解读APR病毒

解读 APR 病毒
一、 ARP 病毒
ARP 地址欺骗类病毒(以下简称 ARP 病毒)是一类特殊的病毒,该病毒一般属于木马 (Trojan) 病毒,不具备主动传播的特性,不会自我复制。但是由于其发作的时候会向全网发送伪造的 ARP 数据包,干扰全网的运行,因此它的危害比一些蠕虫还要严重得多。
二、 ARP 病毒发作时的现象
网络掉线,但网络连接正常,内网的部分 PC 机不能上网,或者所有电脑不能上网,无法打开网页或打开网页慢,局域网时断时续并且网速较慢等。
三、 ARP 病毒原理
3.1 网络模型简介
众所周知,按照 OSI (Open Systems Interconnection Reference Model 开放系统互联参考模型 ) 的观点,可将网络系统划分为 7 层结构,每一个层次上运行着不同的协议和服务,并且上下层之间互相配合,完成网络数据交换的功能,如图 1
然而, OSI 的模型仅仅是一个参考模型,并不是实际网络中应用的模型。实际上应用最广泛的商用网络模型即 TCP/IP 体系模型,将网络划分为四层,每一个层次上也运行着不同的协议和服务,如图 2
                        
2 TCP/IP 四层体系模型及其配套协议
 
上图中,蓝色字体表示该层的名称,绿色字表示运行在该层上的协议。由图 2 可见,我们即将要讨论的 ARP 协议,就是工作在网际层上的协议。
3.2 ARP 协议简介
我们大家都知道,在局域网中,一台主机要和另一台主机进行通信,必须要知道目标主机的 IP 地址,但是最终负责在局域网中传送数据的网卡等物理设备是不识别 IP 地址的,只能识别其硬件地址即 MAC 地址。 MAC 地址是 48 位的,通常表示为 12 16 进制数,每 2 16 进制数之间用 “-” 或者冒号隔开,如: 00-0B-2F-13-1A-11 就是一个 MAC 地址。每一块网卡都有其全球唯一的 MAC 地址,网卡之间发送数据,只能根据对方网卡的 MAC 地址进行发送,这时就需要一个将高层数据包中的 IP 地址转换成低层 MAC 地址的协议,而这个重要的任务将由 ARP 协议完成。
ARP 全称为 Address Resolution Protocol ,地址解析协议。所谓 地址解析 就是主机在发送数据包前将目标主机 IP 地址转换成目标主机 MAC 地址的过程。 ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。 这时就涉及到一个问题,一个局域网中的电脑少则几台,多则上百台,这么多的电脑之间,如何能准确的记住对方电脑网卡的 MAC 地址,以便数据的发送呢?这就涉及到了另外一个概念, ARP 缓存表。在局域网的任何一台主机中,都有一个 ARP 缓存表,该表中保存这网络中各个电脑的 IP 地址和 MAC 地址的对照关系。当这台主机向同局域网中另外的主机发送数据的时候,会根据 ARP 缓存表里的对应关系进行发送。
下面,我们用一个模拟的局域网环境,来说明 ARP 欺骗的过程。
3.3 ARP 欺骗过程
假设一个只有三台电脑组成的局域网,该局域网由交换机 (Switch) 连接。其中一个电脑名叫 A ,代表攻击方;一台电脑叫 S ,代表源主机,即发送数据的电脑;令一台电脑名叫 D ,代表目的主机,即接收数据的电脑。这三台电脑的 IP 地址分别为 192.168.0.2 192.168.0.3 192.168.0.4 MAC 地址分别为 MAC_A MAC_S MAC_D 。其网络拓扑环境如图 3
 
3 网络拓扑
现在, S 电脑要给 D 电脑发送数据了,在 S 电脑内部,上层的 TCP UDP 的数据包已经传送到了最底层的网络接口层,数据包即将要发送出去,但这时还不知道目的主机 D 电脑的 MAC 地址 MAC_D 。这时候, S 电脑要先查询自身的 ARP 缓存表,查看里面是否有 192.168.0.4 这台电脑的 MAC 地址,如果有,那很好办,就将 封装在数据包的外面。直接发送出去即可。如果没有,这时 S 电脑要向全网络发送一个 ARP 广播包,大声询问: 我的 IP 192.168.0.3 ,硬件地址是 MAC_S ,我想知道 IP 地址为 192.168.0.4 的主机的硬件地址是多少? 这时,全网络的电脑都收到该 ARP 广播包了,包括 A 电脑和 D 电脑。 A 电脑一看其要查询的 IP 地址不是自己的,就将该数据包丢弃不予理会。而 D 电脑一看 IP 地址是自己的,则回答 S 电脑: 我的 IP 地址是 192.168.0.4 ,我的硬件地址是 MAC_D” 需要注意的是,这条信息是单独回答的,即 D 电脑单独向 S 电脑发送的,并非刚才的广播。现在 S 电脑已经知道目的电脑 D MAC 地址了,它可以将要发送的数据包上贴上目的地址 MAC_D ,发送出去了。同时它还会动态更新自身的 ARP 缓存表,将 192.168.0.4 MAC_D 这一条记录添加进去,这样,等 S 电脑下次再给 D 电脑发送数据的时候,就不用大声询问发送 ARP 广播包了。这就是正常情况下的数据包发送过程。
这样的机制看上去很完美,似乎整个局域网也天下太平,相安无事。但是,上述数据发送机制有一个致命的缺陷,即它是建立在对局域网中电脑全部信任的基础上的,也就是说它的假设前提是:无论局域网中那台电脑,其发送的 ARP 数据包都是正确的。那么这样就很危险了!因为局域网中并非所有的电脑都安分守己,往往有非法者的存在。比如在上述数据发送中,当 S 电脑向全网询问 我想知道 IP 地址为 192.168.0.4 的主机的硬件地址是多少? 后, D 电脑也回应了自己的正确 MAC 地址。但是当此时,一向沉默寡言的 A 电脑也回话了: 我的 IP 地址是 192.168.0.4 ,我的硬件地址是 MAC_A” ,注意,此时它竟然冒充自己是 D 电脑的 IP 地址,而 MAC 地址竟然写成自己的!由于 A 电脑不停地发送这样的应答数据包,本来 S 电脑的 ARP 缓存表中已经保存了正确的记录: 192.168.0.4 MAC_D ,但是由于 A 电脑的不停应答,这时 S 电脑并不知道 A 电脑发送的数据包是伪造的,导致 S 电脑又重新动态更新自身的 ARP 缓存表,这回记录成: 192.168.0.4 MAC_A ,很显然,这是一个错误的记录(这步也叫 ARP 缓存表中毒),这样就导致以后凡是 S 电脑要发送给 D 电脑,也就是 IP 地址为 192.168.0.4 这台主机的数据,都将会发送给 MAC 地址为 MAC_A 的主机,这样,在光天化日之下, A 电脑竟然劫持了由 S 电脑发送给 D 电脑的数据!这就是 ARP 欺骗的过程。
如果 A 这台电脑再做的 过分 一些,它不冒充 D 电脑,而是冒充网关,那后果会怎么样呢?我们大家都知道,如果一个局域网中的电脑要连接外网,也就是登陆互联网的时候,都要经过局域网中的网关转发一下,所有收发的数据都要先经过网关,再由网关发向互联网。在局域网中,网关的 IP 地址一般为 192.168.0.1 。如果 A 这台电脑向全网不停的发送 ARP 欺骗广播,大声说: 我的 IP 地址是 192.168.0.1 ,我的硬件地址是 MAC_A” 这时局域网中的其它电脑并没有察觉到什么,因为局域网通信的前提条件是信任任何电脑发送的 ARP 广播包。这样局域网中的其它电脑都会更新自身的 ARP 缓存表,记录下 192.168.0.1 MAC_A 这样的记录,这样,当它们发送给网关,也就是 IP 地址为 192.168.0.1 这台电脑的数据,结果都会发送到 MAC_A 这台电脑中!这样, A 电脑就将会监听整个局域网发送给互联网的数据包!
实际上,这种病毒早就出现过,这就是 ARP 地址欺骗类病毒。一些传奇木马( Trojan/PSW.LMir )具有这样的特性,该木马一般通过传奇外挂、网页木马等方式使局域网中的某台电脑中毒,这样中毒电脑便可嗅探到整个局域网发送的所有数据包,该木马破解了《传奇》游戏的数据包加密算法,通过截获局域网中的数据包,分析数据包中的用户隐私信息,盗取用户的游戏帐号和密码。在解析这些封包之后,再将它们发送到真正的网关。这样的病毒有一个令网吧游戏玩家闻之色变的名字: 传奇网吧杀手
四、 ARP 病毒新的表现形式
由于现在的网络游戏数据包在发送过程中,均已采用了强悍的加密算法,因此这类 ARP 病毒在解密数据包的时候遇到了很大的难度。现在又新出现了一种 ARP 病毒,与以前的一样的是,该类 ARP 病毒也是向全网发送伪造的 ARP 欺骗广播,自身伪装成网关。但区别是,它着重的不是对网络游戏数据包的解密,而是对于 HTTP 请求访问的修改。
HTTP 是应用层的协议,主要是用于 WEB 网页访问。还是以上面的局域网环境举例,如果局域网中一台电脑 S 要请求某个网站页面,如想请求 [url]www.sina.com.cn[/url] 这个网页,这台电脑会先向网关发送 HTTP 请求,说: 我想登陆 [url]www.sina.com.cn[/url] 网页,请你将这个网页下载下来,并发送给我。 这样,网关就会将 [url]www.sina.com.cn[/url] 页面下载下来,并发送给 S 电脑。这时,如果 A 这台电脑通过向全网发送伪造的 ARP 欺骗广播,自身伪装成网关,成为一台 ARP 中毒电脑的话,这样当 S 电脑请求 WEB 网页时, A 电脑先是 好心好意 地将这个页面下载下来,然后发送给 S 电脑,但是它在返回给 S 电脑时,会向其中插入恶意网址连接!该恶意网址连接会利用 MS06-014 MS07-017 等多种系统漏洞,向 S 电脑种植木马病毒!同样,如果 D 电脑也是请求 WEB 页面访问, A 电脑同样也会给 D 电脑返回带毒的网页,这样,如果一个局域网中存在这样的 ARP 病毒电脑的话,顷刻间,整个网段的电脑将会全部中毒!沦为黑客手中的僵尸电脑!
案例:
某企业用户反映,其内部局域网用户无论访问那个网站, KV 杀毒软件均报病毒: Exploit.ANIfile.o
在经过对该局域网分析之后,发现该局域网中有 ARP 病毒电脑导致其它电脑访问网页时,返回的网页带毒,并且该带毒网页通过 MS06-014 MS07-017 漏洞给电脑植入一个木马下载器,而该木马下载器又会下载 10 多个恶性网游木马,可以盗取包括魔兽世界,传奇世界,征途,梦幻西游,边锋游戏在内的多款网络游戏的帐号和密码,对网络游戏玩家的游戏装备造成了极大的损失。被 ARP 病毒电脑篡改的网页如图 4
4 ARP 病毒插入的恶意网址连接
从图 4 中可以看出,局域网中存在这样的 ARP 病毒电脑之后,其它客户机无论访问什么网页,当返回该网页时,都会被插入一条恶意网址连接,如果用户没有打过相应的系统补丁,就会感染木马病毒。
五、 ARP 病毒电脑的定位方法
下面,又有了一个新的课题摆在我们面前:如何能够快速检测定位出局域网中的 ARP 病毒电脑?
面对着局域网中成百台电脑,一个一个地检测显然不是好办法。其实我们只要利用 ARP 病毒的基本原理:发送伪造的 ARP 欺骗广播,中毒电脑自身伪装成网关的特性,就可以快速锁定中毒电脑。可以设想用程序来实现以下功能:在网络正常的时候,牢牢记住正确网关的 IP 地址和 MAC 地址,并且实时监控着来自全网的 ARP 数据包,当发现有某个 ARP 数据包广播,其 IP 地址是正确网关的 IP 地址,但是其 MAC 地址竟然是其它电脑的 MAC 地址的时候,这时,无疑是发生了 ARP 欺骗。对此可疑 MAC 地址报警,在根据网络正常时候的 IP MAC 地址对照表查询该电脑,定位出其 IP 地址,这样就定位出中毒电脑了。下面详细说一下几种不同的检测 ARP 中毒电脑的方法。
5.1 命令行法
这种方法比较简便,不利用第三方工具,利用系统自带的 ARP 命令即可完成。上文已经说过,当局域网中发生 ARP 欺骗的时候, ARP 病毒电脑会向全网不停地发送 ARP 欺骗广播,这时局域网中的其它电脑就会动态更新自身的 ARP 缓存表,将网关的 MAC 地址记录成 ARP 病毒电脑的 MAC 地址,这时候我们只要在其它受影响的电脑中查询一下当前网关的 MAC 地址,就知道中毒电脑的 MAC 地址了,查询命令为 ARP a ,需要在 cmd 命令提示行下输入。输入后的返回信息如下:
这时,由于这个电脑的 ARP 表是错误的记录,因此,该 MAC 地址不是真正网关的 MAC 地址,而是中毒电脑的 MAC 地址!这时,再根据网络正常时,全网的 IP―MAC 地址对照表,查找中毒电脑的 IP 地址就可以了。由此可见,在网络正常的时候,保存一个全网电脑的 IP―MAC 地址对照表是多么的重要。可以使用 nbtscan 工具扫描全网段的 IP 地址和 MAC 地址,保存下来,以备后用。
5.2 工具软件法
现在网上有很多 ARP 病毒定位工具,其中做得较好的是 Anti ARP Sniffer (现在已更名为 ARP 防火墙),下面我就演示一下使用 Anti ARP Sniffer 这个工具软件来定位 ARP 中毒电脑。
首先打开 Anti ARP Sniffer 软件,输入网关的 IP 地址之后,再点击红色框内的 枚举 MAC” 按钮,即可获得正确网关的 MAC 地址,如图 5
接着点击自动保护按钮,即可保护当前网卡与网关的正常通信。如图6
6 点击自动保护按钮
当局域网中存在 ARP 欺骗时,该数据包会被 Anti ARP Sniffer 记录,该软件会以气泡的形式报警。如图 7
7 Anti ARP Sniffer 的拦截记录
这时,我们再根据欺骗机的 MAC 地址,对比查找全网的 IP MAC 地址对照表,即可快速定位出中毒电脑。
5.3 Sniffer 抓包嗅探法
当局域网中有 ARP 病毒欺骗时,往往伴随着大量的 ARP 欺骗广播数据包,这时,流量检测机制应该能够很好的检测出网络的异常举动,此时 Ethereal 这样的抓包工具就能派上用场。如图 8
8 Ethereal 抓包工具定位出 ARP 中毒电脑
从图 8 中的红色框内的信息可以看出, 192.168.0.109 这台电脑正向全网发送大量的 ARP 广播包,一般的讲,局域网中有电脑发送 ARP 广播包的情况是存在的,但是如果不停的大量发送,就很可疑了。而这台 192.168.0.109 电脑正是一个 ARP 中毒电脑。
以上三种方法有时需要结合使用,互相印证,这样可以快速准确的将 ARP 中毒电脑定位出来。
六、 ARP 病毒电脑的查杀方法
通过上述的方法,已经找到了 ARP 中毒电脑,那么接下来的操作就是如何杀毒了。有一点需要注意的是:当找到中毒电脑后,应该立即拔掉中毒电脑的网线,以免其继续发包干扰全网的运行。
对于 ARP 病毒电脑的查杀办法,首先可以利用杀毒软件杀毒,但是由于现在病毒变种极其繁多,有可能遇到杀毒软件查不出来的情况,这时候就需要借助手工杀毒的办法了,下面介绍一些经验。
根据一些经验,较老类型的 ARP 病毒运行特征比较隐蔽,电脑中毒时并无明显异常现象,这类病毒运行时自身无进程,通过注入到 Explorer.exe 进程来实现隐藏自身。其注册表中的启动项也很特殊,并非常规的 Run 键值加载,也不是服务加载,而是通过注册表的 AppInit_DLLs 键值加载实现开机自启动的,这一点比较隐蔽,因为正常的系统 AppInit_DLLs 键值是空的。也正由于这个特点,利用 Autoruns 这个工具软件就可以快速扫描出病毒文件体,如图 9
9 Autoruns 工具检测出病毒文件主体
上图中红色框内的部分,就是 ARP 病毒文件主体,该文件虽然扩展名为 log ,看似很像是系统日志文件,但其实,它是一个不折不扣的病毒!除了 Log 形式的病毒文件,还有一些以 Bmp 作为扩展名的病毒文件,同样,这些病毒文件也不是图片文件,而是 EXE 格式的可执行文件,在同目录下还有同名的 dll 文件,这些都是病毒体。
%WinDir%\ KB*.log
或者
%WinDir%\ *.bmp
%WinDir%\ 同名 .dll
如何区别正常的 log 日志文件, bmp 图片文件和病毒文件呢?其实很简单,用记事本程序打开该文件,查看其文件头是否有 “MZ” 的标记即可,如图 10 就是一个名字为 “KB896475.log” 的病毒文件。
10 一个 ARP 病毒文件体
找到这些文件后,可以先清除注册表中的相关键值,然后重启系统到安全模式下,手动删除文件即可。
对于最近多发的,修改 WEB 请求页面的新型 ARP 病毒,则改变了病毒文件的表现形式,现对简单,利用系统进程查看和启动项查看注册表的 Run 键值,可以明显发现病毒的文件,另外,利用 KV 的未知病毒扫描程序进行检测,也是一个好办法。
七、 ARP 病毒的网络免疫措施
由于 ARP 病毒的种种网络特性,可以采用一些技术手段进行网络中 ARP 病毒欺骗数据包免疫。即便网络中有 ARP 中毒电脑,在发送欺骗的 ARP 数据包,其它电脑也不会修改自身的 ARP 缓存表,数据包始终发送给正确的网关,用的比较多的办法是 双向绑定法
双向绑定法,顾名思义,就是要在两端绑定 IP MAC 地址,其中一端是在路由器中,把所有 PC IP-MAC 输入到一个静态表中,这叫路由器 IP-MAC 绑定。令一端是局域网中的每个客户机,在客户端设置网关的静态 ARP 信息,这叫 PC IP-MAC 绑定。客户机中的设置方法如下:
新建记事本,输入如下命令:
其中, “arp �Cd” 命令是清空当前的 ARP 缓存表,而 “arp -s 192.168.0.1 00-e0-4c-8c-9a-47 ” 命令则是将正确网关的 IP 地址和 MAC 地址绑定起来,将这个批处理文件放到系统的启动目录中,可以实现每次开机自运行,这一步叫做 固化 arp
双向绑定法 一般在网吧里面应用的居多。
除此之外,很多交换机和路由器厂商也推出了各自的防御 ARP 病毒的软硬产品,如:华为的 H3C AR 18-6X 系列全千兆以太网路由器就可以实现局域网中的 ARP 病毒免疫,该路由器提供 MAC IP 地址绑定功能,可以根据用户的配置,在特定的 IP 地址和 MAC 地址之间形成关联关系。对于声称从这个 IP 地址发送的报文,如果其 MAC 地址不是指定关系对中的地址,路由器将予以丢弃,是避免 IP 地址假冒攻击的一种方式。
八、 ARP 病毒 KV 解决方案
针对 ARP 病毒日益猖獗的情况,江民科技推出了整体解决方案:
1.KV 杀毒软件每周 7 天不间断升级病毒库,单机版网络版同步升级,实时拦截来自网络上的各种 ARP 病毒。
2. 针对局域网用户,建议统一部署 KV 网络版杀毒软件, KV 网络版具有全网统一升级病毒库,统一全网杀毒的强大功能,可以彻底查杀来自局域网中的 ARP 病毒。
3.“KV 未知病毒扫描 功能可以识别出绝大多数 ARP 病毒, KV 未知病毒扫描程序采用独特的行为判定技术,可以彻底检测出本机中已知和未知的 ARP 病毒,协助网络管理员快速清除 ARP 病毒。
4. 特针对企业用户,提供 “ARP 病毒应急响应服务 ,江民科技网络安全工程师可以上门处理企业用户内网中的 ARP 病毒,确保快速恢复企业网络的数据通讯安全。
5.KV 新版防火墙特增加了 ARP 病毒防御功能,可以拦截来自局域网中的 ARP 欺骗数据包,保护本机联网安全。设置界面如图 11
11 KV 新版防火墙增加了 ARP 攻击防护功能
KV 新版防火墙增加了 ARP 攻击防护功能,该功能使用方法也很简单,安装完 KV 防火墙之后,点击 设置 按钮,然后勾选 启用攻击防护功能 ,再点击 自动检测本机网络设置 ,程序就会自动获得本机和网关的 IP 地址和 MAC 地址,然后点击确定即可。 KV 防火墙就会实时检测来自网络中的 ARP 数据包,发现有异常的数据包欺骗,就会予以拦截,保障本机网络通信安全。
九、关于 ARP 病毒的网络安全建议
1. 在网络正常时候保存好全网的 IP―MAC 地址对照表,这样在查找 ARP 中毒电脑时很方便。
2. 都全网的电脑都打上 MS06-014 MS07-017 这两个补丁,包括所有的客户端和服务器,以免感染网页木马。
3. 部署网络流量检测设备,时刻监视全网的 ARP 广播包,查看其 MAC 地址是否正确。
4. 做好 IP―MAC 地址的绑定工作,对于从这个 IP 地址发送的报文,如果其 MAC 地址不是指定关系对中的地址,予以丢弃。
5. 部署网络版的杀毒软件,定期升级病毒库,定期全网杀毒。
 

你可能感兴趣的:(协议,ARP,病毒,mac地址,防御)