网络:ARP的具体过程和ARP欺骗

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》《网络》 《redis学习笔记》

文章目录

  • 前言
  • ARP具体过程
  • ARP欺骗原理
  • 总结


前言

本文仅作为ARP具体过程和ARP欺骗的知识总结


在这里插入图片描述

  • 硬件类型 :指定发送和接受ARP包的硬件类型,如 1 为 以太网
  • 协议类型:指定ARP包所携带的网络层协议类型,如 0X0800 为 IPv4协议的数据包
  • 硬件地址长度:指定硬件地址的长度,如以太网地址 为 6字节
  • 协议地址长度:指定协议地址的长度,如IP地址为4字节
  • 操作码(Operation Code):指定ARP包的操作类型,如 1表示ARP请求,2表示ARP应答

现在有一个场景,当一个局域网的入口路由器,收到一个数据包,要转发到局域网中的目的主机;现在入口路由器知道目的主机IP地址,但入口路由器还需要知道目的主机的mac地址,才能把数据报封装称为mac帧发送出去。这里需要一个将目的主机IP地址 转换为 目的主机mac地址 的过程,而这个过程就是ARP协议

ARP具体过程

在这里插入图片描述

入口路由器R要发送数据给主机B,但不知道主机B的mac地址。此时就需要ARP协议,下面我们就来看看ARP的具体过程。


入口路由器先组织如下 mac帧:
在这里插入图片描述

其中以太网目的地址 和 目的以太网地址 为 全F 表示 广播地址。同一个局域网中所有设备都会接收到这个数据包
以太网原地址为 入口路由器R的mac地址
帧类型,0806表示ARP请求/响应报文
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址,也就是mac地址
协议地址长度,4表示IPv4地址
OP,1表示ARP请求
发送端以太网地址,macR
发送端IP地址,IPR
目的IP地址,IPB


再向局域网发送mac帧,此时该局域网中所有的主机都可以收到 该 mac帧。
在这里插入图片描述

此时所有主机发现该mac帧的以太网目的地址为 FFFF…FFFF(全F) 是广播,再分离 mac报头 和 有效载荷,再看帧类型 为 0806是ARP请求/响应,将 有效载荷 向上交付给 ARP。
在这里插入图片描述


主机先查看操作码 为 1 表示 ARP请求,再看目的IP地址 为 IPB,发现是向 主机B 的ARP请求;主机A,主机C,主机D都丢弃该ARP请求。

在这里插入图片描述

主机B组织如下mac帧

在这里插入图片描述
其中以太网目的地址 和 目的以太网地址 都是 入口路由器的macR
以太网原地址为 macB(主机B的mac地址)
帧类型,0806表示ARP请求/响应
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址
协议地址长度,4表示IPv4地址
OP,2表示ARP响应
发送端以太网地址,macB
发送端IP地址,IPB
目的IP地址,IPR


主机B向局域网发送mac帧,其它主机 和 入口路由器 都会收到该mac帧,查看mac帧报头,发现以太网目的地址是macR(入口路由器的mac地址),其它主机丢弃该mac帧。

在这里插入图片描述


入口路由器分离 报头 和 有效载荷,查看帧类型是 0806,将有效载荷交付给ARP层。
在这里插入图片描述


入口路由器查看操作码(OP) 为2 ,表示为ARP响应,再查看发送端以太网地址,目的以太网地址,发送端IP地址等。建立主机B的mac与ip映射。
在这里插入图片描述
以上就是ARP的过程。

ARP欺骗原理

第一步:信息收集
攻击者需要收集目的网络中的关键信息

  • 目标主机的ip地址 和 mac地址
  • 该局域网的路由器的ip地址 和 mac地址

在这里插入图片描述


第二步:ARP缓存中毒
攻击者分别向目标主机 和 路由器 大量发送伪造ARP响应,目的是让目标主机 和 路由器更新它们的ARP缓存,使目标主机的ARP缓存中奖路由器的ip地址映射到攻击者的mac地址;路由器的ARP缓存中将目标主机的ip地址映射到攻击者的mac地址。这样,当目标主机尝试与路由器通信时,会将数据包发送给攻击者;同样,当路由器尝试与目标主机通用时,也会将数据包发送给攻击者。

在这里插入图片描述


第三步:中间人攻击
攻击者已经成功的称为目标主机和路由器之间的中间人。

  • 伪造路由器和目标主机之间的通信信息
  • 窃听目标主机和路由器之间的通信内容
  • 修改或丢弃数据包

在这里插入图片描述


总结

以上就是ARP的具体过程和ARP欺骗的知识总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462971.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单链表OJ题(3):合并两个有序链表、链表分割、链表的回文结构

目录 一、合并两个有序链表 二、链表分割 三、链表的回文结构 u解题的总体思路: 合并两个有序链表:首先创建新链表的头节点(哨兵位:本质上是占位子),为了减少一些判断情况,简化操作。然后我们…

整理 【 DBeaver 数据库管理工具 】的一些基础使用

目录 连接设置切换工作空间SQL编辑器(写sql语句)打开方式新建查询(sql编辑器)打开写的 sql 查询(项目浏览器) 备份sql文件查看历史执行语句自动保存sql语句的文件(编辑器)关闭自动生…

Android Studio 依赖仓库地址

在Android Studio进行开发时,会遇到依赖库下载慢或者老项目使用的依赖库找不到的问题,折腾了两天,终于找到解决方法,使用 阿里云云效Maven,地址:仓库服务https://developer.aliyun.com/mvn/guide &#xff…

51单片机教程(五)- LED灯闪烁

1 项目分析 让输入/输出口的P1.0或P1.0~P1.7连接的LED灯闪烁。 2 技术准备 1、C语言知识点 1 运算符 1 算术运算符 #include <stdio.h>int main(){// 算术运算符int a 13;int b 6;printf("%d\n", ab); printf("%d\n", a-b); printf("%…

MySQL日志——针对实习面试

目录 MySQL日志MySQL有哪些日志&#xff1f;请解释一下MySQL的二进制日志&#xff08;Binlog&#xff09;的作用&#xff1f;复制&#xff08;Replication&#xff09;数据恢复&#xff08;Point-in-Time Recovery&#xff09; Binlog日志的三种格式是什么&#xff1f;如何使用…

STM32 HAL库 SPI驱动1.3寸 OLED屏幕

目录 参考硬件引脚与接线 点亮屏幕CubeMX 配置OLED 驱动程序代码 参考 基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏&#xff08;0.96寸 1.3寸通用&#xff09;0.96 oled HAL库驱动 SPI STM32SPI驱动0.96/1.3寸 OLED屏幕&#xff0c;易修改为DMA控制STM32驱…

qt QStatusBar详解

1、概述 QStatusBar是Qt框架提供的一个小部件&#xff0c;用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标&#xff0c;并且可以通过API动态更新显示内容。QStatusBar通常是一个水平的窗口部件&#xff0c;能够显示多行文本内容&#xff0c;非常适合用于…

h5st参数解析

前言 之前4.8卡我&#xff0c;感觉过了&#xff0c;但是又好像失败了&#xff0c;所以这篇博客憋着没写&#xff0c;这次再次搞了一下&#xff0c;这次弄起来感觉挺简单的啊。 分析 1 20241102203105966; 2 fhhv55ehre91k4l8; 3 f06cc; 4 tk03w…

clickhouse运维篇(二):多机器手动部署ck集群

熟悉流程并且有真正部署需求可以看一下我的另一篇简化部署的文章&#xff0c;因为多节点配置还是比较麻烦的先要jdk、zookeeper&#xff0c;再ck&#xff0c;还有各种配置文件登录不同机器上手动改配置文件还挺容易出错的。 clickhouse运维篇&#xff08;三&#xff09;&#x…

导航栏小案例

实现类似于这样的效果 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>导航栏</title><style>*{margin: 0;padding: 0;}.div1{width: 100%;height: 60px;/* border: 1px solid blue; */background-color:rgb(…

ASP .NET CORE 6 在项目中集成WatchDog开源项目

概念 WatchDog是一个开源的项目&#xff0c;可以实现对.Net 应用程序和API实现实时应用日志和性能监控平台。可以实现实时记录和查看应用程序中的消息、事件、HTTP请求和响应&#xff0c;以及运行时捕获的异常&#xff0c;有效帮助开发人员去排查应用异常&#xff0c;提升开发效…

四、k8s快速入门之Kubernetes资源清单

kubernetes中的资源 ⭐️ k8s中所有的内容都抽象为资源&#xff0c;资源实列化之后&#xff0c;叫做对象 1️⃣名称空间级别 ⭐️ kubeadm在执行k8s的pod的时候会在kube-system这个名称空间下执行&#xff0c;所以说当你kubectl get pod 的时候是查看不到的查看的是默认的po…

无人机之集群控制方法篇

无人机的集群控制方法涉及多个技术和策略&#xff0c;以确保多架无人机能够协同、高效地执行任务。以下是一些主要的无人机集群控制方法&#xff1a; 一、编队控制方法 领航-跟随法&#xff08;Leader-Follower&#xff09; 通过设定一架无人机作为领航者&#xff08;长机&am…

给大家推荐一本书《GPT时代人类再腾飞》

大家好&#xff0c;我是袁庭新。给大家推荐一本书——《GPT时代人类再腾飞》。 先给大家介绍一位顶级大佬——里德霍夫曼。他是著名互联网企业家&#xff0c;领英联合创始人&#xff1b;知名风险投资者&#xff0c;Open AI早期投资人&#xff1b;《纽约时报》畅销书作者、播客…

法律智能助手:开源NLP系统助力法律文件高效审查与检索

一、系统概述 思通数科AI平台是一款融合了自然语言处理和多标签分类技术的开源智能文档分类工具&#xff0c;特别适用于法律行业。平台采用深度学习的BERT模型来进行特征提取与关系抽取&#xff0c;实现了精准的文档分类和检索。用户可以在线训练和标注数据&#xff0c;使系统…

redis模板的应用:自定义redisTemplate序列化规则 (RedisTemplate和StringRedisTemplate)

文章目录 引言I 基础知识redis对key和value使用序列化方式RedisTemplate<Object, Object>自定义redisTemplate序列化规则RedisTemplate<String, String>II 存储自定义对象redisTemplate存储自定义对象StringRedisTemplate存储自定义对象引言 StringRedisTemplate只…

SQL之排名窗口函数RANK()、ROW_NUMBER()、DENSE_RANK() 和 NTILE() 的区别(SQL 和 Hive SQL 都支持)

现有一张student 表&#xff0c;表中包含id、uname、age、score 四个字段&#xff0c;如下所示&#xff1a; 该表的数据如下所示&#xff1a; 一、ROW_NUMBER() 1、概念 ROW_NUMBER() 为结果集中的每一行分配一个唯一的连续整数&#xff0c;编号从 1 开始。‌ 该函数按照指…

【开源免费】基于SpringBoot+Vue.JS网上超市系统(JAVA毕业设计)

本文项目编号 T 037 &#xff0c;文末自助获取源码 \color{red}{T037&#xff0c;文末自助获取源码} T037&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

mac电脑设置crontab定时任务,以及遇到的问题解决办法

crontab常用命令 crontab -u user&#xff1a;用来设定某个用户的crontab服务&#xff1b; crontab file&#xff1a;file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件&#xff0c;crontab命令将接受标准输入&#xf…

基于vue+neo4j 的中药方剂知识图谱可视化系统

前言 历时一周时间&#xff0c;中药大数据R02系统中药开发完毕&#xff0c;该系统通过scrapy工程获取中药数据&#xff0c;使用python pandas预处理数据生成知识图谱和其他相关数据&#xff0c;利用vuespringbootneo4jmysql 开发系统&#xff0c;具体功能请看本文介绍。 简要…