黑客业务

24小时接单的黑客,黑客业务,黑客怎么找,网络黑客,黑客技术

ARP,这个隐匿在计网背后的男人

本文转载自微信公众号「程序员cxuan」,作者cxuan 。请联系程序员转载本文cxuan公众号。

只要确定了 IP 地址后,你可以去这个 IP 地址所在的主机发送数据报告,这是我们所知道的。但再想一想,IP 地址只是识别网络层的地址。网络层下方的数据链路层也有地址告诉对方主机自己的地址吗?是的,这个地址是MAC 地址。

认识 MAC 地址

MAC 地址的全称是 Media Access Control Address,它是网络上以太网或网络适配器的唯一标识符,翻译成媒体访问控制地址。MAC 地址可以区分不同的网络接口,用于各种网络技术,尤其是大多数 IEEE 802 网络。

MAC 地址又称物理地址、硬件地址和老化地址。

MAC 地址主要用于识别数据链路中的互联节点,如下图所示:

MAC 地址长 48 bit,在使用网卡(NIC) ,MAC 地址通常会被烧毁ROM 中。因此,任何网卡 MAC 地址是唯一的。MAC 地址结构如下:

MAC 地址中的 3 - 24 位表示厂家识别码,每个 NIC 厂商都有特定唯一的识别数字。25 - 48 位置用于制造商内部识别每个网卡。因此,它可以确保世界上不会有相同的 MAC 地址网卡。

MAC 地址也有例外,即 MAC 地址会重复,但问题不大,只要两个 MAC 地址属于不同的数据链路层,不会有问题。

ARP 是什么

ARP 协议全称为 Address Resolution Protocol(地址分析协议)是用于实现从 IP 地址到 MAC 地址映射,即询问目标 IP 对应的 MAC 地址 协议。ARP 协议在 IPv4 极其重要。

注意:ARP 只用于 IPv4 协议中,IPv6 使用 协议Neighbor Discovery Protocol,将邻居发现的协议翻译成 ICMPv6 中。

简而言之,ARP 是解决地址问题的协议,用 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路上,将找到下一个跳跃路由器 MAC 地址。

ARP 工作机制

我们来讨论一下 ARP 的工作机制是什么?A 和 B 位于同一链路,不需要路由器转换,主机 A 向主机 B 发送一个 IP 分组,主机 A 的地址是 192.168.1.2 ,主机 B 的地址是 192.168.1.3,他们都不知道对方的 MAC 地址是什么,主机 C 主机 D 是同一链路的其他主机。

主机 A 想要主机 B 的 MAC 地址,通过主机 A 将通过广播向以太网上的所有主机发送 ARP 请求包,这个 ARP 请求包含主机 A 想知道的主机 B 的 IP 地址的 MAC 地址。

主机 A 发送的 ARP 请求包将被同一链路上的所有主机/路由器接收和分析。每个主机/路由器都会检查 ARP如果 请求包中的信息ARP 请求包中的目标 IP 地址 和你自己一样,你会把你的主机 MAC 地址写入响应包返回主机 A。

因此,可以通过 ARP 从 IP 地址获取 MAC 地址,在同一链路中实现通信。

如果是不同的链路呢?

使用 代理 代理 ARP ,通常 ARP 将被路由器隔离,但使用代理 ARP (ARP Proxy) 路由器可以使 ARP 请求将其转发给相邻的网段。使多个网段中的节点在同一网段中通信。

ARP 缓存

现在你知道发送一次 IP 分组前通过发送 ARP 请求可以确定 MAC 地址。所以每次发送都要通过广播吗 -> 封装 ARP 响应 -> 返回主机的一系列流程?

想想看,浏览器是怎么做到的?浏览器内置缓存可以缓存你最近经常使用的地址,所以 ARP 也一样。ARP 高效运行的关键是维护每个主机和路由器上的 ARP 缓存(或表)IP 到 MAC 地址的映射关系。通过第一次 ARP 获得的 MAC 地址为 IP 对 MAC 的映射与 有关ARP 在缓存表中,下次向该地址发送数据时,不再需要再次发送 ARP 请求,但直接在缓存表中使用 MAC 地址发送数据报告。每次发送 ARP 请求,缓存表中相应的映射关系将被清除。

通过 ARP 缓存减少了网络流量的使用,在一定程度上防止了 ARP 的大量广播。

一般来说,发送一次 ARP 请求后,再次发送相同请求的概率相对较大,因此使用 ARP 缓存可以减少 ARP除此之外, 包的发送不仅是 ARP 请求的发送方可以缓存 ARP 接收方的 MAC 地址,接收方也可以缓存 ARP 请求方的 IP 和 MAC 地址如下:

不过,MAC 地址缓存有一定期限,超过此期限后,缓存内容将被清除。

Linux 或者 Windows 中使用 arp 命令查看 ARP 缓存。选项 -a 用于显示两个系统缓存中的所有缓存项。

在 Linux 中使用 arp 查询缓存

主要包含五项:

                   
  • 主机名 --- 对应一个 IP 地址
  •                
  • 硬件地址类型
  •                
  • 硬件地址
  •                
  • 标志
  •                
  • 本地网络接口

标志主要分为三类: C 、M 或 P,C 表示由 ARP 协议动态学习。M 可通过 arp -s 加一个。P 类表示的是 发布,对于任何 P 项目,主机输入 ARP 请求全部返回 ARP 响应。该选项用于配置代理 ARP。

比如我们在 Windows 中进行 ARP 缓存查询

Windows 中的 ARP 程序显示 IPv4 地址,其接口为16进制数,Windows 版本还指出地址是手动输入还是 ARP 动态学习。在上面的例子中,既有静态的,也有动态的。 位于48 MAC 地址显示为 6 16进制数Linux 中使用 : 号, 号, Windows 中使用- 分开。

ARP 结构

我们上面说到,ARP 想知道 MAC 地址的目标主机将首先发送 ARP 请求,那么这个请求中携带哪些信息呢?cxuan 来和你聊聊。以下是在以太网中转换一个 。IPv4 地址常用 ARP 请求或响应的报文格式。

以太网的第一部分是前面的 14 字节组成标准DST 和 SRC 分别表示 以太网的目的地地址和 以太网的源地址。如果以太网的目的地地址是 ff:ff:ff:ff:ff:ff 都是 1 表示广播地址,这些帧可以在同一广播领域的所有以太网接口中接收。接下来是 ARP 要求的长度/类型,ARP 请求 和 ARP 这个值是 0x0806。

                   
  • 硬件类型表示硬件地址的类型,常见的硬件地址是 MAC 物理或以太网地址,对于以太网,这个值是 1。
  •                
  • 对于 IPv4 地址,这个值是 0x0800。
  •                
  • 硬件尺寸和 协议尺寸 分别指出硬件地址和协议地址的字节数。 用于以太网IPv4 的 ARP 请求或应答,其值分别为 6 和 4。
  •                
  • Op 字段指出,如果是 ARP 请求,Op = 1,ARP 应答 ,Op = 2,RARP 请求 Op = 3,RARP 应答,Op = 4。
  •                
  • 紧跟在 Op 之后是 发送方的硬件地址(MAC 地址),发送方的协议地址(IPv4 地目的硬件地址 和 目的协议地址)。

ARP 抓包实战

我们分别演示Mac 和 Linux 下的 ARP 截获报文

在 Mac 在环境下,我在这里用 WireShark 抓包,可从官网下载,地址如下:

https://www.wireshark.org/download.html

下载后阅读安装说明书。阅读后,您会发现需要安装两个插件,并根据提示安装。然后我们打开 WireShark ,开始拦截报纸。以下是我解惑的 ARP 数据包

这个软件的一个好处是,不同的数据包会有不同的颜色标识,这很好。

然后我们检查 ARP 请求

可见这是一个完整的 ARP 请求包,我们使用的硬件类型是以太网,协议类型是 IPv4 ,默认值是 0x0800,然后硬件尺寸是 6 字节,约定尺寸占 2 字节,Op 的全称是 Opcode ,Op = 1 表示这是 ARP 请求,然后是发送人的硬件地址和协议地址,接收人的硬件地址和协议地址。

ARP 响应如下

可以看到 Op = 2,说明这是 ARP 响应。

在 Linux 你可以在环境中使用 tcpdump 截获 ARP如果 tcpdump not found如果是 ,可以用 yum install -y tcpdump 安装。

使用 tcpdump -i ens33 可在 打印ens33 地址下的数据包,以下是我截取的 ARP 数据包。

更多关于 tcpdump 的用法,你可以参考这个博客

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

大佬写的很详细,这里就不解释了。

ARP 缓存超时

通常与 一起缓存超时ARP 缓存中的项目有关,arp 命令允许管理员设置永不超时。ARP 设置高速缓存中保存的每个映射地址的生存时间,一般为 20 分钟。如果是不完整的映射,缓存时间为 3 分钟,不完整的映射通常被迫发送一个没有主机的 ARP 请求。

RARP

与 ARP 相对的,RARP(Reverse Address Resolution Protocol) 是将 ARP反过来,从 MAC 地址定位 IP 地址协议将打印机服务器等小型嵌入式设备连接到网络。

通常我们设置 IP 通常有两种方式可以手动设置 和 DHCP 动态获取

但对于嵌入式设备,它没有任何输入接口,也不能通过 DHCP 获取动态地址。

在这种情况下,必须使用 RARP ,你需要准备一个 RARP 在此服务器上注册设备的服务器 MAC 地址和 IP 地址,然后将设备连接到网络,设备将发送 IP 和 MAC 向服务器询问地址,服务器会告诉设备 IP 地址和 MAC 地址。

ARP 攻击

ARP 是一项非常不安全的协议,目前涉及 ARP 的攻击,最主要的就是使用代理 ARP 功能假装主机, ARP 通过伪造 ARP 数据包窃取合法用户的通信数据,对网络传输速度和用户隐私信息的窃取造成严重危害。

ARP 攻击分类

ARP 主要攻击方法分为以下几种

                   
  • ARP 泛洪攻击:通过向网关发送大量 ARP 报告,导致网关无法正常响应。首先发送大量 ARP 请求报告,然后发送大量虚假 ARP 反应报告,导致网关部分 CPU 利用率上升难以响应正常服务要求,网关也会出错 ARP 充满缓存表,无法更新和维持正常 ARP 缓存表消耗网络带宽资源。
  •                
  • ARP 欺骗主机攻击:ARP 欺骗主机的攻击也是 ARP 在众多攻击类型中很常见。攻击者通过 ARP 欺骗实际上将局域网内被攻击主机发送给网关的流量信息发送给攻击者。主机刷新了他的 ARP 让自己的ARP 对应于表中的 MAC 为攻击者的 MAC,这样,其他用户将通过网关发送的数据流发送到主机,导致用户数据泄露。
  •                
  • 欺骗网关的攻击: 欺骗网关是通过欺骗网关将其他主机发送到网关的数据发送给攻击者。攻击目标不是个人主机,而是局域网的网关,攻击者将继续获取局域网中的其他用户押韵数据.同时,用户电脑中病毒的概率也会增加。
  •                
  • 中间攻击: 中间攻击是欺骗局域网中的主机和网关。局域网中的用户数据和网关数据将发送给同一攻击者,使用户和网关的数据泄露。
  •                
  • IP地址冲突攻击: 扫描局域网中的物理主机,扫描局域网中的物理主机 MAC 地址,然后根据物理主机 MAC 攻击导致局域网主机产生 IP 地址冲突影响用户网络的正常使用。

总结

ARP 是 TCP/IP 实现的基本协议通常在应用程序或用户没有注意到的情况下运行。ARP 可用于映射 IP 地址为 MAC 地址。

本文主要讲 ARP 的基本原理,ARP 帧结构,ARP 的工作机制, ARP 代理、ARP 攻击、RARP 和 ARP 的区别等

   
  • 评论列表:
  •  世味弥繁
     发布于 2022-05-28 14:57:25  回复该评论
  • 可以看到 Op = 2,说明这是 ARP 响应。在 Linux 你可以在环境中使用 tcpdump 截获 ARP如果 tcpdump not found如果是 ,可以用 yum insta
  •  寻妄矫纵
     发布于 2022-05-28 15:59:43  回复该评论
  • 以确保世界上不会有相同的 MAC 地址网卡。MAC 地址也有例外,即 MAC 地址会重复,但问题不大,只要两个 MAC 地址属于不同的数据链路层,不会有问题。ARP 是什么ARP 协议全称为 Add
  •  酒奴清晓
     发布于 2022-05-28 17:02:33  回复该评论
  • 报文格式。以太网的第一部分是前面的 14 字节组成标准DST 和 SRC 分别表示 以太网的目的地地址和 以太网的源地址。如果以太网的目的地地址是 ff:ff:ff:ff:ff:ff 都是 1 表示广播地址,这些帧可
  •  柔侣私野
     发布于 2022-05-28 18:26:09  回复该评论
  • 本文转载自微信公众号「程序员cxuan」,作者cxuan 。请联系程序员转载本文cxuan公众号。只要确定了 IP 地址后,你可以去这个 IP 地址所在的主机发送数据报告,这是我们所知道

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.