病毒、木马ARP攻击行为的原理分析及解决思路

 
   | |

导读:本文介绍病毒、木马ARP攻击行为的原理分析及解决思路。

关键词:病毒 木马 ARP攻击 原理分析 解决思路

 
正在加载数据...

  近一段时间带有ARP攻击行为的病毒,木马很是常见,主要有两种表现形式:

1.  频繁的出现地址冲突的现象

2.  上网速度很慢甚至上不了网

  经分析,这大部分是由于病毒进行ARP地址欺骗造成的。由于ARP协议的固有的缺陷,病毒通过发送假的ARP数据包,使得同网段的计算机误以为中毒计算机是网关,造成其它计算机上网中断(第一种情况)。或是假冒网络中特定的机器对这台机器通信的数据进行截获(第二种情况)。为了避免中毒计算机对网络造成影响,趋势科技已经提供相关的防御工具KB(62735),由于ARP病毒攻击的复杂多变性,现在针对两种基本的攻击行为的原理进行分析,并提出相应的解决思路。

  上网速度很慢甚至上不了网

  我们首先要了解一下ARP(Address Resolution Protocol)地址解析协议,它是一种将IP地址转化成物理地址的协议。ARP具体说来就是将网络层(TCP/IP协议的IP层,也就是相当于OSI 的第三层)地址(32位)解析为数据链路层(TCP/IP协议的MAC层,也就是相当于OSI的第二层)的MAC地址(48位)[RFC826]。ARP 协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP 地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点(如两台直联的计算机)的连接是不需要ARP协议的。为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的ping例子。

  假设我们的计算机A的IP地址是192.168.1.50,要测试与B机器的连通性,执行这个命令:ping  192.168.1.51。该命令会通过ICMP协议发送ICMP数据包。该过程需要经过下面的步骤:

     1、应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);

     2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;

     3、如果存在该IP-MAC对应关系,那么数据包直接发出;如果不存在该IP-MAC对应关系,那么接续下面的步骤;

     4、内核进行ARP广播,目的地的MAC地址是BB-BB-BB-BB-BB-BB,ARP命令类型为Request,其中包含有自己的MAC地址;(下面会讲到具体包格式)

     5、当B主机接收到该ARP请求后,就发送一个ARP的Reply命令,其中包含自己的MAC地址;

     6、B获得A主机的IP-MAC地址对应关系,并保存到ARP缓存中;

     7、B内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;

  使用arp -a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的ping命令后,ARP缓存就会存在一个目的IP的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。

  知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输依靠ARP协议,当然,也就是依赖ARP缓存。要知道,ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。ARP协议并不只在发送了ARP请求才接收ARP应答。而ARP协议的固有缺陷就在这里,当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此, B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.52(C的IP地址),MAC地址是BB-BB-BB- BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP 缓存,将本地的IP-MAC对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A可不知道被伪造了。

  某些病毒就是利用这个原理,向受害者发送源硬件地址为随机产生貌似来自网关的ARP应答包,于是在受害者缓存里,网关的IP是正确的,可对应的硬件地址却是错误的或者是中毒机器。该计算机向外发送的数据包总是发送到了错误的网关硬件地址上或是中毒机器。

  而如果病毒想要截获某台机器上网的所有通信而不被察觉,只要同时再向网关发送冒充此机器的相应的数据包即可实现。

  频繁出现地址冲突的现象

  主机A在连接网络(或更改IP地址)的时候就会向网络发送ARP包广播自己的IP地址。如果网络中存在相同IP地址的主机B,那么B就会通过ARP来 reply该地址,当A接收到这个reply后,A就会跳出IP地址冲突的警告,当然B也会有警告。因此用如果病毒发出的是ARP的Request包就会使用户一直遭受IP地址冲突警告的困扰。

  下面就以上分析做一个模拟病毒进行ARP攻击的行为的实验,了解此类病毒是如何产生危害的。

  实验描述:此实验模仿ARP攻击的一种,机器不断提示地址冲突,运行变慢,无法上网的情况,其他情况可自行参考模拟

  分析:不同病毒在中毒机器上运行,发送的ARP包是有一定的周期的,受影响的系统产生的开销不一。先模拟中毒机B以较大的发送频率发送到A机器上(未中毒),如系统内核处理会不断处理接到的ARP包,这时盗用者机器上会不断提示IP冲突, 则A机器上的系统开销将大大增加,很容易无法响应用户操作。而这一切由于ARP处于网络协议的底层,对一般防火墙等高层软件是透明的,盗用者无从察觉,只能看到机器不端弹出冲突信息,系统很快慢下来,最终没有任何响应。

  实验内容:

1.首先 让我们先了解一下ARP协议的数据结构:

         typedefstructarphdr

         {

         unsignedshortarp_hrd;//硬件类型 使用的硬件(网络访问层)类型一般为 0806(ARP)

         unsignedshortarp_pro;//协议类型 解析过程中的协议使用以太类型的值一般为000110M以太网)

         unsignedchararp_hln;//硬件地址长度 对于以太网和令牌环来说,其长度为6字节

         unsignedchararp_pln;//协议地址长度 IP的长度是4字节

         unsignedshortarp_op;ARP操作类型 指定当前执行操作的字段 1为请求,2为应答

         unsignedchararp_sha[6];/*发送者的硬件地址

         unsignedlongarp_spa;//发送者的协议地址

         unsignedchararp_tha[6];//目标的硬件地址

         unsignedlongarp_tpa;//目标的协议地址

         }ARPHDR,*PARPHDR;

  下面,假设中毒机器的硬件地址是AA-AA-AA-AA-AA-AA,IP地址是192.168.1.5,受影响机器B的硬件地址是BB-BB-BB-BB-BB-BB,IP地址是192.168.1.51.为了便于说明,我们在B机器上用Sniffer Pro工具先获得发送目标为192.168.1.51的 ARP数据包,

  由于A中病毒不断发送ARP请求包,我们很容易获得。如图:

ARP请求包

  现在我们结合图中上半部分的协议解析来分析下半部分的代码的意义,

  共有四行每行都标了号

00行,ff ff ff ff ff ff 广播地址,每个同网段用户都能收到。

      aa aa aa aa aa aa 发送方的硬件地址

      08 06 指使用ARP协议

10行,00 01 10M 以太网

      08 00 使用IP协议

      06    硬件地址使用6字节表示

      04    协议(IP)地址使用4字节表示

      00 01 ARP请求包

      aa aa aa aa aa aa 发送方硬件地址

      c0 a8 01 32发送方IP地址

20行,00 00 00 00 00 00 目标硬件地址

      c0 a8 01 33 目标IP地址

  其他数据与本文无关,暂不讨论。

  仔细看一下不难发现,IP为192.168.1.5的A的IP地址被”篡改”了,A网络中宣布自己假冒是192.168.1.50。

  使得与192.168.1.50通信的数据发到了192.168.1.5上,而真正的192.168.1.50则运行缓慢甚至无法上网。

  2. 下面利用获取的数据包,通过SnifferPro的构造并发送数据包的功能对它进行简单的修改,我们可以模拟一种病毒攻击方式:

  对照前边捕获的数据包我们看到改动处有(红线标注):

数据包

1.aa aa aa aa aa aa  硬件目的地址中毒机器A(DLC,数据链路层地址)

2.bb bb bb bb bb bb(第一组)  源硬件地址为受影响机器B(DLC)

3  bb bb bb bb bb bb(第二组)   源硬件地址为受影响机器B (ARP)

4 (c0 a8 01)32  目的IP地址为中毒机器A(ARP)      

  最后,我们通过Sniffer的发包工具利用不间断发送(Continuously)将其发送给192.168.1.50,将使其很快瘫痪。笔者实验环境如下:TP-LINK R402M路由器,A机器配置1.8G.RAM 1.0G 。B机器配置CPU1.0G,RAM128M,B机器发送数据包15秒左右,A机器进入“无法响应”状态。可见,如果病毒大规模爆发,造成的网络拥塞影响是十分严重的。

  最后,提供几种防御ARP攻击行为的思路:

  首先,需要了解一下一般解决方法,很多人知道如何捆绑MAC地址和IP地址,进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP  -  s  X.X.X.X  YY-YY-YY-YY-YY-YY,即可把MAC地址和IP地址捆绑在一起。这样,就不会出现IP地址被盗用而不能正常使用网络的情况。从前面的分析我们知道,即使我们知道了正确的网关硬件地址,由于盗用者不断发送伪造ARP包,网关却不知道合法用户的硬件地址,而且合法用户端主机会不断产生IP冲突的警告。事实上,ARP命令是对局域网的上网代理服务器来说的,如我们提出的KB(62735)中的”APR解决方案”细节内容不在本文论述范围内。

  一般说来,在网络关键设备上使用的解决盗用的方法大体上有3种方案:采用路由器将网卡MAC地址与IP地址绑定;采用高端交换机将交换机端口、网卡MAC 地址与IP地址三者绑定;代理服务器与防火墙相结合的办法。这几种方法各有优缺点,采用路由器将网卡MAC地址与IP地址绑定的方法,只能解决静态地址的修改,对于成对修改IP-MAC地址就无能为力。采用高端交换机将交换机端口、网卡MAC地址与IP地址三者绑定的方法,可以解决成对修改IP-MAC地址的问题,但高端交换机费用昂贵,而且解决冲突具有滞后性。

  当我们遇到ARP类病毒时,

1 采用IP-MAC 绑定方法预防,如利用KB(62735)解决方案部署中ipmac_binds_tools.exe 防御工具

2 一旦发现无法解决的ARP病毒较复杂的攻击行为,请用户使用工具抓取病毒爆发时网络中的数据包,根据以上ARP病毒的原理,分析数据包找到频繁发送ARP的REQUEST或REPLY请求的机器,从而找到病毒源头进行查杀毒。

原文出处:http://blog.sina.com.cn/s/blog_59acc8e20100ayx5.html
 
来源:BLOG    
 
 
 
 
 

病毒/蠕虫/恶意软件

 
一种新型的内存抓取恶意软件正逐渐风行起来,它能从系统的随机访问存储器(RAM)中捕获数据。它是如何窃取到数据的?企业应采取怎样的防范策略?
 
有读者提出这样的问题:他通过使用反恶意软件扫描器检测出大量的本地键盘记录器行为,他想知道这样是否能够在查到的第一时间检测或保护系统。TT安全专家说……
 
随着企业的安全防护机制日渐增强,攻击者转而寻找系统的弱点,开始使用规模较小的、不太引人注意的botnet来攻击企业内部系统,从而避开企业的安全防卫体系……
 
网络时常会遭遇病毒、间谍软件、木马等恶意软件的侵袭,到底怎样做才能阻止它们的传播呢?智能手机安全以及杀毒软件和反间谍软件策略方面的最佳实践是怎样的呢?
 
Zeus木马正继续寻找新的方式来欺骗用户,最新的垃圾邮件中出现了Zeus,这一次它们将发件人伪装成美国社会安全协会,警告收件人他们的社会安全声明可能……

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录