现在的位置: 首页 > 综合 > 正文

arp协议,arp欺骗

2013年08月06日 ⁄ 综合 ⁄ 共 2624字 ⁄ 字号 评论关闭

什么是ARP2007-12-04 09:03   ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。
 
 二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。也就是说IP数据包在局

网内部传输时并不是靠IP地址而是靠MAC地址来识别目标的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关
系的协议。

   Windows操作系统,在命令行窗口输入"arp -a"命令可查看本机当前的ARP缓存表,ARP缓存表保存的就是IP地址与MAC地址的对应关系,如下图所示:

   上图中,"Internet Address"指的就是IP地址,"Physical Address"指的就是MAC地址。

ARP协议工作原理

  ARP数据包根据接收对象不同,可分为两种:
   1. 广播包(Broadcast)。广播包目的MAC地址为FF-FF-FF-FF-FF-FF,交换机设备接收到广播包后,会把它转发给局域网内的所有主机。
   2. 非广播包(Non-Broadcast)。非广播包后只有指定的主机才能接收到。

  ARP数据包根据功能不同,也可以分为两种:
   1. ARP请求包(ARP Request)。ARP请求包的作用是用于获取局域网内某IP对应的MAC地址。
   2. ARP回复包(ARP Reply)。ARP回复包的作用是告知别的主机,本机的IP地址和MAC是什么。

   广播的一般都是ARP请求包,非广播的一般都是ARP回复包。

   假设局域网内有以下两台主机,主机名、IP地址、MAC地址分别如下:
       主机名   IP地址           MAC地址
       A        192.168.0.1     AA-AA-AA-AA-AA-AA
       B        192.168.0.2     BB-BB-BB-BB-BB-BB

 
 当主机A需要与主机B进行通讯时,它会先查一下本机的ARP缓存中,有没有主机B的MAC地址。如果有就可以直接通讯。如果没有,主机A就需要通过
ARP
协议来获取主机B的MAC地址,具体做法相当于主机A向局域网内所有主机喊一嗓子:“喂~谁是192.168.0.2?我是192.168.0.1,我的
MAC地址是AA-AA-AA-AA-AA-AA
。你的MAC地址是什么,快告诉我”,这时候主机A发的数据包类型为:广播-请求。

   当主机B接收到来自主机A的“ARP广播-请求”数据包后,它会先把主机A的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,
然后它会给主机A发送一个“ARP非广播-回复”数据包,其作用相当于告诉主机A:“嘿,我是192.168.0.2,我的MAC地址是BB-BB-BB

-BB-BB-BB”。当主机A接收到主机B的回复后,它会把主机B的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,之后主机A和B就
可以进行通讯了。

   从上述局域网主机通讯过程可以看出,主机在两种情况下会保存、更新本机的ARP缓存表,
   1. 接收到“ARP广播-请求”包时
   2. 接收到“ARP非广播-回复”包时

    这种机制,或者说ARP协议的设计,会不会存在问题呢?

ARP欺骗的原理

  从《ARP协议工作原理》一文我们已经了解到,主机在两种情况下会保存、更新本机的ARP缓存表,
   1. 接收到“ARP广播-请求”包时
   2. 接收到“ARP非广播-回复”包时

   从中我们可以看出,ARP协议是没有身份验证机制的,局域网内任何主机都可以随意伪造ARP数据包,ARP协议设计天生就存在严重缺陷。

   假设局域网内有以下三台主机(其中GW指网关),主机名、IP地址、MAC地址分别如下:
       主机名   IP地址          MAC地址
        GW        192.168.0.1      01-01-01-01-01-01
        PC02      192.168.0.2     02-02-02-02-02-02
       PC03     192.168.0.3     03-03-03-03-03-03

   在正常情况下,主机PC02与GW之间的数据流向,以及它们各自的ARP缓存表如下图所示:

 
 当网络爱好者,主机PC03出现之后,他为了达到某种目的,于是决定实施一次ARP欺骗攻击。PC03首先向PC02发送了一个ARP数据包,作用相当

告诉PC02:“嘿,我是192.168.0.1,我的MAC地址是03-03-03-03-03-03”,接着他也向GW发送了一个ARP数据包,作用

相当于告诉GW:“嘿,我是192.168.0.2,我的MAC地址是03-03-03-03-03-03”。于是,主机PC02与GW之间的数据流向,
以及它们各自的ARP缓存表就变成如下图所示:

   从上图我们可以看出,ARP欺骗之后,主机PC02与GW之间的所有网络数据都将流经PC03,即PC03已经掌控了它们之间的数据通讯。以上就是一次ARP欺骗的实施过程,以及欺骗之后的效果。

ARP欺骗的种类及危害

  ARP欺骗根据欺骗对象的不用可以分为三种,
   1. 只欺骗受害主机。实施欺骗后效果如下:

   2. 只欺骗路由器、网关。实施欺骗后效果如下:

   3. 双向欺骗,即前面两种欺骗方法的组合使用。实施欺骗后的效果如下:

   ARP欺骗带来的危害可以分为几大类,
   1. 网络异常。具体表现为:掉线、IP冲突等。
   2. 数据窃取。具体表现为:个人隐私泄漏(如MSN聊天记录、邮件等)、账号被盗用(如QQ账号、银行账号等)。
   3. 数据篡改。具体表现为:访问的网页被添加了恶意内容,俗称“挂马”。
   4. 非法控制。具体表现为:网络速度、网络访问行为(例如某些网页打不开、某些网络应用程序用不了)受第三者非法控制。

   ARP欺骗根据发起个体的不同可以分为两类,
   1. 人为攻击。人为攻击的目的主要是:造成网络异常、窃取数据、非法控制。
   2. ARP病毒。ARP病毒不是特指某一种病毒,而是指所有包含有ARP欺骗功能的病毒的总称。ARP病毒的目的主要是:窃取数据(盗号等)、篡改数据(挂马等)。

   从目前的情况来看,ARP欺骗(不管是人为的还是ARP病毒)大多数是在网络异常后被发现的。请注意,精心策划的人为ARP欺骗

抱歉!评论已关闭.