ARP协议及其工作流程

ARP协议(地址解析协议)

  • 功能::将计算机的网络层协议地址(IP地址)解析成数据链路层的硬件MAC地址。

关于ARP协议属于网络层协议还是数据链路层协议的说法

  • 由于传送ARP分组使用的是IP协议,所以把ARP协议划归网络层
  • ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址,所以有的课本将ARP协议划归数据链路层

以主机A(IP_A,MAC_A)向同一个局域网内的主机B(IP_B,MAC_B)发数据包为例,ARP协议的工作流程简单描述如下:

  • 主机A通过IP_B查询本机的ARP缓存列表(其中存放了最近和本机通信过的主机的IP地址和相应MAC地址记录),看是否有相应的记录。有,则直接可以进行通信,无需解析;没有,转下一步。

  • 主机A向局域网内所有主机广播ARP请求报文:“我是IP_A,我的MAC地址是MAC_A,我想知道IP_B的MAC地址。”

  • 局域网内所有主机收到主机A的ARP请求报文后,首先检查自己的ARP缓存列表内是否有主机A的IP地址与相应MAC地址的记录,没有记录或者记录与新收到的报文不同,就更新本机的ARP缓存列表。然后比对自己的IP地址是否为IP_B。不是,则本机工作完毕;是,则向主机A发送ARP响应报文:“我是IP_B,我的MAC地址是MAC_B。 ”

  • 主机A收到来自主机B的ARP响应报文后,更新本机的ARP缓存列表。将MAC_B作为目的MAC地址写入以太帧,通过局域网送达主机B。

注:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题,对于不同局域网的主机,无法进行解析。换句话说,也根本不需要解析。因为在这个跨网的通信过程中,需要路由器进行数据报的转发, 所以我们要跨网段传数据,只需要解析出网关的MAC地址即可!!!

为了减少局域网内的ARP通信量,ARP协议规定,即使一台主机收到的ARP响应报文并非自己请求得到,他也会将其更新到本机的ARP缓存列表中。而且ARP缓存列表的更新策略是以最新的为准,也就是说,在ARP缓存列表已存在相关记录的情况下,如果新收到的ARP应答报文中的记录与ARP缓存列表中的记录不符,ARP协议规定用最新的记录更新ARP缓存列表中的旧记录。ARP协议的这些设计原则使得ARP欺骗成为可能。

ARP协议把保存在ARP高速缓存表中的每一个映射地址项目设置了生存时间(老化时间),凡是超过老化时间的项目就会从ARP高速缓存表中删除掉。

ARP欺骗的几个目的

  • 阻断主机之间的通信
    如果攻击者的目的是阻断受骗主机的通信,那么ARP欺骗包指定的网卡一般是局域网内不存在的一块网卡,使主机将数据包全都发送给一个不存在的地址,造成通信失败。并且攻击目标只有一台受骗主机

  • 阻断主机与互联网的连接(对内网PC的网关欺骗)
    它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。

  • 通过ARP欺骗对受骗主机的流量进行嗅探,使数据流量重定向
    攻击者的目的是重定向受骗主机的流量从而嗅探的话,那么ARP欺骗包就必须指定自己的网卡,并且同时指定通信的双方为攻击目标。也就是我们常说的,一个完整的ARP欺骗是“欺上瞒下”的。

ARP欺骗使数据流量重定向操作流程:

  • 若主机M(IP_M,MAC_M)想改变主机A(IP_A,MAC_A)与同一个局域网内的主机S(IP_S,MAC_S)之间的数据流流向,那么主机M只需要在固定时间间隔向主机A发送ARP响应报文:“我是IP_S,我的MAC地址是MAC_M。 ”,向主机S发送ARP响应报文:“我是IP_A,我的MAC地址是MAC_M。”。这样,主机A就会把本应送达主机S的数据发给主机M,主机S亦然。为了保证主机A与主机S之间的通信不被中断,主机M上需要有相应的数据转发机制。如此,主机M就成为主机A与主机S之间的“中间人”,他就可以监测主机A与主机B之间的会话内容。

  • 通信的双方不在同一个局域网内,例如,主机A位于LAN_A内,主机S位于LAN_A外,LAN_A的网关为R。这种情况下,由于局域网内所有发向外网的流量均需通过网关转发,因此“中间人”只要在主机A与网关R之间进行ARP欺骗,攻击者此时对于主机A扮演网关,对于网关扮演主机A。就可以完成数据流的重定向。

注:由于ARP欺骗所造成的通信故障属于数据链路层的故障

几款利用ARP欺骗来进行攻击的软件

  • 网络执法官
    “网络执法官”是一款局域网管理辅助软件,采用网络底层协议,能穿透各客户端 防火墙对网络中的每一台主机(本文中主机指各种计算机、交换机等配有IP的网络设备)进行监控;采用网卡号(MAC)识别用户,可靠性高

  • P2P终结者
    P2P终结者是由Net.Soft工作室开发的一套专门用来控制企业网络P2P下载流量的网络管理软件。软件通过截获路由器数据包,修改IP以及MAC缓存,达到控制网速的目的,简单一点去理解的话,P2P终结者就是通过不停的“攻击”路由器,从而达到控制网速,也正是因为P2P终结者的这种攻击,导致整个网络的负荷严重增加。

突破ARP欺骗封锁的方式

  • 安装的杀毒软件(比如360、腾讯电脑管家开启ARP防火墙)
  • 利用MAC地址静态绑定的方式,将需要通信双方的MAC地址绑定在该主机上
  • 修改本机MAC地址,骗过攻击者

查看ARP缓存以及绑定MAC地址的一些命令

  • 查看MAC地址:在DOS界面输入:ipconfig /all
  • 查看ARP缓存:在DOS界面输入:arp -a
  • 静态添加MAC地址到ARP缓存表中:在DOS界面输入:arp -s IP地址 MAC地址

网络安全——ARP欺骗与突破封锁相关推荐

  1. 网络安全—arp欺骗原理数据包分析

    网络安全-arp欺骗原理&数据包分析 提要:arp欺骗虽然比较简单,但是在日常面试中也是会被经常问到的问题,本文将通过kali中的arpspoof工具进行arp攻击,同时使用wireshark ...

  2. 网络安全基础——ARP欺骗

    ARP欺骗 ARP协议 实质 IP-MAC地址转换协议 ARP协议漏洞 无法进行身份验证,ARP缓存表无条件学习后到达的ARP请求 攻击方法 假设1要给3发信息 "我喜欢你!" 起 ...

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

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

  4. 网络安全之 ARP 欺骗防护

    ARP 协议 什么是 MAC 地址 MAC 地址是固化在网卡上的网络标识,由 Ieee802 标准规定. 什么是广播 向同一个网段内的设备,发送数据包,广播 IP 地址是同网段最后一个 IP 地址. ...

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

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

  6. 反arp攻击软件_网络安全工程师教Kali Linux:ARP欺骗概述

    课前声明: 本分享仅做学习交流,请自觉遵守法律法规! 搜索:Kali与编程,学习更多网络攻防干货! 本节课中你将了解到: ARP欺骗的用处 什么是ARP 演示如何通信 ARP欺骗原理 一.ARP欺骗的 ...

  7. 局域网arp攻击_网络安全工程师教Kali Linux:ARP欺骗概述

    课前声明: 本分享仅做学习交流,请自觉遵守法律法规! 搜索:Kali与编程,学习更多网络攻防干货! 本节课中你将了解到: ARP欺骗的用处 什么是ARP 演示如何通信 ARP欺骗原理 一.ARP欺骗的 ...

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

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

  9. 网络安全--使用Kali进行ARP欺骗(详细教程)

    文章目录 一.前言 二.准备 1.虚拟机 2.系统 3.网络环境 三.原理 1.ARP协议 2.具体原理 四.实战 1.实战准备 1.1扫描可攻击的目标 1.2查看目标IP 2.开始实战 3.效果 3 ...

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

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

最新文章

  1. Ubuntu 18 snap 占用 100%,卸载 snap
  2. 《Engineering》评选2021年全球十大工程成就
  3. java提供密码加密的实现
  4. STM32 基础系列教程 36 - Lwip_dns
  5. 软测第二周作业WordCount
  6. javaserver_什么是JavaServer Faces(JSF)
  7. SharePoint中的权限体系
  8. Ubuntu14.04显示隐藏文件
  9. 基于 HTML5 WebGL 的 3D 水泥工厂生产线
  10. 华为防火墙配置(防火墙NAT)
  11. .md文件转.pdf文件
  12. 暑期训练day14 A. XXXXX
  13. go和python优缺点_我为什么放弃了 Python ,选择了 Go?
  14. [转载]上班的同志你看过来
  15. 关于thinkphp写入缓存失败的原因
  16. dx/dy=1/y’求其二阶导
  17. 车内看车头正不正技巧_科目二考试最实用技巧!
  18. JSON树节点的增删查改
  19. 分析自动化测试收益_分析自动化测试结果
  20. 学习编程(c语言)的经历以及对未来的期望

热门文章

  1. FPGA内部资源结构——以Altera CycloneⅣ 为例
  2. 骇客(Hacker)用语
  3. 程序员的十一个层次,你感觉自己属于那一层?
  4. Excel不同列多条件计数
  5. android的popwindow控件,及控件设为圆角
  6. 【经典产品思维】引领“用户消费”的产品怎么做?
  7. 几种镜像恒流源电路分析!
  8. QChart入门教程-绘制正弦曲线
  9. 用友财务系统对接第三方业务系统达到财务业务一体化管理
  10. 句子迷,语录,苏引华