【网络】IP和MAC地址的映射——ARP协议和ARP欺骗概述

目录

引言

ARP的工作机制

ARP欺骗

ARP欺骗的断网行为

ARP欺骗成为中间人

工具介绍


个人主页:东洛的克莱斯韦克-CSDN博客

引言

同一子网内不同主机用数据链路层的MAC地址来寻址,而不是子网内的私有IP(网络层)。数据包中的IP地址是用来说明自己最终要去哪个主机,用于跨网络传输。数据包要跨网络传输首先要知道网关(路由器)的MAC地址。

ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。不过ARP只适用于IPv4,不能用于IPv6。IPv6中可以用ICMPv6替代ARP发送邻居探索消息。

ARP包格式

ARP的工作机制

主机A需要先在该子网内进行广播,也就是说该主机会向所有主机发送一个请求,该请求中包含目标主机的IP地址,该子网内的所有主机都会接收该ARP包,如果ARP包中的目标IP与自己的IP地址不符就会丢弃该ARP包,反之目标主机会把自己的MAC地址塞进ARP响应包中,再次进行广播,这样主机A就能拿到目标主机的MAC地址。

如果每发送一个IP数据报都要进行ARP请求的话,就会造成不必要的网络流量,因此,通常的做法是把获取到的MAC地址缓存一段时间。即把第一次通过ARP获取到的MAC地址作为IP对MAC的映射关系记忆到一个ARP缓存表中,下一次再向这个IP地址发送数据报时不需再重新发送ARP请求,而是直接使用这个缓存表当中的MAC地址进行数据报的发送。

每执,行一次ARP,其对应的缓存内容都会被清除。不过在清除之前都可以不需要执行ARP就可以获取想要的MAC地址。这样,在一定程度上也防止了ARP包在网络,上被大量广播的可能性。

一般来说,发送过一次IP数据报的主机,继续发送多次IP数据报的可能性会比较高。因此这种缓存能够有效地减少ARP包的发送。反之,接收ARP请求的那个主机又可以从这个ARP请求包获取发送端主机的IP地址及其MAC地址。这时它也可以将这些MAC地址的信息缓存起来,从而根据MAC地址发送ARP响应包给发送端主机。类似地,接收到IP数据报的主机又往往会继续返回IP数据报给发送端主机以作为响应。因此,在接收主机端缓存MAC地址也是一种提高效率的方法。

不过,MAC地址的缓存是有一定期限的。超过这个期限,缓存的内容将被清,除。这使得MAC地址与IP地址对应关系即使发生了变化,也依然能够将数据包,正确地发送给目标地址。

ARP欺骗

了解上述机制后,ARP欺骗的原理就很容易理解了。

假设主机A是被攻击的一方,主机B是攻击的一方。首先主机A和主机B需要在同一个子网中。主机B只需要主机A的私有IP,然后主机B向主机A发送大量的ARP响应,刷新主机A的ARP缓存,让主机A认为主机B的MAC就是网关的MAC地址,如果主机A想跨网络发数据,所有的数据包都要流经主机B。

ARP欺骗的断网行为

上述工作完成后,主机A的流量都要经过主机B,那么主机B把主机A的数据包全丢弃,主机A就被断网了。

ARP欺骗成为中间人

成为中间人的话,主机B不仅要刷新主机A的ARP缓存,也要刷新网关的ARP缓存,让主机A认为主机B的MAC地址就是网关的MAC的地址,让网关认为主机B的MAC地址就是主机A的MAC地址。

工具介绍

使用这些工具时,请确保你在法律许可和道德范围内进行操作,通常建议仅在受控环境或授权的网络中进行实验和测试。

|------------------------------------------------------------------|
| Ettercap:一个功能强大的网络嗅探工具,可以执行ARP欺骗攻击,支持多种操作系统。 |
| BetterCAP:一个灵活且功能丰富的网络攻击工具,可以用于ARP欺骗、DNS欺骗等。 |
| Cain & Abel:一个知名的密码恢复工具,也支持ARP欺骗,但仅限于Windows系统。 |
| arpspoof:这是Dsniff工具集中的一个简单工具,专门用于ARP欺骗。 |
| MITMf (Man-In-The-Middle Framework):一个模块化框架,包含多个中间人攻击模块,包括ARP欺骗。 |

相关推荐
jiankeljx5 分钟前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
三三有猫1 小时前
代理IP:按流量还是按IP/时长计费更划算?
网络·网络协议·tcp/ip
A.A呐1 小时前
【Linux第十九章】网络基础
linux·网络
程序猿追2 小时前
HarmonyOS 6.0 网络请求深度解析:从基础调用到生产级封装
网络·华为·harmonyos
桌面运维家2 小时前
BGP路由优化实战:加速收敛,提升网络稳定性
网络·windows·php
乌恩大侠2 小时前
【KrakenSDR】MATLAB接口
服务器·网络·matlab
@土豆3 小时前
bond主备模式配置步骤
网络
国冶机电安装3 小时前
其他弱电系统安装:从方案设计到落地施工的完整指南
大数据·运维·网络
m0_738120723 小时前
我的创作纪念日0328
java·网络·windows·python·web安全·php
未来转换4 小时前
计算机网络基础之IP地址详解
tcp/ip·计算机网络·php