网络协议之ARP协议原理及应用_第1页
网络协议之ARP协议原理及应用_第2页
网络协议之ARP协议原理及应用_第3页
网络协议之ARP协议原理及应用_第4页
网络协议之ARP协议原理及应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅谈网络协议之ARP协议原理及应用 - 关于ARP欺骗攻击技术简析和防范您是否遇到局域网内频繁性区域或整体掉线,重启计算机或网络设备后恢复正常?您的网速是否时快时慢,极其不稳定,但单机进行光纤数据测试时一切正常?您是否时常听到身边人的网上银行密码、游戏及QQ账号频繁丢失的消息?这些问题的出现有很大一部分要归功于ARP攻击,那么什么是ARP协议?ARP是如何攻击的呢?又该怎样防御呢? 一ARP协议及其基本原理ARP( Address Resolution Protocol),中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。 IP数据包常通过以太网发送,以太网设

2、备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。如图即为ARP报头结构:下面介绍一下ARP协议的工作原理。我们知道每台主机都会在自己的ARP缓冲区 (ARP Cache)中建立一个存放有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是主机目前知道的一些地址。假设有三台主机:A: IP地

3、址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AAB: IP地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BBC: IP地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC当主机A需要将一个数据包要发送到本局域网上的某个目的主机B时,会首先检查自己 ARP列表中是否存在该主机B的IP地址,如果有就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址;如果查不到主机B的IP地址的项目,在这种情况下主机A就向本地网段发起一个ARP请求的广播包,查询此目的主机B对应的MAC地

4、址。此ARP请求数据包里包括主机A的IP地址、硬件地址、以及目的主机B的IP地址。“我是192.168.0.1,我的硬件地址是" AA:AA:AA:AA:AA:AA ".请问IP地址为192.168.0.2的MAC地址是什么?”  网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机就给主机A发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址“我是192.168.0.2,硬件地址是BB:BB:BB:BB:BB:BB”,并把发送端的MAC地址和IP地址添加到自己的ARP列表中

5、,如果ARP表中已经存在该IP的信息,则将其覆盖。主机A收到这个ARP响应数据包后,将得到的目的主机B的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果主机A一直没有收到ARP响应数据包,则表示ARP查询失败。二ARP攻击ARP攻击是指通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。 它主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网

6、络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。其中“恶意窃听”病毒是“ARP欺骗”系列病毒中影响和危害最为恶劣的。它不会造成局域网的中断,仅仅会使网络产生较大的延时,但是中毒主机会截取局域网内所有的通讯数据,并向特定的外网用户发送所截获的数据,对局域网用户的网络使用造成非常非常严重的影响,直接威胁着局域网用户自身的信息安全。 那么是如何实现ARP欺骗的呢?如上图所示,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,在上例中如果主机A发出ARP请求找寻主机

7、C的IP和MAC地址,而此时主机B向主机A发送一个自己伪造的ARP应答,这个应答中的数据为发送方IP地址是C的IP地址,MAC地址是DD-DD-DD-DD-DD-DD( C的MAC地址本来应该是33-33-33-33-33-33,这里被伪造了)。当主机A接收到主机B伪造的ARP应答,就会更新本地的ARP缓存,将本地的IP-MAC对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A却不知道被伪造了,而且A不知道其实是从B发送过来的。这样A这里只有C的IP地址和无效的DD-DD-DD-DD-DD-DD MAC地址。这就实现了ARP欺骗。这样主机A上的关于主机C的MAC地址已经错误

8、了,所以即使以后从A计算机访问C计算机这个1.1.1.3、24这个地址也会被ARP协议错误的解析成MAC地址为DD-DD-DD-DD-DD-DD的。下面介绍两种不同类型的ARP欺骗:(1)同一网段的ARP欺骗如图所示,三台主机A: IP地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AAB: IP地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BBC: IP地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料知道这台主机A的防火墙只对主机C有信任关系

9、(开放23端口(telnet))。而他必须要使用telnet来进入主机A,这个时候他应该如何处理呢?我们这样考虑,入侵者必须让主机A相信主机B就是主机C,如果主机A和主机C之间的信任关系是建立在IP地址之上的。如果单单把主机B的IP地址改的和主机C的一样,那是不能工作的,至少不能可靠地工作。如果你告诉以太网卡设备驱动程序, 自己IP是192.168.0.3,那并不能达到目标。我们可以先研究C这台机器,如果我们能让这台机器暂时当掉,在机器C当掉的同时,将机器B的IP地址改为192.168.0.3,这样就可以成功的通过23端口telnet到机器A上面,而成功的绕过防火墙的限制。 上面的这种想法在下

10、面的情况下是没有作用的,如果主机A和主机C之间的信任关系是建立在硬件地址的基础上。这个时候还需要用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192.168.0.3映射的硬件地址改为主机B的硬件地址。我们可以人为的制造一个ARP的应答,发送给想要欺骗的主机(如上文的例子所示),可以指定ARP包中的源IP、目标IP、源MAC地址、目标MAC地址。这样你就可以通过虚假的ARP响应包来修改主机A上的动态ARP缓存达到欺骗的目的。下面是具体的步骤:1. 首先研究192.168.0.3这台主机,发现这台主机的漏洞。 2. 根据发现的漏洞使主机C当掉,暂时停止工作。 3. 这段时间里,入侵者把自己的

11、IP改成192.168.0.3 4. 他用工具发一个源IP地址为192.168.0.3源MAC地址为BB:BB:BB:BB:BB:BB的包给主机A,要求主机A更新自己的ARP转换表。 5. 主机更新了ARP表中关于主机C的IP->MAC对应关系。 6. 防火墙失效了,入侵的IP变成合法的MAC地址。 上面就是一个ARP的欺骗过程,这是在同网段发生的情况,但是,如果当B和C处于不同网段的时候,上面的方法是不起作用的。(2)不同网段的ARP欺骗如图所示A、C位于同一网段而主机B位于另一网段,三台机器的IP地址和硬件地址如下:A: IP地址 192.168.0.1 硬件地址 AA:AA:AA:

12、AA:AA:AAB: IP地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BBC: IP地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC在现在的情况下,位于192.168.1网段的主机B如何冒充主机C欺骗主机A呢?显然用上面的办法的话,即使欺骗成功,主机B和主机A之间也无法建立telnet会话,因为路由器不会把主机A发给主机B的包向外转发,路由器会发地址在192.168.0.这个网段之内的。现在就涉及到另外一种欺骗方式 ICMP重定向。把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。什么是ICMP重定向呢?在谢希仁编写的计算

13、机网络(第五版)中是这样描述ICMP重定向的:ICMP重定向报文是ICMP控制报文中的一种。路由器把报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。这样我们就可以利用ICMP重定向报文达到欺骗的目的。下面是结合ARP欺骗和ICMP重定向进行攻击的步骤:1. 为了使自己发出的非法IP包能在网络上能够存活长久一点,开始修改IP包的生存时间T为下面的过程中可能带来的问题做准备。把T改成255。2. 下载一个可以自由制作各种包的工具。

14、3. 然后和上面一样,寻找主机C的漏洞按照这个漏洞当掉主机C。 4. 在该网络的主机找不到原来的192.168.0.3后,将更新自己的ARP对应表。于是他发送一个原IP地址为192.168.0.3硬件地址为BB:BB:BB:BB:BB:BB的ARP响应包。 5. 现在每台主机都知道了,一个新的MAC地址对应192.168.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.168.0.3的IP包丢给路由。于是他还得构造一个ICMP的重定向广播。 6. 自己定制一个ICMP重定向包告诉网络中的主机:"到192.168.0.3的路由最短路径不

15、是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.168.0.3的IP包丢给路由。" 7. 主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.168.0.3的通讯都丢给路由器。 8. 入侵者终于可以在路由外收到来自路由内的主机的IP包了,他可以开始telnet到主机的23口。 其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:1. 新路由必须是直达的 2. 重定向包必须来自去往目标的当前路由 3. 重定

16、向包不能通知主机用自己做路由 4. 被改变的路由必须是一条间接路由 由于有这些限制,所以ICMP欺骗实际上很难实现。三ARP欺骗的防御下面介绍防范ARP攻击的几种常用方法:1、静态绑定将IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。ARP欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。缺点是每台电脑需绑定,且重启后任需绑定,工作量较大,虽说绑定可以通过批处理文件来实现,但也比较麻烦。2、使用防护软件目前关于ARP类的防护软件比较多。比如欣向ARP工具,Anti

17、arp,它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。ARP防火墙也是常用的防护软件,它采用系统内核层拦截技术和主动防御技术,包含六大功能模块可解决大部分欺骗、ARP攻击带来的问题,从而保证通讯安全(保障通讯数据不被网管软件/恶意软件监听和控制)、保证网络畅通。3、具有ARP防护功能的路由器对于这类路由器中提到的ARP防护功能,其实它的原理就是定期的发送自己正确的ARP信息。但是路由器的这种功能对于真正意义上的攻击,是不能解决的。 ARP的最常见的特征就是掉线,一般情况下不需要处理,一定时间内可以回复正常上网,因为ARP欺骗是有老化时间的,过了老化时间就会自动的回复正常。现在大多数路由器都会在很短时间内不停广播自己的正确ARP信息,使受骗的主机回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),它是不断的发起ARP欺骗包来阻止内网机器上网,即使路由器不断广播正确的包也会被它大量的错误信息给淹没。 可能你会有疑问:我们也可以发送比欺骗者更多更快正确的ARP信息啊?如果攻击者每秒发送1000个ARP欺骗包,那我们就每秒发送1500个正确的ARP信息! 面对上面的疑问,我们仔细想想,如果网络拓扑很大,网络中接了很多网络设备和主机,大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论