DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 941|回复: 0
打印 上一主题 下一主题

[待整理] ARP攻击的分析与防范

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 13:37:11 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
  1 引言

  网络上的计算机之间是通过IP地址通信的,但是IP地址是位于网络层的逻辑地址,计算机之间要想真的进行数据交换必须知道它的物理地址,ARP就是将逻辑地址转换成物理地址的一个协议。因此ARP的协议的安全就显的非常重要。现在对ARP攻击最常用的一种方式就是ARP欺骗,在这种攻击方式下,攻击方可以通过伪造ARP请求与应答更新目标主机的ARP缓存从而骗过目标机。使目标机的数据包发给攻击者。攻击者就可以对截获的数据包的内容进行分析破解目标机的信息。

  2 ARP协议

  计算机之间主要是通过IP地址通信,IP地址是一个逻辑地址,通过IP地址就可以找到目标网络,但是在一个网络内部的计算机之间进行最终的数据交换时就必须经过物理MAC地址才能识别具体的一台主机,这时我们就需要ARP协议把需要通信的目标主机的IP地址解析为与之对应的硬件物理地址。

  2.1 ARP协议的基本工作原理

  一台连入互连网的计算机拥有两个地址。一个是IP地址,它是一个网络层使用的协议并且独立于网络底层。每一台在互联网上的计算机都必须有一个惟一IP地址。IP地址是一个可以通过软件设置的逻辑地址。另一个地址是网卡地址MAC地址。MAC地址是一个固定在网卡中的全球独一无二的地址。通过MAC地址,以太网就能独立于上层协议收发数据。当两台主机进行通信时,IP数据被封装成以太帧格式的一个个的数据包,这些数据包通过数据链路层进行传送,ARP消息就被封装在以太帧的数据部分。每一台基于TCP/IP协议的主机都有一个ARP缓存表。里面包括硬件类型,硬件地址长度,操作号,源IP地址与MAC地址,目的IP地址与MAC地址。如果一台主机甲要与另一台主机乙进行数据通信,且它们位于一个网段时,它们之间的具体通信过程如下:甲查看自己的ARP缓存表,寻找乙机器的相关信息,如果找到的话,就使用表中与乙的IP地址对应的MAC地址来通信;若查找失败,就会向局域网中发送一个以太网的广播帧,往帧中填充甲主机的IP地址和MAC地址,乙主机的IP地址等字段形成一个ARP请求。此时此网段内的所有机器都会收到此请求,但只有乙主机收到后发现此请求中有自己的IP地址从而作出响应。它先刷新自己的ARP缓存,以便提高以后的通信效率,而后生成一个ARP应答帧将自己的MAC地址填充进去发送给甲主机。甲收到后将乙的ARP信息写入自己的ARP缓存中。若不在同一网段,此过程分为两个阶段,第一阶段甲会广播一个ARP请求来得到本地网关的MAC地址,然后将数据发送到网关。再判断网关与乙是否在同一网段。如果是就进入第二阶段查找IP/MAC,转发数据否则继续广播ARP请求。(如图1)当一台机器更换了新网卡后,就会通知网内其它主机,使之更新各自的ARP表项使IP地址和新的MAC地址保持一致。因此每台机器在启动时都会发一个以太网广播帧通知其它主机及时更新ARP缓存。

第一阶段               第二阶段

图1 不同网段的ARP攻击

  2.2 ARP协议的弱点

  由于ARP缓存表是动态刷新的。根据RFC826规定当主机接收到ARP应答时,主机的ARP表会立刻刷新而无需判断是否事先发过ARP请求。若主机长时间没有收到ARP应答(一般是20分钟)它会自动刷新ARP缓存表,这样可以删掉那些过期的,已经不存在的表项。确保ARP缓存表的正确性。但是这样很容易使主机的ARP缓存表被攻击者修改。使主机的ARP表项改成攻击者需要的表项。

  3 ARP攻击

  ARP攻击主要是就基于ARP缓存表的的弱点,攻击者非法篡改目标机ARP缓存表,使目标主机无法正常工作的行为。ARP攻击主要有拒绝服务攻击和ARP欺骗。

  3.1 拒绝服务攻击

  攻击者可以很容易的将目标主机中IP地址对应的MAC地址改成根本不存在的地址,这样计算机就会往这个根本不存在的地址发送数据包,导致目标机无法接收到数据包,中断了主机与外界网络的通信。

  3.2 ARP欺骗

  3.2.1 中间人攻击

  这种攻击是网络监听的一种方式。攻击者进入两台通信的计算机之间,通过某种手段窃取一台机器给另一台机器发送的数据包,然后将数据包修改再转发给另一台机器,攻击者对这两台计算机来说是透明的。具体过程如下。

  假设三台计算机A、B、C。机器C修改A的ARP缓存表,将表中B的IP地址对应的MAC地址改成C的MAC地址。当A给B发送数据时,就使用了B的IP地址与C的MAC地址。使给B发送的数据全部发给了C。同理修改目标机B的ARP缓存表使A的IP地址对应的MAC地址改成C的MAC地址。最终A与B之间通信的数据就全部经过C,之后C又把数据发给A和B。

  3.2.2 克隆攻击

  克隆攻击是另外一种ARP欺骗的方式。现在我们已经可以通过硬件或软件工具来修改网络接口的MAC地址,Linux用户甚至只需要用ifconfig命令修改一个参数就能修改。攻击者通过拒绝服务攻击使目标主机与外界失去联系,然后攻击者将自己的IP和MAC地址改成目标机的IP和MAC地址,这样攻击者的主机就成为和目标机一样的副本。

  4 ARP欺骗的防范措施

  4.1 MAC地址绑定

  MAC地址与交换机绑定。一台高质量的交换机往往有一个功能就是不允许修改与交换机某个端口绑定的MAC地址。当确实需要修改时,只能被网络管理者修改。

  4.2 静态缓存表

  将ARP缓存表设置成静态,不允许其自动刷新。网络管理员负责对网络上的每台机器进行登记,记录每台机器的IP/MAC。这样在发送一个与ARP静态缓存不一致的请求时目标机将不予理睬。但这种方法不适合于大型的网络,它需要定期维护ARP表,给管理员造成很大的负担。

  4.3 RARP

  RARP即地址反转协议。RARP协议用于知道一个MAC地址确定它的IP地址。在一个网络内部,主机向网内的所有计算机发送一个RARP请求,这时若一个MAC地址收到多个IP地址,就说明拥有该MAC地址的机器受到克隆攻击。

  4.4 ARPWATCH

  ARPWATCH 是一款用于查看IP地址与其对应的物理地址之间变化的软件。在用户启动时,ARP就收集本地网络上所有机器的ARP包并生成一个数据库文件来存储MAC/IP。

  当开始运行时就会开始监听网络,将捕获的数据包与数据库中的内容进行比较,如果不一样的话就会发出一份EMAL警告,同时记录现场用来帮助追踪追击者的来源。因此当有一个ARP欺骗发生时,当攻击者试图修改ARP表时ARPWATCH就会发现,并记录下来并发E-mail通网络管理员使其采取相应措施。

  5 利用Libnet开发包构造ARP欺骗应答数据包

  5.1 ARP报文格式

  ARP的报文格式如图2所示。

<div align="center">[table]            [tr]            [td=2,1,185]            <div align="center">硬件地址类型
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-1-12 02:58 , 耗时 0.089435 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表