【网安 | 网络协议】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地址,如文章开头的图片。

秋说
+关注
目录
打赏
0
1
1
0
32
分享
相关文章
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
79 22
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
89 15
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
阿里云CDN:全球加速网络的实践创新与价值解析
在数字化浪潮下,用户体验成为企业竞争力的核心。阿里云CDN凭借技术创新与全球化布局,提供高效稳定的加速解决方案。其三层优化体系(智能调度、缓存策略、安全防护)确保低延迟和高命中率,覆盖2800+全球节点,支持电商、教育、游戏等行业,帮助企业节省带宽成本,提升加载速度和安全性。未来,阿里云CDN将继续引领内容分发的行业标准。
179 7
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
255 29
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
180 2
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等