目录
引言
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欺骗。 |