免费ARP的格式

免费ARP报文与普通ARP请求报文的区别在于普通的ARP请求报文,其ARP封装内的“目的IP地址”是其他机器的IP地址,而免费ARP的请求报文,其ARP封装内的“目的IP地址”是其自己的IP地址。免费ARP的封装格式如下图所示:

免费ARP报文的封装格式图示

免费ARP在实际环境中的一些应用

免费ARP主要用于检测IP地址冲突。当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机。

在实际的工作环境中,免费ARP除了用于检测地址冲突之外,我们还可以用于以下几个方面:

1,利用免费ARP确认设备接口地址

一般的设备在网卡地址加载阶段都会向网络中发送免费的ARP报文(也有些安全设备为了安全起见,让设备在加载地址期间不向外发送免费ARP报文),当我们想知道某些设备的接口地址但又没有相应记录可查时,我们就可以利用设备的这种特性,抓取其免费ARP报文,从而分析出其接口使用的IP地址。这个方法曾数次在用户处使用,效率很高,效果非常明显。

2,使用免费ARP报文,更新某些设备的ARP表项

在《TCP/IP详解卷1》的第四章中,有讲到使用免费ARP报文,更新其他主机设备的ARP表项的应用,在我们的工作环境中最常见的应用可能是网关设备双机热备的应用场景,网关在双机热备的工作模式下,由主设备切换到备用设备时,与之相连的设备的ARP表项需要由以前主设备的MAC地址更新为现在主设备(切换前的从设备)的MAC地址,这时,一般从设备在切换为主设备时,就利用向网络中发送免费ARP请求报文, 达到让其他设备更新ARP表项的效果。下面这个图示说明了这个切换的过程:

双机热备模式下主从设备切换利用免费ARP的过程

3,利用免费ARP的攻击

在实际环境中,如果构造网关地址的免费ARP报文,并将ARP的源MAC地址设为任何非网关的MAC地址,再把构造的这个虚假的网关免费ARP报文向网络中发送,那么所有接收到这个免费ARP报文的主机都会更新自己的ARP表项中网关地址对应的MAC地址,导致这些主机的数据报文全部会被转发到错误的MAC地址上,从而实现了ARP欺骗的攻击。

4,网关设备利用免费ARP防止ARP攻击

有些网关设备为了防止内部中毒机器对内部其他机器实施网关的ARP欺骗攻击,其会在一定的时间间隔内向网络中主动发送免费ARP报文,让网络内的主机更新ARP表项中的网关MAC地址信息,从而达到防止或缓解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.      将交换机上某些端口设置为信任端口,来自这些端口的请求认为是可靠的,予以转发,其他的不转发。

但是这些方法都很死板,不灵活。

免费ARP(gratuitousARP)相关推荐

  1. gratuitous ARP(免费Arp)

    当主机启动的时候,将发送一个免费的arp请求,即请求自己的ip地址的mac地址. 此免费arp请求有两个作用: 1.通告整个lan说ip地址XXX是我的,对应的mac是XXX,他没有期望有人会应答这个 ...

  2. 图解ARP协议(五)免费ARP:地址冲突了肿么办?

    一.免费ARP概述 网络世界纷繁复杂,除了各种黑客攻击行为对网络能造成实际破坏之外,还有一类安全问题或泛安全问题,看上去问题不大,但其实仍然可以造成极大的杀伤力.今天跟大家探讨的,也是技术原理比较简单 ...

  3. TCP/IP 免费ARP

    免费ARP Gratuitous ARP也称为免费ARP.Gratui ARP不同于一般的ARP请求,它并非期待得到IP对应的MAC地址,而是当主机启动的时候,将发送一个Gratuitous arp请 ...

  4. Linux定时发送arp,linux-networking – Keepalived定期发送免费ARP

    有没有办法让keepalived定期发送无偿ARP? 我们有以下情况: >交换机故障(VLAN设置) > keepalived failovered to backup instance ...

  5. TCP/IP之免费arp分析

    Arp协议 免费arp的功能      更换IP时,如果节点发送一个发往自己IP地址的ARP请求,结果收到ARP回应,这样就可以判断有另外一个机器使用与自己更换的IP地址相同的IP地址.如果发送了3个 ...

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

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

  7. 免费ARP(gratuitous ARP)简介

    免费ARP,也有称无故ARP,其英文原词是Gratuitous ARP,Gratuitous直译为中文是"免费的, 无理由的",小编还是觉得英文原词更能表达其所代表的含义,字面上G ...

  8. 免费ARP(gratuitous ARP)

    目的:检测IP地址的冲突 向其他设备通知新的MAC地址 举例:当我们系统启动后发现ip地址冲突.这个就是由免费ARP完成的 当我们主机启动的时候.会自己发送一个ARP广播查询,来查询我自己的IP 对应 ...

  9. 【ARP地址解析协议(完整解析过程、ARP欺骗、免费ARP、ARP代理)】-20211125【下】

    目录 一.ARP地址解析协议 ARP地址解析协议:将IP地址解析为Mac地址 ARP地址解析过程 1)pc1首先会查询自身的ARP缓存表,是否存在目标ARP缓存条目. ARP请求报文(原理) 2)由于 ...

最新文章

  1. C++知识点杂记1——typedef、static_cast、const_cast、遍历二维数组、聚合类
  2. 给kali的metasploit下添加一个新的exploit
  3. 查看selenium python的api小记录
  4. 测试丢包_入行游戏测试之弱网测试工具
  5. Linux下tomcat的服务器自启动配置
  6. php mysql注册登录失败_php用户注册登录,不使用mysql
  7. python抓取直播源 并更新_如何抓取和转换播放电视直播源m3u8?
  8. deepin 蓝牙适配器 安装
  9. 移动磁盘显示文件系统损坏的资料寻回方案
  10. 一般人不会告诉你的跨境电商货源渠道大全
  11. 王自如评价鸿蒙OS,王自如发表致歉声明 测评将加利益相关说明
  12. 安卓模拟器自动抓取某红书晒单数据
  13. 如何利用极致业务基础平台构建一个通用企业ERP之十四生产任务单设计
  14. android 设置背景ah,Ahjesus,
  15. android网络搜索不到wifi,Android智能手机搜索不到路由器无线信号怎么办?
  16. Wap 手机上网设置
  17. 中兴ZXA10-F460 v3.0获取超级管理员密码
  18. Nets Wire has multiple names
  19. 关于硬件加速哪些优秀的资源总结
  20. 怎么把pdf转成word?转换途径一览

热门文章

  1. 物理画线“救救小鸡”,支持自建关卡!技术教程分享
  2. 2天,我把MySQL索引、事务、分库分表、锁、性能优化撸完了!
  3. vue中 ECharts 图表使用教程
  4. DCOS到底是啥?看完这篇你就懂了~
  5. 路由器交换机设备管理
  6. js构造函数(原型链)及Es6的class类
  7. springCloud之Netflix完整学习
  8. 学术诚信的重要性_宋瑞:坚持学术诚信 恪守学术道德 捍卫学术尊严
  9. laravel 手动创建分页器LengthAwarePaginator
  10. JavaSE - 14 枚举 + 注解