以太网构建由 1500 个字节的块组成的数据帧。每个以太网数据帧头包括源 MAC 地址和
目的 MAC 地址。建造以太网数据帧,必须从 IP 数据包中开始。但在构建过程中,以太网并
不知道目标机器的MAC 地址,这就需要创建以太网头。唯一可用的信息就是数据包头中的目
标 IP地址。对于特定主机的数据包传输,以太网协议必须利用目标IP来查找目标MAC地址。
这就是 ARP地址解析协议。ARP用于定位与特定IP地址相关联的以太网地址。
地址解析协议(ARP 协议)是 RFC826 文档中定义的 TCP/ IP 标准。ARP 协议使用基于
TCP/IP 协议的软件将 IP 地址解析为局域网硬件使用的媒体访问控制地址即 MAC 地址。ARP
协议发送 ARP 数据包请求。ARP 则询问如下问题:“你的 IP地址是否是 x.x.x.x?如果是,
请将你的 MAC 地址返回”。这些数据包被广播到局域网中所有的计算机。每台计算机都会检
查该 ARP 请求,以确定其IP 地址是否相同,并返回包含 MAC 地址的 ARP 应答包。为了减少
ARP 广播请求的数量,操作系统会保存一份ARP 应答包的数据缓存。在发送广播请求之前,
发送请求的计算机要确保数据是否在ARP缓存中。如果是,则不需要广播ARP 请求,就可以
完成。检查 Windows、UNIX 或 Linux 操作系统中的缓存,必须使用 arp –a 命令。
ARP 表中条目通常保存一定时间,在超期后将再次通过发送ARP 应答被添加进来。当计算机
接收到 ARP应答时,则用新的IP / MAC协会更新ARP 缓存。

ARP 欺骗攻击
 
ARP是无状态的协议;如果操作系统在没有发送请求的情况下得到应答消息,那么大多
数操作系统都会更新其缓存。由于没有任何验证机制,网络上的任何主机都可以向目标主机
发送伪造的ARP应答,这样目标计算机就会将原本发送给计算机B的数据帧,发送给计算机
A。如果处理得当,计算机 A 并不会发现该变化过程。用伪造的条目更新目标计算机 ARP 缓
存的过程被称为“中毒”。通常,攻击者将其MAC地址与另一节点的IP地址(默认网关)关
联在一起(图2 所示)。该IP 地址(默认网关)的任何通信都会被错误地发送给攻击者。然

后攻击者就可以选择性地将数据流量转发至真正的默认网关或者在转发前修改数据。攻击者
还可以通过制造拒绝服务攻击,将不存在的MAC 地址与受害主机默认网关的IP 地址关联。

伪造的 ARP响应将会被定期地发送至受害主机,并且相比较受害者主机上的ARP缓存条
目的超时周期,欺骗响应的周期更短。这将确保受害者主机绝不会向那些攻击模仿其 IP 地
址的主机发送ARP 请求。
ARP 攻击嗅探
嗅探机制捕获网络中来自单一机器的所有或部分通信流量。地址解析协议(ARP)中毒
用于嗅探主机间的通信流量,如下图 3所示。攻击者用主机B 的 IP地址和 MAC 地址向主机
A 发送伪造的 ARP 数据包。攻击者还用主机 A 的 IP 地址和攻击者的 MAC 地址向主机 B 发送
伪造的 ARP数据包,那么主机 A和主机 B的所有通信都会流向攻击者,这样攻击者就可以嗅
探数据,而不是直接攻击受害主机。由于恶意用户扮演在两个目标主机之间传输的角色,所
以该攻击也称之为“中间人”攻击。

69
MAC洪水攻击 
这是另一种嗅探方法。该MAC 洪水攻击针对网络交换机的 ARP 缓存中毒技术。当某些交
换机超负荷运行时,则需要经常切换至“集线器“模式。在该模式中,交换机无法保证端口
安全性,并且只将所有的网络通信广播至每一个计算机。通过向交换机ARP表发送大量伪造
的 ARP应答,制造洪水攻击,那么攻击者就可以重载交换机,并且当交换机处于集线器模式
时,进行数据包嗅探任务。
广播
通过将目标地址设置为“FF:FF:FF:FF:FF:FF”,即广播MAC地址,数据帧可以被广播到
整个网络中。通过用伪造的ARP应答加载网络,该应答将网关的MAC 地址设置为广播地址,
所有的通信数据都将被广播,从而进行嗅探攻击。
拒绝服务攻击
用不存的 MAC 地址更新ARP缓存将导致数据帧的丢失。例如,攻击者可以发送一个ARP

应答,其将不存在的MAC地址与网络路由器的IP地址关联起来。然后,计算机就认为它们
将数据发送到了默认网关,但实际上却将数据发送到了本地网络中不存在的地址中。
劫持攻击
连接劫持攻击允许攻击者使用与中间人攻击相似的方法,控制两台计算机之间的连接。

这种控制权的转移导致任何类型的会话都将被转移。例如,在目标计算机以管理员身份登录
至远程计算机以后,攻击者可以控制一个Telnet会话。
 
ARP 攻击实验方法
 
以下是 Jammu 大学的无线网络实验中进行的实验。选用网络中的 IP 地址
172.18.223.213 和 MAC 地址 00-21-00-59-1E-0F 作为实验节点。默认网关的 IP 地址是
192.170.1.1,其 MAC地址是 00-0D-ED-6C-F9-FF。该实验检查名为SniffLan 的ARP欺骗攻
击,为了将攻击者的MAC 地址与默认网关的IP 地址关联起来,实验中伪造的ARP 数据包都
被广播到局域网内所有计算机的欺骗ARP表中。因此,任何指向网关地址的通信都将被错误
地发送给攻击者。当进行攻击时,网络嗅探活动就可以确保攻击者查看所有目标计算机正在
查看的信息和内容。
a)第一步就是激活攻击者机器上的嗅探程序来捕获所有指向其的通信数据,这样就数
据包内容就会被检查。作者使用开源的数据包分析器 Wireshark(1.2.8 版本)进行分析。
Wireshark捕获网络数据包,并尽可能详细地显示数据包内容。它能够捕捉来自许多不同类
型网络媒体的数据,包括无线局域网,当然这依据设置情况而定。Wireshark安装在被选作
攻击者(172.18.223.213)的节点上。假设其为机器A.
安装 Wireshark
以下是安装Wireshark的步骤:
1)从网址http://www. wireshark.org/download.html下载Wireshark的安装程序包。 
2)在选择面板上选择将要安装的组件。
3)如果 Winpcap没安装的话,在Winpcap的页面中安装Winpcap。
4)点击安装Wireshark。
设置 Wireshark来捕获数据包
以下是使用Wireshark捕捉数据包步骤:
1)正确选择捕获数据包的网络接口。在“捕获”菜单中选择“接口”,以显示接口列表。
2)点击右侧接口上的开始按钮启动捕获操作,或者单击选项进行更多的设置。
3)在捕获过程中,作者使用了图4 显示的设置。
4)点击开始,启动捕获操作。

b)在二个步骤中,为了欺骗所有计算机的ARP表,必须将攻击者MAC 地址和默认网
关的 IP 地址关联起来,这样该网关的任何通信都被错误地发送至攻击者。用于显示并进行
测试操作的工具是 WinArpAttacker(3.50 版本)。WinArpAttacker 能够扫描数据,并显示
局域网上活动主机的程序,同时能够收集局域网上的所有数据包。在机器A上也安装了该工
具。WinArpAttacker基于wpcap工具,因此在 wpcap安装之前,必须安装WinArpAttacker。 
设置 WinArpAttacker
1)运行 WinArpAttacker.exe程序。
2)点击“选项”菜单进行相关配置,如选择网络接口、攻击执行的时间、是否选择自动扫
描、保存 ARP 数据包以便于进一步的分析以及使用代理等等设置。
3)点击扫描按钮,然后选择高级选项。在扫描对话框中对活动主机扫描整个局域网或者选
择一定范围的IP地址进行扫描。作者选择的IP范围172.18.223.0至 172.18.223.254(包
括攻击者主机在内)。由于局域网上攻击行为的危险性,该IP地址范围可以降低对子网节点
的影响。

4)点击 arpattack按钮选择snifflan,同时 ARP欺骗攻击将被启动。
c)现在所有主机之间和和网关间的通信都能被 Wireshark 所捕获。一旦发起攻击,就
会发送 gratuitous ARP应答(gratuitous ARP,用来探测网内是否有机器和自己的ip冲突,
或者用来更新工作站的 arp 缓存)。图 9给出了详细的 ARP 应答报文。尽管没有发送 ARP 请
求,但当接收到ARP 响应时,网络上所有设备都会更新其ARP缓存,即用攻击者的MAC地址
代替网关的MAC 地址。因此发送给网关的通信就会到达攻击者主机。图10 显示 ARP 欺骗攻
击之后,攻击者接收的数据包。
d)分析数据包:一旦捕获通信数据,那么就必须检查数据包内容以查看像密码、编码
之类的信息。右键点击需要被分析的数据包并选择以下 TCP 数据流。图 11 显示了 Jammu 大

学的无线网络用户的密码。

众所周知,在不影响工作效率的情况下,很难解决ARP 缓存中毒问题。唯一可行的防御
方法就是使用静态ARP 表项。为了防止欺骗攻击,ARP 表必须为网络上的所有机器分配静态
表项。部署这些表项以及保持正常使用的开销太大,并不现实。众所周知,如果有些操作系
统接收到 Gratuitous ARP 数据包,那么这些操作系统就会覆盖静态 ARP 表项。此外,这也
可以防止使用DHCP配置,该配置频繁改变MAC/IP关联数据。另一个有效方法是端口安全机
制,即端口绑定或MAC绑定。端口安全机制可保持交换机MAC表不变,除非由网络管理员手
动执行。但其并不适用于大型网络,或是使用 DHCP 的网络。下一步将讨论其它各种 ARP 欺
骗的预防机制和检测技术。
防御技术
a)安全地址解析协议:Bruschi、Ornaghi 和 Rosti推荐了一个ARP安全版本,该ARP
中每个主机都有一对公有/私有密钥,由局域网中的受信任方(扮演认证机构的角色)所认
证。为了防止欺骗信息的注入,信息由发送方进行数字签名。它提供了一个永久性解决ARP
欺骗的方法,但其最大的缺点是需要对所有主机的网络协议栈进行修改。此外S-ARP 使用数
字签名算法(DSA),这将导致额外的加密计算的开销。Goyal 和 Tripathy 建议修改基于数
字签名组合的机制之上的S-ARP,以及基于散列链的一次性密码技术(为了认证ARP的<IP,
MAC>映射)。该计划基于与S-ARP 相似的架构,但却更加巧妙地使用加密技术。

b)TARP:Lootah、Enck 和 McDaniel 展示了基于 Ticket 的地址解析协议(TARP),该
协议为加入网络的客户端实现了分布式集中生成的MAC/ IP地址的映射attestations机制,
即所谓的门票。主机用请求的IP 地址发送应答消息,同时附上之前获取的Ticket,Ticket
上的签名证明本地票务代理(LTA)已经将其发行。发送请求的主机接收Ticket,并用LTA

的公钥进行验证。如果签名有效,地址关联将得到认可;否则,将被忽略。随着TARP Ticket
的使用,对手就无法成功地伪造 TARP 的应答,因此,就不能使用 ARP 中毒进行攻击。但缺
点就是实现TARP 机制的网络很容易受到两类攻击:活动主机模拟攻击和通过Ticket进行的
拒绝服务攻击。此外,只要 Ticket 有效,攻击者就可以通过欺骗其 MAC 地址并应答被捕获
的门票消息,进而模拟受害主机。
c)部署虚拟专用网络(VPN)来进行身份验证,同时传输的数据的客户端对网关的安全
机制也提供了部分解决方案。尽管网络受VPN 保护,攻击者仍可以通过基于ARP的攻击对通
信进行重定向并被动地监视通信,但其只能访问加密的数据流。尽管通过将伪造的数据注入
客户端的 ARP 缓存,攻击者仍然能够制造拒绝服务攻击,但是数据 compromise 的问题将不
存在。 
d)使用中央 ARP 服务器:Taietal 建议使用改进的 ARP 技术,该 ARP 的请求数据包并
不广播,而是单播至ARP服务器,该服务器将获得所有连接至网络主机的<ip, MAC>映射集。
这大大降低了ARP 信号传输和处理的开销。为了获得所有主机的<ip,MAC>映射,网络中所有
主机之间通信数据包都被监听,并且这些数据包试图建立基于传输于主机和 DHCP 之间的
DHCP消息的 ARP 表。但是为防止机器IP地址的变化,并防止更新ARP缓存,就必须对 DHCP
消息进行不断地扫描。其主要缺点是,如果网络没有启动DHCP,就无法捕获任何主机的<ip,
MAC>映射。

检测技术
1)请求应答不匹配算法:在该算法中嗅探器监听 ARP 数据包,并保存由 MAC 地址 key
的等待决定的请求表。如果匹配的应答超时到达,表中的表项将被删除。如果表中没有与应
答匹配的请求,那么就要通知管理员。该算法在小型网络中运行较好,但在大型网络中,这
种算法可能会被误认为攻击。这是一种被动检测技术,在该技术中网络上的 ARP 请求/
应答被嗅探去构建一个 MAC 地址到 IP 地址映射数据库中。如果未来ARP 通信映射表出现变
化,那么就会发出 ARP 欺骗攻击的警报。该类别中最常用的工具是 ARPWATCH。该被动式检
测技术的主要缺点就是学习地址映射与随后的攻击检测之间的时间延迟。倘若启动检测工具

之前,发生ARP欺骗攻击,该工具将在其IP地址映射数据库中学习伪造的应答。
2)主动检测:Ramachandran和Nandi提出了一个主动检测ARP欺骗的技术。基于主机
网络栈的正确行为准则(当接受数据包时),将过滤不一致的ARP数据包。然后将一个 TCP SYN
包发送给主机进行验证。由于欺骗检测引擎没有接收到任何针对该SYN 数据包的TCP响应数
据包,因此能够识别接收到的 ARP 响应报文的真实性。人们认为该技术比被动式技术更加快
速、智能化,并具有较强的可扩展性和可靠性。
3)通过 SNMP 检测交换机:Carnut和 Gondim使用路由器检测ARP 的不稳定性,如那些
通过端口的 ARP 数据包,该路由器由 SNMP 管理框架提供,包含许多流向交换机的输入输出
数据包和字节。由于攻击者几乎重发了所有流经接收端口的数据包,因此数量上基本相当。
那些最不稳定的发射器的主机决定了候选攻击者的身份,并且那些接收未应答数据包的主机
决定了候选受害者的身份。该算法很容易实现,但是当在真实网络环境中测试时,其误报率
非常高。
小结
  本文详细描述了ARP攻击方法。所有推荐的检测和防御方法具有不同的应用范围和其局限
性。要么不安全,要么对系统性能有无法接受的缺点。同时也提出了解决问题的技术,其能
够协助安全向导选择用于构建安全局域网的合适的解决办法。

ARP欺骗攻击的检测和防御相关推荐

  1. ARP欺骗攻击原理及其防御

    一.概述 1.ARP协议 地址解析协议,将IP地址转换为对应的mac地址,属链路层协议 数据包分为: 请求包(广播):本机IP地址.mac地址+目标主机IP地址 应答包(单播):本机IP地址.mac地 ...

  2. [网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及防御机理

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了一个phpMyAdmin 4.8.1版本的文件包含漏洞,从配置到原理, ...

  3. 模拟ARP欺骗攻击与防护

    为保证网络环境的安全,模拟ARP欺骗在eNSP模拟器+VMware虚拟机上构建网络环境. 一:ARP欺骗攻击 1.准备环境:华为eNSP模拟器+VMware虚拟机上创建kali服务器 2.在虚拟机上打 ...

  4. 3-wireshark网络安全分析——ARP欺骗攻击

    目录 1. 中间人攻击 2. ARP欺骗 3. ARP欺骗过程分析 4. Wireshark专家系统分析 5. 如何防御ARP欺骗 ARP协议可参考:https://blog.csdn.net/qq_ ...

  5. ARP欺骗:先认识再防御

    摘要:近年来,随着信息技术的不断发展,网络已深入到人们的日常生活工作中.由于局域网具有网络资源共享.易统一管理等诸多优点,因此得到了越来越多的重视和普及. 近年来,随着信息技术的不断发展,网络已深入到 ...

  6. ARP病毒攻击技术分析与防御(补充知识)

    ARP病毒攻击技术分析与防御 --  ARP病毒攻击技术分析与防御 一.ARP Spoofing攻击原理分析 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议 ...

  7. 无线网络安全之ARP欺骗攻击

    0x00 相关背景知识 一.中间人攻击 通过各种技术手段将攻击者控制的一台计算机虚拟放置于网络连接中的两台通信计算机之间,从而达到信息窃听,会话劫持,断网等攻击目标. 二.ARP欺骗 针对ARP协议漏 ...

  8. 网络安全实验之《ARP欺骗攻击》实验报告

    一.实验目的 (1)课上实验(ARP欺骗攻击工具实验):运行WinArpAttacker或Ettercap(二选一),通过WireShark等抓包工具,捕获ARP欺骗攻击的数据包,分析ARP攻击的原理 ...

  9. 如何发动一次ARP欺骗攻击

    免责协议:本文整个实验过程都在虚拟机中进行,且本材料仅供交流学习使用,严禁用于违法犯罪. 1.环境部署:服务器 windows2008 客户机  windows10 攻击机  kali 都在同一网络环 ...

最新文章

  1. Beginning IOS 7 Development Exploring the IOS SDK - Handling Basic Interface Fun
  2. 详细的摄像头模组工作原理!!!(转)
  3. 使用malloc之前需要做什么准备工作。
  4. 应用存储和持久化数据卷:存储快照与拓扑调度(至天)
  5. 上篇 | 如何设计一个多轮对话机器人
  6. 16行代码AC——紫书| 例题7-3 Fractions Again?! (UVA - 10976)_时间复杂度O(n)
  7. Spring再次涵盖了您:继续进行消费者驱动的消息传递合同测试
  8. 微信小程序 网络请求之设置合法域名
  9. windows内核情景分析---进程线程2
  10. 2019.01.13 bzoj4137: [FJOI2015]火星商店问题(线段树分治+可持久化01trie)
  11. 论文阅读笔记——拥塞控制算法PCC
  12. 结构方程模型及PLS估计【评价】
  13. Python API接口压力测试简单实现(并发测试)
  14. cad相对坐标快捷键_CAD快捷键及命令大全
  15. VMware 无法将值写入注册表项
  16. 网易云音乐视频全屏无法关闭
  17. Duilib版视频监控客户端(简易版)
  18. chm、html文件转换为PDF文件(已解决)
  19. 简单使用GreenDao框架
  20. HBase 在滴滴出行的应用场景和最佳实践

热门文章

  1. 水滴屏壁纸来了!有你喜欢的吗?
  2. 【JY】浅谈有限元分析中的力学与工程思维
  3. 技法:对你的应用添加键盘加速键
  4. matlab回文字符判断程序,(c语言)回文字符串的判断,gets和scanf
  5. 4. DDPM, DDIM, Analytic-DPM, Extended Analytic-DPM
  6. 半个屁股和女人的胸脯
  7. 南大通用GBase8s 常用SQL语句(261)
  8. 怎样使微信中打开链接自动打开外部浏览器打开指定URL页面或者直接下载APP(安卓/苹果)文件
  9. Office 365系列之十六:配置Outlook POP3方式连接Exchange Online
  10. 不管你信不信,反正我信了。是这样实现的……