ARP协议与ARP地址欺骗防护

news2024/11/19 13:16:07

ARP协议

什么是MAC地址

MAC地址是固化在网卡上的网络标识,由Ieee802标准规定。

什么是广播

向同一个网段内的设备,发送数据包,广播IP地址是同网段最后一个IP地址。

认识ARP协议

ARP的全称是地址解析协议,我们通过ARP协议获取对方的MAC地址,PC机发送ARP协议包,通过交换机,到达目标IP地址的PC机,从而获取对方的MAC地址,但是ARP有一个限制,那就是必须在同一个网段内,也就是说交互地址信息的PC机是在一个局域网内。

ARP协议原理

ARP是请求包,只要是同一个网段的都可以收到。

ARP协议是TCP/IP模型网络层的协议,网络层是对传输层传下来的数据段进行封装,形成数据包,而对于数据包而言,它只关心IP地址,因为网络层是根据IP地址,确认这个数据包传给谁的。

而在网络的传输中,数据包在数据链路层被封装成以太网帧,而以太网帧是通过首部的MAC地址来寻找设备,所以,当我们向目标机器发送数据的时候,我们要先得到目标机器的MAC地址。

在数据链路层,以太网帧是根据前端的MAC地址,找寻到目标机器的网卡,从而向他交付数据包,目标机器在接收到数据包的时候,会判断数据包的MAC地址跟自己的MAC地址是不是一样的,一样的,就会向上传。

也就是说,当我们不知道目标机器的MAC地址的时候,我们是无法向它传递数据包的,这个时候,就用到了我们的ARP协议,也就是ARP请求,这个请求是一个广播包,它会询问同一个局域网内,目标机器IP地址,它的MAC地址是多少,当目标机器接收到这个广播包的时候,发现它的IP地址正是自己,这个时候,目标机器就会以单播的方式,返回一个数据包,这个数据包里,就有我们想要的目标机器的MAC地址。

ARP缓存

现在,我们知道了,当我们给一个PC机发送ARP请求的时候,它会通过广播的方式,询问目标机器的MAC地址,那如果,我们每次要向目标发送数据包的时候,都要ARP请求的话,就很麻烦了,这个时候,我们就想到了ARP缓存表,把之前获取到的IP地址和MAC地址对应起来,存储下来,当我们在下一次使用的时候,就可以直接调用ARP缓存表的数据,对目标IP地址进行访问。

通过对ARP缓存的使用,有效降低了网络拥塞,在一定程度上防止了ARP的大量广播,在一般情况下,ARP缓存不仅发送方会缓存MAC地址表,接收方也会,缓存下来的MAC地址,有一定的有效期,过了这段时间,缓存就无效了。

ARP协议拓展

根据ARP协议,还搞出了一个RARP协议,它的全称是逆地址解析协议,顾名思义,它的功能跟ARP协议是反过来的,它是通过MAC地址获得对方的IP地址,在这里,大家,会联想到DHCP协议,DHCP协议,就是用来自动分配IP地址的,它分配地址的原理,就是根据RARP协议,将MAC地址转成IP地址。

数据包结构

1657258133_62c7c09581d1ba75c5667.png!small

ARP协议包

实验环境:

PC1:物理机win10(IP:192.168.42.1)【在此启动虚拟机】

PC2:虚拟机kali(IP:192.168.42.128)

Wireshark(数据包流量捕获器)

根据我们使用的网卡选择对应的捕获选项,因为我们的Kali网络模式选择的是Nat模式,所以我们选择Vmnet8。

1657258161_62c7c0b1821c5d7dd32ac.png!small

在物理机上执行Ping命令,并输出如下信息

1657258180_62c7c0c436cd811761162.png!small

在Wireshark中筛选出ARP协议,查看抓包记录

1657258201_62c7c0d993eaa83385afd.png!small

查看捕获的ARP数据包,第一个为ARP请求包

1657258220_62c7c0ec52433c48d9e80.png!small

其中第一帧有着数据包的详细信息,其中包括包的发送时间、包的大小、包的类型

1657258236_62c7c0fc308ea39b0cdaf.png!small

第二帧表示以太网帧头部信息,其中源MAC地址为00:50:56:c0:00:08(物理机),目标MAC地址为ff:ff:ff:ff:ff:ff(广播地址)

1657258257_62c7c1111f5b62c7cc036.png!small

第三帧的内容为ARP协议内容,Request表示该包是一个请求包。请求包中的详细内容,如下所示

1657258276_62c7c1240a8a324d48f7b.png!small

我们用同样的方式去分析ARP的响应包

1657258293_62c7c135e91f669c17014.png!small

其中,以下内容表示第一帧数据包的详细信息,其中包的大小为60字节

1657258312_62c7c14806fbc7d13ba2e.png!small

第二帧包含帧的头部信息,源MAC地址(00:0c:29:01:7d:67),目标MAC地址(00:50:56:c0:00:08),其中源MAC地址是Kali,目标MAC地址是物理机

1657258334_62c7c15ec079b958bc4de.png!small

第三帧,Reply表示该包是一个响应包

1657258349_62c7c16da1dfd50956d8b.png!small

ARP协议与二层主机发现

二层主机发现

利用TCP/IP模型中链路层中的ARP协议,进行主机发现。好处就是ARP协议在局域网当中使用,局域网当中的数据包是不经过路由器,所以它的速度是比较快,而且数据包不会被过滤,因此能够保证我们的数据包能够到达我们的目标,而且接收到目标的响应,从而确认目标是否存在。坏处就是只能在一个子网中,进行二层发现。

Kali linux 自带工具Netdiscover可以针对特定子网进行多主机扫描。

netdiscover -h    //查看帮助信息

1657258371_62c7c18304c6cef81bcab.png!small

-i指定你的网卡

-r扫描指定范围

-l加载一个文件,文件当中包含我们要扫描的范围

-p不发送任何的数据包,只做为嗅探,这样的一个过程,是不会被我们网络当中的设备发现,因为它只进行嗅探,将数据包发送到目标去,它就会确认当前主机是存活状态

-m扫描一个已知的MAC地址表或者是主机名

-f过滤,自定义过滤PCAP发送包的表达式

-s当我们发送arp请求时,我们每次休息几毫秒

-n表示一个节点,上一次IP的十进制来进行扫描

-c扫描的次数

-f快速扫描,来节约大量时间

-d忽略配置文件以及快速模式

-S在每一个请求过程中,开启休息时间

-p输出结果

-N不输出对应的头

-L一个输出模式,确定存活性扫描后,我们进行输出

我们选择一条命令试一下

netdiscover -r 192.168.42.1/24

1657258393_62c7c199e33462b814443.png!small

这样子就证明了这些子网的IP地址是存活状态

ARP地址欺骗

1657258410_62c7c1aab1db1ccfab054.jpg!small

正常情况下:连接出口路由器的靶机,访问外网时,会将数据发送给出口路由器,再由出口路由器将数据发送到外网。

1657258427_62c7c1bb6a57cd4794241.jpg!small

不正常的情况下:攻击者欺骗靶机,告诉他出口路由器是我的MAC地址,靶机相信了他的话,把访问外网的数据包错误的发送给了攻击者的MAC地址,导致靶机收不到外网返回的数据包,导致断网,这就是ARP欺骗。

ARP地址欺骗过程

首先我们准备两台虚拟机,一台是Kali,用来做攻击机,另一台是Winserver2003,做为靶机,两台虚拟机网络模式,都采用Nat模式,处于同一个局域网下。

第一步,Netdiscover发现同一个网段中的主机,寻找攻击目标

netdiscover -r 192.168.42.1/24

1657258445_62c7c1cdca353b1202e46.png!small

192.168.42.1是本机的IP地址,192.168.42.2是虚拟机的网关、192.168.42.236是靶机的IP地址

第二步,确认攻击目标处于联网状态

1657258461_62c7c1dda558dc922e9d1.png!small

然后在攻击机Kali上发起攻击

arpspoof -i eth0 -t 靶机Ip地址 靶机网关  
arpspoof -i eth0 -t 192.168.42.236 192.168.42.2  
//欺骗主机192.168.42.236,网关192.168.42.2的mac地址是kali虚拟机物理接口eth0的mac地址

1657258480_62c7c1f02aadba285df82.png!small

看到靶机无法上网

1657258494_62c7c1fe72d1363e1c72d.png!small

然后再到攻击机Kali上停止攻击

ctrl+z

1657258511_62c7c20f3435bbcc3c670.png!small

等待一段时间后,发现靶机恢复正常

1657258525_62c7c21d6c6434dcc77e5.png!small

ARP地址欺骗防护

上网的设备统一采用MAC地址静态绑定,同时上安全设备进行保护。

然后再到攻击机Kali上停止攻击

ctrl+z

[外链图片转存中…(img-TbIivika-1674869829051)]

等待一段时间后,发现靶机恢复正常

[外链图片转存中…(img-rLHSo3FH-1674869829051)]

ARP地址欺骗防护

上网的设备统一采用MAC地址静态绑定,同时上安全设备进行保护。

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Webpack 运行时代码分析 - 动态加载

文章内容:用 webpack 打包含有动态加载的模块,分析打包后的代码,也就是 webpack 运行时代码。 先思考如下一些问题: 1.什么叫做动态加载 2.如果不使用 webpack 打包,能做到动态加载吗 3.webpack 是如何实现动态加载的…

安装mysql的保姆级教程

安装mysql的保姆级教程: 1.准备的条件 已下载mysql应用软件 my.ini文件(见2) 2.设置my.ini文件 (1)my.ini文件内容: [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 ----------是你的文件路径…

TCP/IP网络编程——基于 UDP 的服务端/客户端

完整版文章请参考: TCP/IP网络编程完整版文章 文章目录第 6 章 基于 UDP 的服务端/客户端6.1 理解 UDP6.1.1 UDP 套接字的特点6.1.2 UDP 的工作原理6.1.3 UDP 的高效使用6.2 实现基于 UDP 的服务端/客户端6.2.1 UDP 中的服务端和客户端没有连接6.2.2 UDP 服务器和客…

业务流程软件的优点和对企业的好处

我们都知道,CRM客户管理软件可以为企业识别意向客户,带来更多业绩。那么在处理业务的过程中,一套自带业务流程管理的CRM软件是否重要?下面我们来说说企业使用业务流程管理软件的好处,您就清楚问题的答案了。 1、减少错…

【项目精选】基于 Spring Boot + Mybatis Plus + MySQL 的社区居民联系方式管理系统

项目简介 此系统使用 Spring Boot Mybatis Plus Spring Security React Ant Design Pro 架构编写。数据库采用 MySQL,提供强大的、安全的和完整的管理社区居民的信息的功能。 安全性 此系统在系统层面提供了众多的安全特性,产品安全无忧。这些特性…

【高并发】- 生产级系统搭建 - 2

前言 本章讲解高并发系统中常见概念及相关设计的方案,目的是让小伙伴都了解高并发系统中,每个环节所涉及到的相关概念。帮助大家更好地理解和掌握高并发系统中的场景及设计思想。 1. 常见高并发系统架构图(这里以秒杀系统为例) 上…

国电投-光伏电站人工智能运维大数据处理分析比赛(记录)

前言 1-1 简介 DataFountain平台举办的比赛,赛题:光伏电站人工智能运维大数据处理分析。以下是比赛链接:光伏电站人工智能运维大数据处理分析 Competitions - DataFountain 1-2 任务背景 在分析光伏发电原理的基础上,论证了辐照…

虹科分享 | 2022年传感器事业部文章精选

2022年 文章精选 精选案例文章 虹科案例 | HK-Micronor光纤传感器应用领域介绍(上) 虹科案例 | HK-Micronor光纤传感器应用领域介绍(下) 虹科案例 | 如何更加准确的表征罐箱内燃油的质量规格? 虹科案例 | 监测各种…

java Vue+Springboot读书学习笔记共享平台

读书笔记共享平台的设计基于现有的网络平台,可以实现用户管理及数据信息管理,方便管理员对后台进行管理有详细的了解及统计分析,随时查看信息状态。 系统功能设计是在系统开发和设计思想的总体任务的基础上完成的。该系统的主要任务是实现读书…

CnOpenData中国保险机构网点全集数据

一、数据简介 改革开放以来,中国保险行业飞速增长,在补偿灾害损失、维护社会安定、支持中国的经济建设等方面发挥了重要作用。整个行业的突飞猛进体现在三个方面: 一是保险机构数量增长迅速。中国保险公司的数量从1980年的1家迅速增加至200多…

【云原生】Prometheus之图形化界面grafana与服务发现部署

内容预知 前言 1. 部署 Grafana 1.1 grafana的下载与安装 (1)安装grafana (2)配置数据源 (3)导入 grafana 监控面板 (4)删除模板操作 4.2 grafana的中文插件安装 2. 部署 Prometheus 服务发现 2.1…

C语言中二维数组的基本使用 定义 赋值读写指定元素的值 作为函数参数传递的注意点

文章目录问题依次解决C语言中二维数组如何定义、如何一次性赋值?如何使用 sizeof() 计算二维数组的行数、列数?【与定义数组的地方,在同一作用域内可用】如何读写指定位置的元素?【不同作用域,有两种方式】不同作用域内…

Git(见资源)

Git的概念【1】Git技术:公司必备,一定要会 【2】Git概念: Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。【3】什么是版本控制? 版本控制是一种记录一个或若干文件内容变化&#…

BGP基础实验(华为)

题目: 思路: 该题分为三个AS区域,并且三个区别间分别使用不同的路由,EBGP,IBGP,OSFP连接等,其中AS1与AS2之间使用的是EBGP连接,这点需要EBGP的命令来进行实现,AS2中使用的OSPF,AS2&a…

不规范使用ThreadLocal导致的bug,说多了都是泪

ThreadLocal一般用于线程间的数据隔离,通过将数据缓存在ThreadLocal中,可以极大的提升性能。但是,如果错误的使用Threadlocal,可能会引起不可预期的bug,以及造成内存泄露。 因为线程重用导致的信息错乱的bug 有时我们…

一起自学SLAM算法:11.2 环境感知

连载文章,长期更新,欢迎关注: 环境感知就是机器人利用传感器获取自身及环境状态信息的过程,自主导航机器人的环境感知主要包括实时定位、环境建模、语义理解等,下面具体讨论。 11.2.1 实时定位 定位其实就是在回答图…

BI技巧丨近两年及当年月份数据汇总

BOSS:白茶,有个需求,不知道你能不能做? 白茶:不能! BOSS:我还没说呢,小伙砸!做了加钱! 白茶:BOSS您吩咐! BOSS:是这样的&a…

C语言开发基于RT-Thread家庭安全环境检测系统源码,RTT设计大赛

基于RT-Thread家庭安全环境检测 简介 基于RT-Thread和中蓝讯科的AB32VG1开发板实现的家庭安全检测功能,主要包含如下功能: 1、基于RT-Thread操作系统的按键组件,音频播放组件等; 2、基于AB32VG1开发板的语音播放功能&#xff1b…

BlackByte勒索软件开始使用新的数据泄露工具ExByte

BlackByte 勒索软件在 2021 年被首次发现,随后不断发现其变种。BlackByte 勒索软件不仅使用双重勒索,还运营着勒索软件即服务(RaaS)。最近,研究人员发现 BlackByte 开始使用名为 ExByte 的数据泄露工具来窃取受害者的数…

什么品牌的蓝牙耳机音质好?四款高音质蓝牙耳机推荐

随着时代的发展,蓝牙耳机的使用频率越来越高,在日常生活中随处可见的戴蓝牙耳机的人。或是听音乐,或是追剧,或是玩游戏等等。在现如今众多的蓝牙耳机品牌当中,什么品牌的蓝牙耳机音质好?下面,我…