网络协议攻击与模拟_02ARP协议

一、arp协议简介

 一个工作在二层的三层协议,事一个2.5层协议

ARP协议地址解析协议,将一个已知的Ip地址解析为MAC地址,从而进行二层数据交互

二、工作流程

1、两个阶段

  • ARP请求
  • ARP响应
    两台主机IP地址主机A和主机B,IP地址和MAC地址如图所示:主机A发送数据给主机B会先发送给ARP请求报文给主机B,主机B收到请求后会给主机A发送响应即ARP响应。

    主机A发送数据给主机B,首先要知道主机B的IP地址,主机A在数据封装的时候会进行三层封装和二层封装,三层封装会将源IP和目的IP封装进去,二层封装会将源MAC地址和目的MAC地址封装进去,主机A初始不知道目的MAC地址,是以广播的MAC地址00-00,以广播的方式发送请求。响应的时候是单播。
  • ARP请求很简单就是一个请求一个响应,由于很简单所以会造成不安全的因素,就比如你广播发送出去数据,中间有个人冒充主机B及性能响应就会造成ARP欺骗。

2、实验

ARP请请求和响应的过程

主机A(192.168.2.12)和主机B(192.168.2.16)

  • 打开主机B的winshark,并在主机A上ping主机B(192.168.2.16)

ARP报文:一个是ARP请求报文一个是ARP响应报文

(1)ARP请求报文

 显示出来目标的MAC地址是一个广播地址,源MAC地址是主机A(192.168.2.12)、Type类型是0x0806

整体的ARP请求里面的在整体内容,这里有源MAC地址和目标MAC地址,因为目标MAC地址它不知道所以用全零来填充。上面的destination是broadcast广播。

(2)ARP响应报文

主机B(192.168.2.16)收到之后会进行响应

ARP请求里面源MAC是自己,目的MAC是对方。

3、ARP协议报文

(1)ARP报文格式

  • 以太网的数据帧格式是这样的
    目的MC、接着是源MAC,帧的类型,中间是网络层的数据包,后面是帧校验
  • 对比ICMP报文,可以看到数据链路层下来是网络层,但是ARP协议是二层之后就到了ARP协议,没有网络层。
    目的MC、接着是源MAC,帧的类型,中间是ARP的数据包,后面是帧校验

(2)ARP数据帧

  • ARP报文数据帧格式:
    • 硬件类型
    • 协议类型
    • 硬件地址长度
    • 协议地址长度
    • Opcode操作类型标识报文时请求报文还是响应报文,1代表请求 2代表响应
    • 发送方MAC地址
    • 发送方IP地址 
    • 接收方的MAC地址 
    • 接收方的IP地址

4、ARP缓存

主要目的是为了避免去重复发送ARP请求 

(1)windows的ARP命令

重新抓取流量就不会有ARP请求和响应的报文了,因为主机中存在了ARP缓存

  • 使用arp -a命令可以查看arp缓存

  • arp -d清空缓存

下一次访问会重新发送ARP请求。通过请求和响应的出来的是动态学习到的

  • 使用arp -s命令可以静态绑定

(2)思科设备GNS3

c3600设备三台,改变图标为两台主机一台交换机

  • PC1 ping PC2、关闭交换机路由功能
R2#
R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#no ip routing
R2(config)#int  f0/0
R2(config-if)#ip add 192.168.2.1 255.255.255.0
R2(config-if)#no shut
R2(config-if)#hostname PC1
PC2(config)#
R3#
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#no ip routing
R3(config)#int f0/0
R3(config-if)#ip add 192.168.2.2 255.255.255.0
R3(config-if)#no shut
R3(config-if)#
*Mar  1 00:03:54.163: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:03:55.163: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R3(config-if)#hostname PC2
PC2(config)#
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#hostname SW
SW(config)#
SW(config)#no ip routing
SW(config)#
  • PC1pingPC2

  • show arp

  • clear arp

  • 永久绑定(直接绑定的还没有通信) 

  • 清除静态绑定的

  • 静态绑定虚假MAC地址成功
    ping 不通目标主机,给虚假的MAC地址发信息目标主机收不到。

  • 引出安全性因素

主机C想主机A响应虚假MAC地址,主机A学习到了主机C响应的虚假的MAC地址,主机A就会想虚假的MAC地址发信息,主机A无法通信,这就是ARP攻击。

场景:主机C响应给主机A自己的MAC地址,造成主机A误认为主机C是主机B,当主机A给主机B发送消息的时候就会发送给主机C。主机C截获主机A发给主机B的数据,这就是ARP欺骗。

三、ARP攻击和ARP欺骗

1、ARP攻击

伪造ARP应答向被攻击主机和网关响应虚假的MAC地址

当被攻击主机进行网络通信时,会将数据交给虚假的MAC地址进行转发,由于虚假的MAC地址不存在,所以造成被攻击主机无法访问网络。

示例:

主机A发送arp请求在整个网络中进行广播,当主机收到ARP请求会进行响应,此时发送方主机就学习到目的主机的MAC地址。若主机C伪造ARP应答,向被攻击主机响应虚假的MAC地址就实施了ARP攻击。

当被攻击主机进行网络通信时,会将数据交给虚假的MAC地址进行转发,由于虚假的MAC地址不存在,所以造成被攻击主机无法访问网络。

主机A访问公网,首先会向网络中发送ARP请求,主机B主机C和路由器都能够收到ARP请求,正常的当路由器收到主机A数据发现主机A请求得路由器得IP地址会进行响应,如果此时主机C(攻击主机)向主机A响应虚假得MAC地址,造成主机无法进行网络通信。

2、 ARP欺骗

(1)欺骗网关

  • 伪造ARP应答,向被攻击主机和网关响应真实的MAC地址
  • 当被攻击主机进行网络通信时,会将数据交给真实的MAC地址进行转发,从而截获被攻击主机的数据。这时被攻击主机时可以进行网络通信的。

主机A访问互联网会将数据交给自己的出口路由器,攻击主机C向主机A发送ARP应答,响应自己的MAC地址给主机A,主机A访问公网的时候就会将数据给到主机C,还要在攻击主机上开启ARP转发的功能,主机C向出口路由器发送ARP应答,告诉出口路由器主机A的MAC地址时主机C自己的MAC地址从而实现数据监听。

(2)欺骗主机

  • 伪造ARP应答向被攻击主机和网关响应真实的MAC地址
  • 当被攻击主机进行主机通信时,会将数据交给真实的MAC地址进行转发,从而截获被攻击主机的数据。

主机A发送数据给主机B,主机C向主机A发送应答,主机C向主机发应答

3、避免ARP攻击/欺骗

  • ARP防火墙
  • 主机上进行ARP静态绑定(设备基本都有此功能)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 实时查看显存调用命令 free 及命令详解与原理说明(全)

Ubuntu 实时查看显存调用命令 free 及详解 文章目录 Ubuntu 实时查看显存调用命令 free 及详解1 free 作用1.1 语法:1.2 单独显示例子1.3 组合显示例子 2 输出介绍3 原理解释3.1 buff / cache(即 buffer / cache)3.1.1 buffer 缓冲区3.1.2 ca…

Java生成包含ehcarts报表的PDF文件,亲测有效!!!

1.引入maven依赖 <dependency><groupId>org.jfree</groupId><artifactId>jfreechart</artifactId><version>1.5.3</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>i…

QT第三天

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面如果账号和密码不匹配&#xff0…

基于SELinux三权分立配置方法

1.系统安装 系统安装完成后,系统当前的SELinux配置为: # cat /etc/selinux/config SELINUX=enforcing SELINUXTYPE=targeted 2.SELinux环境准备 # yum install setools policycoreutils.x86_64 selinux-policy-mls.noarch setroubleshoot.x86_64 setools-console -y 3.SELin…

Qt/QML编程学习之心得:hicar手机投屏到车机中控的实现(32)

hicar,是华为推出的一款手机APP,有百度地图、华为音乐,更多应用中还有很多对应手机上装在的其他APP,都可以在这个里面打开使用,对开车的司机非常友好。但它不仅仅是用在手机上,它还可以投屏到车机中控上,这是比较神奇的一点。 HiCar本质上是一套智能投屏系统,理论上所有…

【Unity】Timer计时器属性及使用

可以代替协程完成延时操作 可以不用Update进行计时 GitHub开源计时插件 网址&#xff1a;https://github.com/akbiggs/UnityTimer/tree/master 导入&#xff1a;URL&#xff1a;https://github.com/akbiggs/UnityTimer.git 基本功能&#xff1a; 创建计时器&#xff1a; Time…

计算机导论03-计算机组成

计算机系统结构 冯•诺依曼体系结构 冯•诺依曼体系结构的基本要点 冯•诺依曼思想即冯•诺依曼体系结构思想&#xff0c;其最基本的概念是存储程序概念&#xff0c;它奠定了现代计算机的结构基础。 功能部件: 计算机必须具备五大基本组成部件&#xff0c;包括&#xff1a;运…

15个等轴视图设计的电动车汽车无人机等PR剪辑素材视频制作元素

包含15个等轴视图、等距视角电动车、汽车、无人机、沙漏、飞机等PR剪辑素材视频制作元素mogrt动画模板。 特征&#xff1a; 等距设计&#xff1b; 可以更改颜色&#xff1b; 分辨率&#xff1a;全高清&#xff08;19201080&#xff09;&#xff1b; 持续时间&#xff1a;15秒&a…

[机缘参悟-122] :IT人如何认识自己的?自省、面试、考核、咨询?

目录 一、为什么要认识自己 二、认识自己的哪些方面&#xff1f; 三、如何认识自己 3.1 通过自省认识自己 3.2 通过面试认识自己 3.3 通过咨询认识自己 3.4 通过相亲认识自己 3.5 通过一段感情关系认识自己 一、为什么要认识自己 认识自己在人类的成长和心灵发展过程中…

RTX20系开启超分辨率

我的显卡是2070s现在也支持了超分辨率,根据网上的教程一通折腾后发现了不少的坑,记一下.希望有缘人可以少走点弯路. 机器配置如下: [CPU] CPU #1: 3600MHz, AMD Ryzen 7 3700X 8-Core Processor , AMD64 Family 23 Model 113 Stepping Instruction set: MMX MMX…

Camunda外部任务

外部任务&#xff1a;即任务可以在外部系统进行审批。 一&#xff1a;pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

零基础学习数学建模——(二)数学建模的步骤

本篇博客将详细介绍数学建模的步骤。 文章目录 引例&#xff1a;年夜饭的准备第一步&#xff1a;模型准备第二步&#xff1a;模型假设第三步&#xff1a;模型建立第四步&#xff1a;模型求解第五步&#xff1a;结果分析第六步&#xff1a;模型检验第七步&#xff1a;模型应用及…

分布式全局id

分布式全局id snowflake 算法是 twitter 开源的分布式 id 生成算法&#xff0c;采用 Scala 语言实现&#xff0c;是把一个 64 位的 long 型的 id&#xff0c;1 个 bit 是不用的&#xff0c;用其中的 41 bits 作为毫秒数&#xff0c;用 10 bits 作为工作机器 id&#xff0c;12 …

【C++进阶05】AVL树的介绍及模拟实现

一、AVL树的概念 二叉搜索树的缺点 二叉搜索树虽可以缩短查找效率 但如果数据有序或接近有序 二叉搜索树将退化为单支树 查找元素相当于在顺序表中搜索元素&#xff0c;效率低下 AVL树便是解决此问题 向二叉搜索树中插入新结点 并保证每个结点的左右子树 高度之差的绝对值不超…

【算法】不使用库函数,求解立方根

牛客原题&#xff1a;https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca?tpId37&tqId21330&rp1&ru/exam/oj/ta&qru/exam/oj/ta&sourceUrl%2Fexam%2Foj%2Fta%3FtpId%3D37&difficultyundefined&judgeStatusundefined&tags&a…

【LeetCode】winter vacation training

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb; 有效的字母异位词&#x…

websocket介绍并模拟股票数据推流

Websockt概念 Websockt是一种网络通信协议&#xff0c;允许客户端和服务器双向通信。最大的特点就是允许服务器主动推送数据给客户端&#xff0c;比如股票数据在客户端实时更新&#xff0c;就能利用websocket。 Websockt和http协议一样&#xff0c;并不是设置在linux内核中&a…

monocle2 fibroblast silicosis inmt

gc() #####安装archr包##别处复制 .libPaths(c("/home/data/t040413/R/x86_64-pc-linux-gnu-library/4.2","/home/data/t040413/R/yll/usr/local/lib/R/site-library", "/usr/local/lib/R/library","/home/data/refdir/Rlib/")).libPa…

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

二叉树及其实现

二叉树 一.树的概念及结构1.1树的概念1.2相关概念 2.二叉树的概念及结构2.1 概念2.2 特殊的二叉树 3.二叉树的遍历3.1 前序、中序以及后序遍历3.2 层序遍历3.3 判断二叉树是否是完全二叉树3.4 二叉树的高度3.5 二叉树的叶子节点个数3.6 二叉树的第k层的节点个数3.7 二叉树销毁3…