论文部分内容阅读
摘要:ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络IP地址转化为物理MAC地址。 ARP病毒是一种地址欺骗的病毒,ARP病毒通过伪造IP地址和MAC地址实现ARP欺骗,进行ARP重定向和嗅探攻击,用伪造源MAC地址发送ARP响应包,网内PC机的ARP缓存表混乱,网络中产生大量的ARP通信量使网络阻塞。ARP攻击在现今的网络中频频出现,有效的防范ARP形式的网络攻击已成为确保网络畅通必要条件。本文对ARP病毒的攻击原理做了详细的探讨和分析。
关键词:地址;ARP缓存表;中间人攻击
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31268-02
Principle of ARP Virus
WANG Yu-bao
(Linyi People's Hospital of Shan Dong, Linyi 276003, China)
Abstract:The AddressResolutionProtocoluses in the computer network IP address transforming as the physical MAC address. The ARP virus is one kind of address deceit virus, the ARP virus realizes the ARP deceit through the forge IP address and the MAC address, carries on the ARP heavy direction detection and smells searches the attack, transmits the ARP response package with the forge source MAC address, in the net the PC machine ARP buffer table is chaotic, in the network has the massive ARP communication load to cause network blocking. The ARP attack appears repeatedly in the nowadays network, the effective guard ARP form network attack has become guarantees the network unimpeded essential condition.This article has made the detailed discussion and the analysis to the ARP virus's attack principle.
Key words:mac-address;arp-cache;man-in-the-middle-attacks
中毒症状:当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了传奇服务器,病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢,网络周期性断开(比如半个小时断一次),有时候无法正常上网,有时候好了,包括访问网上邻居也是如此,拷贝文件无法完成,出现错误,局域网内的ARP包爆增,使用ARP查询的时候会发现不正常的MAC地址,或者是错误的MAC地址对应,还有就是一个MAC地址对应多个IP的情况也会有出现,用arp –a命令来检查ARP表的时候发现路由器的IP和MAC被修改,这就是ARP病毒攻击的典型症状。
原理分析:ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络IP地址转化为物理MAC地址。ARP协议对网络安全具有重要的意义。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
每个主机都用一个ARP高速缓存存放最近IP地址到MAC硬件地址之间的映射记录。MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,通过伪造IP地址和MAC地址实现ARP欺骗,当攻击源大量向局域网中发送虚假的ARP信息后,能够在网络中产生大量的ARP通信量使网络阻塞,造成网络中断或中间人攻击。
说起“中间人攻击(Man-in-the-middle-attacks,简称:MITM攻击)”大家可能马上想起曾经风靡一时的SMB会话劫持,DNS欺骗等技术,这些都是典型的MITM攻击手段。其实MITM攻击说它是一种手段,不如说它是一种攻击模式,它可以应用于各个领域,比如在现实中,A通过B给C传话,那么B在传话给C的时候,可以夸大其词,也可以填油加醋后传给C,在这个过程中中间人B 无意中就来一次MITM攻击,其实“谣言”就是这么来的,具体在网络安全方面 ,MITM攻击应用也很广泛,下面我就以http协议代理来介绍下代理里MITM攻击。代理服务的一个典型模型:
上面可以看出:client 发出的请求 和 web server返回的数据都经过proxy server 转发,这个proxy server 就起到了一个middle man的作用,如果这个“中间人” 够黑,那么整个代理过程的数据 都可以由这个“中间人”控制。
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下所示。
主机 *IP地址 MAC地址
A92.168.0.1aa-aa-aa-aa-aa-aa
B192.168.0.2 bb-bb-bb-bb-bb-bb
C192.168.0.3 cc-cc-cc-cc-cc-cc
D192.168.0.4 dd-dd-dd-dd-dd-dd
我们以主机A(192.168.0.1)向主机B(192.168.0.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.0.2的MAC地址是什么?”网络上其他主机并不响应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缓存表采用了老化机制,MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少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地址表Port n <-> ,Mac记录着每一个端口下面存在那些MAC地址,这个表开始是空的,交换机从来往数据帧中学习。因为MAC-PORT缓存表是动态更新的,那么让整个Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送大量假MAC地址的数据包,Switch就更新MAC-PORT缓存,如果能通过这样的办法把以前正常的MAC和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch基本变成一个 HUB,向所有的端口发送数据包,要进行嗅探攻击的目的一样能够达到。也将造成Switch MAC-PORT缓存的崩溃。
以上为arp病毒攻击原理的分析,希望能对读者有所帮助。
参考文献:
[1]Refdom.交换网络中的嗅探和ARP欺骗.http://www.xfocus.net/.友佳学院.
[2]ARP病毒解决办法.http://www.luxinjie.com/net/fhq/116097998231638.html.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:地址;ARP缓存表;中间人攻击
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31268-02
Principle of ARP Virus
WANG Yu-bao
(Linyi People's Hospital of Shan Dong, Linyi 276003, China)
Abstract:The AddressResolutionProtocoluses in the computer network IP address transforming as the physical MAC address. The ARP virus is one kind of address deceit virus, the ARP virus realizes the ARP deceit through the forge IP address and the MAC address, carries on the ARP heavy direction detection and smells searches the attack, transmits the ARP response package with the forge source MAC address, in the net the PC machine ARP buffer table is chaotic, in the network has the massive ARP communication load to cause network blocking. The ARP attack appears repeatedly in the nowadays network, the effective guard ARP form network attack has become guarantees the network unimpeded essential condition.This article has made the detailed discussion and the analysis to the ARP virus's attack principle.
Key words:mac-address;arp-cache;man-in-the-middle-attacks
中毒症状:当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了传奇服务器,病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢,网络周期性断开(比如半个小时断一次),有时候无法正常上网,有时候好了,包括访问网上邻居也是如此,拷贝文件无法完成,出现错误,局域网内的ARP包爆增,使用ARP查询的时候会发现不正常的MAC地址,或者是错误的MAC地址对应,还有就是一个MAC地址对应多个IP的情况也会有出现,用arp –a命令来检查ARP表的时候发现路由器的IP和MAC被修改,这就是ARP病毒攻击的典型症状。
原理分析:ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络IP地址转化为物理MAC地址。ARP协议对网络安全具有重要的意义。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
每个主机都用一个ARP高速缓存存放最近IP地址到MAC硬件地址之间的映射记录。MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,通过伪造IP地址和MAC地址实现ARP欺骗,当攻击源大量向局域网中发送虚假的ARP信息后,能够在网络中产生大量的ARP通信量使网络阻塞,造成网络中断或中间人攻击。
说起“中间人攻击(Man-in-the-middle-attacks,简称:MITM攻击)”大家可能马上想起曾经风靡一时的SMB会话劫持,DNS欺骗等技术,这些都是典型的MITM攻击手段。其实MITM攻击说它是一种手段,不如说它是一种攻击模式,它可以应用于各个领域,比如在现实中,A通过B给C传话,那么B在传话给C的时候,可以夸大其词,也可以填油加醋后传给C,在这个过程中中间人B 无意中就来一次MITM攻击,其实“谣言”就是这么来的,具体在网络安全方面 ,MITM攻击应用也很广泛,下面我就以http协议代理来介绍下代理里MITM攻击。代理服务的一个典型模型:
上面可以看出:client 发出的请求 和 web server返回的数据都经过proxy server 转发,这个proxy server 就起到了一个middle man的作用,如果这个“中间人” 够黑,那么整个代理过程的数据 都可以由这个“中间人”控制。
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下所示。
主机 *IP地址 MAC地址
A92.168.0.1aa-aa-aa-aa-aa-aa
B192.168.0.2 bb-bb-bb-bb-bb-bb
C192.168.0.3 cc-cc-cc-cc-cc-cc
D192.168.0.4 dd-dd-dd-dd-dd-dd
我们以主机A(192.168.0.1)向主机B(192.168.0.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.0.2的MAC地址是什么?”网络上其他主机并不响应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缓存表采用了老化机制,MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少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地址表Port n <-> ,Mac记录着每一个端口下面存在那些MAC地址,这个表开始是空的,交换机从来往数据帧中学习。因为MAC-PORT缓存表是动态更新的,那么让整个Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送大量假MAC地址的数据包,Switch就更新MAC-PORT缓存,如果能通过这样的办法把以前正常的MAC和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch基本变成一个 HUB,向所有的端口发送数据包,要进行嗅探攻击的目的一样能够达到。也将造成Switch MAC-PORT缓存的崩溃。
以上为arp病毒攻击原理的分析,希望能对读者有所帮助。
参考文献:
[1]Refdom.交换网络中的嗅探和ARP欺骗.http://www.xfocus.net/.友佳学院.
[2]ARP病毒解决办法.http://www.luxinjie.com/net/fhq/116097998231638.html.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。