首页/杀毒教程/内容

深入剖析ARP地址欺骗病毒原理及欺骗过程_ARP原理

杀毒教程2022-11-21 阅读()
随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题。特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁。

一、ARP病毒

ARP地址欺骗类病毒(以下简称ARP病毒)是一类特殊的病毒, 该病毒一般属于木马(Trojan)病毒, 不具备主动传播的特性, 不会自我复制。 但是由于其发作的时候会向全网发送伪造的ARP数据包, 干扰全网的运行, 因此它的危害比一些蠕虫还要严重得多。

二、ARP病毒发作时的现象

网络掉线, 但网络连接正常, 内网的部分PC机不能上网, 或者所有电脑不能上网, 无法打开网页或打开网页慢, 局域网时断时续并且网速较慢等。

三、ARP病毒原理

3.1  网络模型简介

众所周知, 按照OSI (Open Systems Interconnection Reference Model 开放系统互联参考模型) 的观点, 可将网络系统划分为7层结构, 每一个层次上运行着不同的协议和服务, 并且上下层之间互相配合, 完成网络数据交换的功能, 如图1:

 

深入剖析ARP地址欺骗病毒原理及欺骗过程

然而, OSI的模型仅仅是一个参考模型, 并不是实际网络中应用的模型。 实际上应用最广泛的商用网络模型即TCP/IP体系模型, 将网络划分为四层, 每一个层次上也运行着不同的协议和服务, 如图2:

 

深入剖析ARP地址欺骗病毒原理及欺骗过程

上图中, 蓝色字体表示该层的名称, 绿色字表示运行在该层上的协议。 由图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:

 

深入剖析ARP地址欺骗病毒原理及欺骗过程

现在, S电脑要给D电脑发送数据了, 在S电脑内部, 上层的TCP和UDP的数据包已经传送到了最底层的网络接口层, 数据包即将要发送出去, 但这时还不知道目的主机D电脑的MAC地址MAC_D。 这时候, S电脑要先查询自身的ARP缓存表, 查看里面是否有192.168.0.4这台电脑的MAC地址, 如果有, 那很好办, 就将MAC_D封装在数据包的外面。 直接发送出去即可。 如果没有, 这时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_S”需要注意的是, 这条信息是单独回答的, 即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要请求某个网站页面, 如想请求www.sina.com.cn这个网页, 这台电脑会先向网关发送HTTP请求, 说:“我想登陆www.sina.com.cn网页, 请你将这个网页下载下来, 并发送给我。 ”这样, 网关就会将www.sina.com.cn页面下载下来, 并发送给S电脑。 这时, 如果A这台电脑通过向全网发送伪造的ARP欺骗广播, 自身伪装成网关, 成为一台ARP中毒电脑的话, 这样当S电脑请求WEB网页时, A电脑先是“好心好意”地将这个页面下载下来, 然后发送给S电脑, 但是它在返回给S电脑时, 会向其中插入恶意网址连接!该恶意网址连接会利用MS06-014和MS07-017等多种系统漏洞, 向S电脑种植木马病毒!同样, 如果D电脑也是请求WEB页面访问, A电脑同样也会给D电脑返回带毒的网页, 这样, 如果一个局域网中存在这样的ARP病毒电脑的话, 顷刻间, 整个网段的电脑将会全部中毒!沦为黑客手中的僵尸电脑!

案例:

某企业用户反映, 其内部局域网用户无论访问那个网站, 在经过对该局域网分析之后, 发现该局域网中有ARP病毒电脑导致其它电脑访问网页时, 返回的网页带毒, 并且该带毒网页通过MS06-014和MS07-017漏洞给电脑植入一个木马下载器, 而该木马下载器又会下载10多个恶性网游木马, 可以盗取包括魔兽世界, 传奇世界, 征途, 梦幻西游, 边锋游戏在内的多款网络游戏的帐号和密码, 对网络游戏玩家的游戏装备造成了极大的损失。 被ARP病毒电脑篡改的网页如图4:

 

深入剖析ARP地址欺骗病毒原理及欺骗过程

 图4 被ARP病毒插入的恶意网址连接

从图4中可以看出, 局域网中存在这样的ARP病毒电脑之后, 其它客户机无论访问什么网页, 当返回该网页时, 都会被插入一条恶意网址连接, 如果用户没有打过相应的系统补丁, 就会感染木马病毒。

 


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。



……

相关阅读