不需要

没有人的生活能不需要it互联网、搜索引擎

« 用rose建立数据库表在FTP服务器软件Serv-U中禁止指定IP的访问 »

因ARP攻击引起局域网中断引发的病毒原理分析

因ARP攻击引起局域网中断引发的病毒原理分析

  最近,抚顺广电宽带网“东二街片区”网络总是不稳定,经常出现断网,或某一时刻网速极慢现象,给网络用户带来很大不变,起初我们还以为是这一片区的2016AF-SM交换机有问题,经过更换新的交换机,好了一段时间后又频繁掉线,经过我们认真走访发现这一片区内有的电脑正常,没有发生过掉线现象,于是,我们怀疑是病毒在捣鬼,根据这一片区计算机频繁掉线的现象,我们认为可能是这一片区某台电脑中了ARP病毒,由于这种病毒有些杀毒软件很难根除,病毒发作时其症状表现为计算机网络连接正常,但无法打开网页或由于ARP欺骗的木马程序发作时发出大量的数据包导致局域网用户上网不稳定,在CMD 中ping 219.149.28.65 -t总是显示Request Time Out 或隔几行显示一二条Reply From 219.149.28.65:Bytes=32 Time=323ms TTL=252,极大地影响了用户的正常使用,给整个局域网的安全带来严重隐患。
  中毒症状:
  由于局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有的主机和路由器,让所有上网的流量必须经过病毒主机,其他用户原来直接通过路由器上网,现在转由通过病毒主机上网了,切换的时候用户会断一次线,切换到病毒主机上网后,如果用户已经登陆了服务器,病毒主机就会经常伪造断线的假像,由于ARP欺骗的木马程序发作时会发出大量的数据包,导致局域网通讯阻塞以及自身处理能力的局限性,用户会感觉上网网速很慢,网络周期性断开,有时候无法正常上网,有时候好了。局域网内的ARP包爆增,使用ARP查询的时候会发现不正常的MAC地址或者是和错误的MAC地址对应,或者是一个MAC 地址对应多个IP地址。该病毒发作时,仅能影响同网段内机器的正常使用。用ARP-a命令检查ARP表的时候发现路由器IP和MAC被修改了,这就是ARP病毒攻击的典型症状。
  原理分析:
  ARP协议是“Address Resolution Protocol ”的缩写,ARP地址解析协议用于将计算机的网络IP地址转化为物理MAC地址,ARP协议对网络安全具有重要意义。在局域网中网络实际传输的是“帧”,其里面是有目标主机的MAC地址,在网络中一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC 地址,但这个目标 MAC 地址是如何获得的呢?它就是通过ARP 协议获得的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的正常进行。
  每一个主机都有一个ARP高速缓存,存放最近的IP地址到MAC硬件地址之间的映射记录,其记录的生存时间一般为60S,在默认的情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,就会有更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断地发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,通过伪造的IP 地址和MAC 地址来实现ARP欺骗,当攻击源大量地向局域网中发送虚假的ARP信息后,能够在网络中产生大量的ARP通信量,使网络阻塞,造成网络中断或中间人攻击。
  说起中间人攻击大家可能马上想起风靡一时的SMB会话劫持,DNS欺骗等技术,这些都是典型的中间人攻击手段。其实说它是一种手段不如说它是一种攻击模式,它可以应用于各个领域,比如在现实中,A通过B传话给C,那么B在传话给C的时候,可以夸大其词,也可以填油加醋后传给C,在这个过程中中间人B无意中就来了一次中间人攻击,其实“谣言”就是这么来的,在网络安全方面,中间人攻击应用很广泛,下面就以Http协议代理来介绍一下中间人攻击。代理服务的一个典型模型如图1。
  上面可以看出:Client发出的请和Web 回的数据都经过Proxy Server转发,这个Proxy Server就是起到了一个Middle Man的作用,如果中间人够黑,那么整个代理过程的数据都可以由这个中间人控制。
  每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如表1所示。
  我们以主机A (192.168.0.1)向主机B(192.168.0.2)发送数据为例。当发送数据时,主机A会在自已的ARP缓存表中寻找是否有目标MAC地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了,ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.0.2的地址是什么?”网络上其它并不响应ARP的询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.0.2”的MAC地址是“bb-bb-bb-bb-bb-bb”。这样,主机A 就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包时,就会对本地ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。ARP缓存表采用了老化机制,MS Windows高速缓存中的每一条记录的生存时间 一般为60S,起始时间从被创建时开始算起,在一段时间内如果表中某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

  从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A 进行欺骗,A去PING主机C 却发送到了dd-dd-dd-dd-dd-dd这个地址上。如果进行欺骗的时候,把C的MAC地址骗为dd-dd-dd-dd-dd-dd,于是A 发送到C 上的数据包都变成发送给D的了,这不正好是D能够接收到A发送的数据包了吗。
  A 对这个变化一点都没有意识到,但是接下来的事情就让A 产生了怀疑,因为A和C 连接不上了,D对接收到A发送C的数据包可没有转交给C。
  做“ man in the middle ”进行ARP重定向。打开D的IP转发功能,A 发送过来的数据包,转发给C,好比一个路由器一样,不过,假如D发送ICMP重定向的话就中断了整个计划,D 直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的,不过,C发送的数据包又直接传递给了A ,倘若再次进行对C的ARP欺骗,现在D就完全成为了A与C的中间桥梁了,对于A 和C 之间的通讯就可以了如指掌了。
  Switch上的同样维护着一个动态的MAC缓存表,它一般是这样的,首先,交换机内部有一个对应的列表,交换机的端口对应MAC地址表Portn<->,MAC记录着每一个端口下面存在那些MAC-Port缓存表是动态更新的,那么让整个Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送大量假MAC地址的数据包,Switch就更新MAC-Port缓存,如果能通示这样的办法把以前正常的MAC地址和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch基本变成一个HUB,向所有的端口发送数据包,要进行嗅探攻击的目的一样能够达到。也将造就Switch MAC-Port缓存的崩溃。
  以上是通过在工作中遇到的ARP攻击造成局域网中断引发的病毒原理的分析,另外还可以通过一款名为“Anti Arp Sniffer”的软件工具来查找感染病毒的电脑,以解决问题,这里不再做叙述。

作者:刘勋章 《电脑知识与技术》 2009年第05期

  • 相关文章:

发表评论: