ARP协议介绍与投毒攻击
ARP是什么?
ARP是通过网络地址(IP)来定位机器MAC地址的协议,它通过解析网络层地址(IP)来找寻数据链路层地址(MAC)的网络传输协议。

ARP已经在很多网路层和数据链接层之间得以实现。不过在IPv6中用邻居发现协议(NDP)代替地址解析协议(ARP)。
我的理解,ARP协议类似编程中的底层系统函数,一般用户用不到,或者没有太多单独使用场景。它一般结合着上层的协议使用,比如上层的TCP、UDP协议在发包的时候,都必须要得到一些通信参数,比如本机IP,本机MAC,目标IP,目标MAC,如果在缺失MAC地址的时候,就会自动调用ARP协议,ARP会去自动获取到对方的MAC地址,并填充回来。

ARP协议工作原理
ARP协议的目的:
根据IP地址,获取到机器的MAC地址。
因为IP地址和MAC地址是两个关键的通信参数,没有他俩就做不了。
为什么要找MAC:
IP和MAC都是用来定位机器的,
IP地址的主要作用是在跨越不同网络的情况下进行通信时对设备进行寻址,以便把数据包正确地发送到目标计算机。
IP地址是逻辑地址,用于在网络层寻址和路由选择。
IP地址可以分为公共IP地址和私有IP地址。私有IP地址是在局域网中使用的,只在局域网内部有效,用于在局域网中进行内部通信。
MAC地址在网络接口控制器(NIC)中预设,一般由设备制造商分配,具有全球唯一性。
在局域网中,设备之间的通信通常是通过MAC地址实现的,而不是通过IP地址。
下面将讲解ARP协议怎么能拿到对方MAC的过程,主要分为三个步骤:
- 广播找MAC过程
- 缓存IP、MAC过程
- 更新缓存过程
广播找MAC过程:
比如说你已经有一个目标IP地址了,你想找这个IP的MAC地址,那么ARP会这样做,它会向路由(或交换机)广播一条消息,上面主要填写自己机器的信息,和想要的信息:

- 网络层:
目标IP表示要找个这个IP的MAC地址; - 网络层:
目标MAC00:00:00:00:00:00 表示要找这个机器的MAC地址,先用0占位; - 链路层:
目标MACff:ff:ff:ff:ff:ff 表示在数据链路层进行广播,查找这个目标IP的MAC;
局域网内的所有机器,都会收到这条消息。
缓存IP、MAC过程:
非目标机器收到这条消息,知道不是找它,直接丢弃。
当目标IP机器收到这条消息后,知道是在找他,他就给这个源IP和源MAC回复一条消息,说我的MAC是XXX,你备份一下吧。
源IP机器收到目标机器的MAC后,防止后期还要用到,又要去找,浪费时间,就在本地缓存一份。
所以每台主机都会缓存一份自己常用的IP和MAC地址表,类似下面的图:

更新缓存过程:
局域网内,IP地址是可以变更的,当有一台或多台机器的IP发送了改变,那么他们本地维护的缓存表不就没法使用了?或者就乱套了,想找张三,变成找到李四了。
解决:
在变更了自己的IP之后,那么他们就会在局域网内发送一个特殊ARP包,内容大致是说,我的IP地址变更了,MAC地址也附上,你们也把自己的缓存更新一下。然后局域网内的所有机器,都屁颠屁颠的跟着更新自己的缓存。
ARP攻击原理
更新缓存这个功能其实是个正常的功能,因为有些机器IP地址就是会经常变更,发个通告出来,让大家修改一下地址也没毛病。
问题就在于,有心怀不轨的攻击者,他就利用了这个不验证的就修改缓存的机制。攻击者也通过这个机制 进行他的攻击。
比如,他李四替换了张三的地址。更狠的,他直接把他自己主机地址和路由器的地址替换了,局域网内所有人的数据都往他机器上发了,他在转发出去,然后他就能截取别人的流量,别人的小秘密全被他知道了!
攻击软件
Ettercap

Ettercap的中间人攻击,在它的选项栏里有四种:ARP缓存投毒,ICMP重定向,端口监听,DHCP欺骗。
Ettercap的功能是很强大,从它的插件就可以看到功能有:发现可疑ARP活动、ARP响应、DNS欺骗、Dos攻击、发现连接(交换环境)、发现Ettercap活动、列出子网未使用的IP、隔离主机、MAC泛洪、ssltrip等。
WireShark

网络流量截取、分析
防范
以下是一些防御ARP投毒攻击的方法:
使用静态ARP表项:
在关键设备上配置静态ARP表项,避免动态ARP更新被恶意利用。启用ARP检查:
在交换机上启用ARP检查功能,过滤非法的ARP报文。部署ARP防护软件:
使用专门的ARP防护软件来监控和阻止可疑的ARP活动。网络隔离:
将网络划分为更小的广播域,限制ARP广播范围。加强网络监控:
实时监控网络流量,及时发现异常的ARP行为。使用VPN:
对重要通信使用VPN加密,防止ARP欺骗导致的数据泄露。及时更新系统补丁:
保持操作系统和网络设备固件的最新更新,修复已知漏洞。教育用户:
培训网络用户识别潜在的ARP攻击迹象。使用安全协议:
在可能的情况下,使用更安全的协议如IPv6来替代ARP (IPv6替换了ARP协议)。定期安全审计:
定期进行网络安全审计,检查ARP表和网络配置。
这些方法可以综合使用,以提高网络对ARP投毒攻击的防御能力。
Reference
一条视频讲清楚什么是ARP协议-ARP攻击
https://www.bilibili.com/video/BV16t4y1d7ev/
ARP协议介绍与投毒攻击的更多相关文章
- ICMP、ARP协议介绍和ping命令
交换机工作原理和常用的简单命令 一.ICMP协议 1)ICMP协议的封装 二.ARP协议 1)什么是ARP协议 2)ARP相关命令 三.Ping命令的使 ...
- arp协议简单介绍
1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议.最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供 ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- 浅析ARP协议及ARP攻击
一. ARP数据包结构 (1)硬件类型:指明发送方想知道的硬件接口类型,以太网的值为1:(2)协议类型:指明发送方提供的高层协议类型:它的值为 0x0800 即表示 IP地址.(3)硬件地址长度和协议 ...
- ARP协议与ARP攻击入门
一 ARP协议 ARP协议是一个年代相当"久远"的网络协议.ARP协议制定于1982年11月,英文全称:Address Resolution Protocol,即"地址解 ...
- 图解ARP协议(二)ARP攻击原理与实践
一.ARP攻击概述 在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答.数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么 ...
- 描述ARP协议的工作原理,怎么实施ARP攻击和防御ARP攻击
什么是ARP协议?ARP,即地址解析协议,实现通过IP地址得知其物理地址.在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址.为了让报文在 ...
- ARP协议相关介绍
什么是ARP协议? ARP,即地址解析协议,实现通过IP地址得知其物理地址.在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址.为了让报文 ...
- 浅谈ARP协议以及应用
0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...
- ARP协议格式、ARP运行机制入门学习
相关学习资料 http://baike.baidu.com/view/149421.htm?fromtitle=ARP%E5%8D%8F%E8%AE%AE&fromid=1742212& ...
随机推荐
- uniapp底层跨端原理
uniapp底层跨端原理 - 代码编写:开发者使用Vue.js框架编写uniapp的代码,包括页面结构.样式和逻辑等. - 编译过程:在编译过程中,uniapp会将Vue.js的代码转换为各个平台所需 ...
- JDK源码阅读-------自学笔记(九)(常用类型Integer初探)
常用类 主要分为几部分需要学习: 包装类的介绍和使用 字符串的介绍和使用 时间类的介绍和使用 其他类型介绍和使用 包装类(Wrapper Class)基本知识: 1.基本数据类型不是对象,但有时需要将 ...
- 微软正式发布:.NET Aspire 云原生开发框架
前言 2024年5月22日北京时间,微软正式发布全新的.NET云原生开发框架-.NET Aspire. .NET Aspire 是一个新的平台无关.语言无关的框架,旨在简化 .NET云原生服务的开发, ...
- Instsrv.exe 与 Srvany.exe 安装Windows服务
原理:Instsrv.exe可以给系统安装和删除服务 Srvany.exe可以让exe程序以服务的方式运行(Srvany只是exe注册程序的服务外壳,可以通过它让我们的程序以SYSTEM账户活动,随电 ...
- 数据驱动ddt安装3种方式_unittest_Python
命令行安装 pip install ddt -i 管理员运行命令提示符 pycharm设置里安装 pycharm Python Packages里安装
- 【BI 可视化插件】怎么做? 手把手教你实现
背景 对于现在的用户来说,插件已经成为一个熟悉的概念.无论是在使用软件. IDE 还是浏览器时,插件都是为了在原有产品基础上提供更多更便利的操作.在 BI 领域,图表的丰富性和对接各种场景的自定义是最 ...
- Vue 组件生命周期:探索钩子
title: Vue 组件生命周期:探索钩子 date: 2024/5/27 18:42:38 updated: 2024/5/27 18:42:38 categories: 前端开发 tags: 生 ...
- ASP.NET Core替换Action实际执行方法
RequestDelegate 上次,我们在<如何判断当前请求的API类型>中查看endpoints.MapControllers()实现时,最终定位到ActionEndpointFact ...
- harbor 构建企业级镜像仓库
安装harbor 构建企业级镜像仓库 Harbor是由VMware公司开源的镜像仓库,harbor是在docker Registry上进行了企业级扩展,从而获得了更广泛的应用,这些新的企业级特性包括: ...
- 很多人讲不明白HTTPS,但是我能
很多人讲不明白HTTPS,但是我能 今天我们用问答的形式,来彻底弄明白HTTPS的过程 下面的问题都是 小明和小丽两个人通信为例 可以把小明想象成服务端,小丽想象成客户端 1. https是做什么用的 ...