【网安 | 网络协议】ARP协议(地址解析协议)

简介: 【网安 | 网络协议】ARP协议(地址解析协议)

前言

在使用nmap时可以使用-PR指令,通过发送ARP请求包进行主机存活探测。

那么这一过程的原理是什么呢?

在了解什么是ARP协议后,问题就迎刃而解了。

概念

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

在网络中各个主机相互信任的基础上,局域网络上的主机可以自主发送ARP应答消息。

主机A发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,目标主机将发送返回信息,A收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,当下次A请求该目标主机时,直接查询ARP缓存即可,不再需要广播,这可以节约资源。

然而,正是由于网络中各个主机相互信任,导致攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。

ARP欺骗

ARP欺骗(Address Resolution Protocol spoofing),也被称为ARP中毒,是一种网络攻击方式。攻击者会发送伪造的ARP消息给局域网内的其他设备,以欺骗它们将通信发送到错误的位置,从而实现窃取数据、监视流量或拦截通信等目的。

假设有三台计算机A、B和C,它们都连接到同一个局域网上。攻击者D位于同一局域网中,并想窃取A和B之间的通信。攻击者D可以进行以下步骤来实现ARP欺骗攻击:

1.攻击者D发送一个ARP响应消息给计算机A,声称自己的MAC地址与B的IP地址相关联。

2.计算机A收到了这个伪造的ARP响应并更新了其ARP缓存,将攻击者D的MAC地址与B的IP地址相关联。

3.当计算机A想要向计算机B发送通信时,它会使用之前更新过的ARP缓存,将通信发送到攻击者D的MAC地址。

4.攻击者D可以捕获这些通信并查看其中的敏感信息,如用户名和密码等。

ARP命令

ARP命令用于显示和修改系统的 ARP(地址解析协议)缓存表,该表存储了IP地址与MAC地址之间的映射关系。

1.显示当前系统的ARP表:

arp -a

2.添加静态ARP条目:

arp -s <IP地址> <MAC地址>

3.删除ARP条目:

arp -d <IP地址>

4.清空ARP缓存表:

arp -d -a

优势

通过发送ARP请求包进行主机存活探测的好处是,它可以在局域网中快速发现存活的主机,而无需与每台主机建立TCP或UDP连接。这种方法比较高效,并且不会产生网络流量和日志记录,因为ARP请求和响应都是在数据链路层完成的,不需要上层协议的参与。

需要注意的是,使用ARP进行主机存活探测只适用于局域网环境,因为ARP消息无法跨越路由器。如果需要在广域网或互联网中进行主机存活探测,可以考虑使用其他方法,如ICMP Echo请求(ping)或TCP SYN扫描等。

承接前言

回到开头的问题,我们就可以给出答案了。

当发送ARP请求包进行主机存活探测时,nmap会向目标网络广播一个ARP请求消息,其中包含要探测的IP地址。

目标网络上的所有主机都会收到这个ARP请求消息。根据ARP协议的规定,只有匹配请求中IP地址的主机才会响应,其他主机会忽略该请求。

如果目标网络上的主机存活,则会向nmap发送一个ARP响应消息,其中包含主机的MAC地址。

nmap通过捕获并分析这些ARP响应消息,确定了哪些主机处于存活状态,并获取了相应主机的MAC地址,如文章开头的图片。

目录
相关文章
|
12月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
417 58
|
12月前
基于Reactor模式的高性能网络库github地址
https://github.com/zyi30/reactor-net.git
242 0
|
域名解析 网络协议 安全
DNS服务器地址大全
DNS(域名系统)是互联网的“电话簿”,将域名解析为IP地址。选择优质DNS服务器可提升网络速度、降低延迟。以下是全球及中国各运营商的DNS服务器列表,包括公共DNS(如Google DNS、Cloudflare DNS)、中国电信、联通、移动等。根据地理位置、稳定性、安全性与隐私保护等因素选择适合的DNS服务器,优化上网体验。
51815 6
|
存储 缓存 网络协议
|
网络协议 开发工具 C语言
Jetson错误(二):wget命令提示无法解析主机地址的问题解决
对于解决在NVIDIA Jetson平台上使用wget命令时出现的无法解析主机地址的问题,提供了两种解决方法:一种是临时修改DNS服务器为Google的公共DNS,另一种是永久修改DNS设置。
829 5
|
域名解析 缓存 负载均衡
网络浏览器并输入地址到显示的整个过程
网络浏览器并输入地址到显示的整个过程
|
存储 自然语言处理 API
基于 Python 的地址解析:自动识别姓名、电话、地址、详细地址与省市区
基于 Python 的地址解析:自动识别姓名、电话、地址、详细地址与省市区
3737 1
|
网络协议 算法 安全
【网络协议基础】TCP/IP协议大全
TCP/IP协议是现代计算机网络通信的基础,是互联网及局域网广泛使用的一套协议。TCP/IP协议集采用分层模型,以便于网络的设计、实现和管理。
1900 2
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
322 0
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
455 0

推荐镜像

更多
  • DNS