免费ARP,也有称无故ARP,其英文原词是Gratuitous ARP,Gratuitous直译为中文是“免费的, 无理由的”,小编还是觉得英文原词更能表达其所代表的含义,字面上Gratuitous ARP 更好理解一些。

  以太网中为什么要用到Gratuitous ARP(以下简称GARP)呢?

  第一,主机可以通过GARP向网络发送广播,以告诉整个广播域,目前某个IP所对应的MAC地址是什么——这一行为就像是在发宣传单,而宣传单是不需要回应的。

  各位同学请看下图中的8-10行内容,这里只有“宣传单”——GARP Request数据包,而没有回应数据包。小编是这样做的,在主机A1上运行抓包工具,然后重起主机A2,两台主机在同一个广播域中,主机A2在启动过程中其中有一步会向网络发送GARP Request数据包。

主机A1收到GARP Request数据包,更新了自己的ARP缓存表,但它不会对该数据包给以回应——也就是“只入不出”。

第二,主机是想看看广播域内有没有别的主机使用自己的IP地址,如果使用了,则在界面上弹出“IP冲突”字样。普通ARP请求报文广播发送出去,广播域内所有主机都会接收到,计算机系统判断ARP请求报文中的目的IP地址字段,如果发现和本机的IP地址相同,则将自己的MAC地址填写到该报文的目的MAC地址字段,并将该报文发回给源主机。所以只要发送ARP请求的主机接收到报文,则证明广播域内有别的主机使用和自己相同的IP地址(这里不考虑路由器的ARP代理问题)。免费ARP的报文发出去是不希望收到回应的,只希望是起宣告作用;如果收到回应,则证明对方也使用自己目前使用的IP地址,如下图:

GARP的漏洞

  根据上述第一种作用能发现GARP带来的漏洞,因为目前的局域网上都没有安全的认证系统,所以任何主机都可以发送这样的GARP广播,这样就会出现 MAC地址欺骗。假如局域网内有主机A1,A2,A3,A3正在与A1制进行通信,这时A2(***者)向局域网内发送了一个免费ARP广播,其源IP地址为A1的地址,源MAC地址为A2的MAC地址。A3在收到这样的报文后,会将自己ARP缓存中A1的MAC地址改为A2的MAC地址,这就形成 了MAC地址欺骗,这样A3会将所有该发给A1的信息都发送给A2,A2再通过抓包分析就可以得到很多不该知道的信息,尤其是对于未加密的数据传输,例如获得FTP的明文密码。

小编在10.0.0.10这台主机上设置的FTP服务器禁用了anonymous登录,创建了一个ftpuser帐户。在10.0.0.30主机上尝试登录,小编输入了两次错误的密码:wrong_password 和 wrong_again,最后输入正确密码,登录成功。全被看到了鸟~

  其实使用WIRESHARK也可以看到这些内容,只是看起来会比较眼花,如下图:

上图中在34-37行的内容中可以看到第一次登录尝试,没成功,同样的情形在46-49行也可以看到。在第59-62行的内容中可以看到登录成功了,帐户是:ftpuser ,密码是ftpaccess

现在很多系统都使用双机热备份系统(即一个主用,另一个备用, 如果主用没有问题,备用一直处于空闲状态;如果主用出现问题,备用立刻接管)。假设主用服务器的MAC地址为:1111-1111-1111,备用服务器 的MAC地址为:2222-2222-2222,通过某种软件,两台服务器对外共用一个IP,例如10.10.10.1,这样客户机在需要同服务器进行通 信的时候(第一次通信时ARP的缓存是空的,或至少没有10.10.10.1的MAC地址),先向局域网发送广播ARP请求报文,请求 10.10.10.1这个IP地址的MAC地址,得到主用服务器响应后,将10.10.10.1和对应的MAC地址放入自己的ARP缓存中,然后向这个 IP发送请求就可以进行通信了。如果在通信的过程中,主用服务器突然发生故障,宕机了,这时备用服务器立刻接管10.10.10.1这个IP进行服务,可 是刚才那台客户机的ARP缓存表中10.10.10.1这个IP对应的MAC地址是1111-1111-1111,再往这个MAC地址发送数据包肯定是石 沉大海的,怎样才能让备用接管了服务之后立刻能起作用呢?
我们能想到的方法有两种,一种就是在使用双机热备份系统,接管那个IP的时候,生成一个不依赖于任何一个主机的虚拟MAC地址,接管IP的同时也接管那个 虚拟的MAC地址,这样客户机不需要做任何更改动作,ARP缓存表不变。另外一种就是在接管的同时,接管的服务器对外广播一个ARP报文给所有主机,例如 在刚才的例子中,ARP广播报文的数据字段中源IP地址是10.10.10.1,源MAC地址是2222-2222-2222,目的IP地址也是 10.10.10.1,目的MAC地址也是2222-2222-2222,IP报文的目的地址是FFFF-FFFF-FFFF,这样让所有的广播网络上的 主机接收该报文,并更新自己的ARP缓存表,已告知10.10.10.1这个IP的对应MAC地址已经变为2222-2222-2222,这样,刚才的那 个客户机就能正确地同服务器进行通信了。
这种方法在大多数系统中已经被采用,例如Cisco的HSRP技术中,虚拟出来的MAC地址是以0000.0c07.ac+HSRP的group ID组成,并且限制局域网上不会存在不同应用的相同Group ID,以确保局域网上不会重复MAC地址生成。在VRRP中也是如此,原理和HSRP同。这样无论主备用如何切换,客户机不需要做任何动作。
第二种方法就是免费ARP技术(gratuitous ARP),目前应用也很广泛。

免费ARP的作用
目前,免费ARP的作用有两种。
第一种就是刚才上面所说的宣告广播的作用,以告诉整个广播域,目前这个IP所对应的MAC地址是什么。
第二种是看看广播域内有没有别的主机使用自己的IP,如果使用了,则在界面上弹出“IP冲突”字样。普通ARP请求报文广播发送出去,广播域内所有主机都 接收到,计算机系统判断ARP请求报文中的目的IP地址字段,如果发现和本机的IP地址相同,则将自己的MAC地址填写到该报文的目的MAC地址字段,并 将该报文发回给源主机。所以只要发送ARP请求的主机接收到报文,则证明广播域内有别的主机使用和自己相同的IP地址(这里不考虑路由器的ARP代理问 题)。免费ARP的报文发出去是不希望收到回应的,只希望是起宣告作用;如果收到回应,则证明对方也使用自己目前使用的IP地址。
在所有网络设备(包括计算机网卡)up的时候,都会发送这样的免费ARP广播,以宣告并确认有没有冲突。
下面举一个免费arp报文的例子。
报文如下
0000 ff ff ff ff ff ff 00 00 5e 00 01 ea 08 06 00 01
0010 08 00 06 04 00 01 00 00 5e 00 01 ea 86 4a ea 01
0020 00 00 5e 00 01 ea 86 4a ea 01 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0040 00 00 00 00
报文中前48位是报文发送的目的MAC地址。
ff ff ff ff ff ff说明前48位都为1,表示这是一个局域网广播地址;
00 00 5e 00 01 ea是数据包发送的源MAC地址;
08 06表示为数据包类型为arp数据包;
00 01表示这是一个以太网数据包;
08 00表示为IP协议,6是硬件地址长度,4为协议地址长度;
00 01表示是ARP请求报文;
00 00 5e 00 01 ea发送者MAC地址;
86 4a ea 01(转换成十进制是134.74.234.1)是发送者的协议地址(由于协议是IP,所以这是IP地址);
86 4a ea 01是被请求的协议地址(可以看到请求的地址就是自身的IP地址);
00 00 5e 00 01 ea是被请求的MAC地址,正常情况下,如果不是免费ARP,这里应该为全0,在响应的时候,由目的主机来填写,但是在免费ARP的请求报文中,这里已经自动填写上自身的MAC地址。

免费ARP的漏洞及防范
根据上述第一种作用能发现免费ARP带来的漏洞,因为目前的局域网上都没有安全的认证系统,所以任何主机都可以发送这样的免费ARP广播,这样就会出现 MAC地址欺骗。假如某银行系统局域网内有服务器A,客户机B和客户机C,客户机B正在向服务器提交当天的信用卡消费和账号信息(通过某种安全通信机制进 行通信,确保客户机C是无法接收到两者之间传输的数据包的),这时客户机C(***者)向局域网内发送了一个免费ARP广播,其源IP地址为服务器A的地 址,源MAC地址为客户机C自己的MAC地址。客户机B收到这样的报文后,会将自己ARP缓存中服务器A的MAC地址改为客户机C的MAC地址,这就形成 了MAC地址欺骗,这样客户机B会将所有该发给服务器A的信息都发送给客户机C,C在通过抓包分析就知道了很多不该知道的信息。通常为了确保A不再发送信 息给B以改变B的ARP缓存里A的IP对应的MAC地址,C可以通过其他手段先将A工具瘫痪。这样就放心大胆地进行欺骗了。这是至今都很流行的***手段之 一。
目前针对该***没都有很好的防范手段,当前使用的方法有:
1. 设置MAC地址和IP地址绑定。
2. 将交换机上某些端口设置为信任端口,来自这些端口的请求认为是可靠的,予以转发,其他的不转发。
其实我们很多设备的漏洞都是这样产生的,为了解决一个问题,引入一项新的机制,但是通常由于缺乏全面的系统分析机制,没能对该项技术进行全方位的论证和考虑,导致了该技术存在一定的缺陷,引起系统的故障,然后在后继的过程中,只有通过打补丁或再引入其他机制进行预防

转载于:https://blog.51cto.com/1478762/1273867

免费ARP(gratuitous ARP)简介相关推荐

  1. 免费ARP(Gratuitous ARP)的介绍

    问题引入 我们很多系统都是使用双机热备份系统(即一个主用,另一个备用,如果主用没有问题,备用一直处于空闲状态:如果主用出现问题,备用立刻接管).假设主用服务器的MAC地址为:1111-1111-111 ...

  2. 什么是Gratuitous ARP

    2019独角兽企业重金招聘Python工程师标准>>> 以下摘自http://wiki.wireshark.org/Gratuitous_ARP. Gratuitous ARP Gr ...

  3. ARP协议具体解释之Gratuitous ARP(免费ARP)

    ARP协议具体解释之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP.无故ARP.Gratuitous ARP不同于 ...

  4. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  5. 浅谈---免费ARP 【Gratuitous ARP】

    1.免费ARP定义 ARP Request 报文中Sender IP 和 Target IP 都是自己的报文被称为免费ARP报文(Gratuitous ARP). 2.免费ARP作用 免费ARP报文主 ...

  6. DHCP服务器如何检测穿过中继代理的IP地址冲突(gratuitous ARP肯定是不行的)

    建议:先阅读本人所发表的博文,DHCP原理篇及IP地址冲突检测 1关于DHCP服务器的冲突检测的总结 2取证DHCP中继代理的工作原理与IP地址冲突(因为不在一个子网,所以gratuitous ARP ...

  7. Gratuitous ARP

    Gratuitous ARP 也叫做免费ARP,与普通ARP不一样,普通ARP是请求对方IP地址对应的MAC地址,而免费ARP是当主机或者路由器端口UP的时候所发出的,请求的是自己IP对应的MAC地址 ...

  8. 【博客421】无偿arp(Gratuitous ARP)

    无偿arp(Gratuitous ARP) 本质 设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称为免费ARP. 免费ARP本质是ARP协议的实现,所以只要有支持TCP/IP的网卡 ...

  9. GARP(Gratuitous ARP)

    内核函数arp_is_garp判断ARP报文是否为GARP,先决条件是发送者IP和目标IP地址相同,另外,对于ARP回复(REPLAY)报文,要求如果目标硬件地址存在,需要与发送者硬件地址相等.最后, ...

最新文章

  1. 0-1背包问题暴力递归
  2. python sklearn 归一化_数据分析|Python特征工程(5)
  3. uml+oopc嵌入式c语言开发精讲_嵌入式开发中更接近底层的汇编与C语言
  4. rx ajax,ajax_RxJS 中文文档_w3cschool
  5. 遵循Java EE标准规范的开源GIS服务平台之三:数据发布与访问
  6. AIX 6.1环境 yum的安装方法
  7. java udp多线程服务器_UDP服务端多线程-----
  8. C# 类2010-11-07
  9. 全Delphi代码实现安卓扫码程序
  10. 【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
  11. knockoutjs 经验总结
  12. 两种方法去除页眉页脚:基于OCR识别后的文本/基于图片切割
  13. T32 获取电脑Product ID
  14. codeforces C. Multiples of Length
  15. Win32创建异形窗口
  16. phpcms system.php,phpcms_v9.6.0_UTF8 PHPcms系统开源 很有用 - 下载 - 搜珍网
  17. html5中图片热点,HTML5 创建热点图
  18. java-learning:32. ArrayList类应用
  19. 火影忍者379在线观看
  20. 大数据剖析 | 北京VS上海: 活着为了工作还是工作为了生活?

热门文章

  1. 用astash 画UML类图
  2. 在Windows下黑窗口中操作数据库
  3. 程序坞如何在主屏幕和副屏幕中自由切换【Mac分屏】
  4. 联想拯救者y7000p加内存条_笔记本怎么升级内存和硬盘 联想Y7000P加装内存和硬盘图文教程 (全文)...
  5. Android 拖拽球吸附动画,android可拖动,展示菜单,能自动吸边和半隐藏的悬浮球...
  6. PM如何整合资源——来自项目管理群的讨论
  7. 高速公路收费运营安全风险管控与突发事件应急处置 PPT
  8. 【RoE】(1)背景知识
  9. 30秒破解所有密码(转载小木虫)
  10. 远程桌面工具栏无法唤出-退出办法 远程桌面关机