ARP欺骗初探

ARP攻击是一种古老,经典而且迄今依然有效的,利用计算机通信协议都建立在局域网中的主机互相信任的基础上这一特性实施中间人攻击的为人津津乐道的攻击技术
ARP协议介绍
ARP协议简介
ARP即地址解析协议(Address Resolution Protocol)的简称,该协议是TCP/IP协议簇里面的一个协议。ARP的主要作用是根据IP地址来获取对应的MAC地址。ARP报文结构ru’xia
同时,与DNS等协议类似,为了提高查询IP地址与MAC地址映射关系的速度,系统往往会在本地进行缓存。ARP缓存可以分为静态ARP缓存表与动态ARP缓存表。静态缓存表需要手动创建,其中的映射记录不会发生改变,动态缓存表由系统维护,映射记录可以被老化、覆盖、更新、删除和添加等。这意味着静态缓存表更安全,但是人工维护成本高,而动态缓存表由系统维护,会不断刷新。因此动态缓存表会是ARP欺骗与投毒的主要目标
ARP协议工作方式
首先,主机A根据本地路由表内容,确定访问主机B的IP地址,同时在本地ARP缓存表中检查主机B的对应MAC地址。如果主机A在ARP缓存表中没有找到映射,它将ARP请求消息广播到本地网络上的所有主机。主机A的源IP地址和源MAC地址都包括在ARP请求中。本地网络上的每台主机都会接收到ARP请求并且检查请求的IP地址是否与自己的IP地址匹配。若不匹配则丢弃ARP请求,若匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。随后主机B将包含其MAC地址的ARP回复消息直接发送给主机A,即发送ARP响应。在这之后,主机A收到从主机B发来的ARP回复消息,用主机B的IP和MAC地址映射更新本地ARP缓存表,二者开始正常通信。使用arp -a/-g
命令查看本地arp表
值得注意的是,本地ARP缓存表内的映射记录是存在一定生存期的,当生存期结束后,主机将再次重复上面的过程。
免费ARP报文
免费ARP报文(Gratuitous ARP,也称为“无故ARP”)是一种特殊的ARP报文,会在没有人问自己的情况下,无缘无故自问自答,从而检测局域网内IP地址是否冲突,以达到局域网IP地址冲突,地址修改或变更,DHCP分发地址,ARP缓存表清理,网关冗余协议HSRP交互,TFTP协议传输数据等目的。
免费ARP报文格式:
ARP欺骗 (ARP spoofing) / ARP投毒 (ARP poisoning)
原理剖析
从ARP协议的工作方式不难看出,ARP协议建立在局域网中的主机都互相信任的基础上,也就是说ARP协议是不鉴权且明文传输的。同时,与DHCP等优先采用最先获得的响应的协议不同,ARP和CAM表会始终选择将自身更新到最新收到的响应。这意味着攻击者完全可以发送自定义ARP包,发给局域网内的其他主机或网关污染它们的ARP表(ARP缓存中毒),从而欺骗网关劫持其他主机的流量或者欺骗其他主机伪造自己的身份等等中间人攻击。
攻击实现
可以自己根据ARP攻击的管理编写简单利用程序,例如利用Scapy框架实现的简单ARP攻击嗅探器
也可以利用arpspoof ettercap driftnet等现成的工具实施ARP攻击
Reference
https://zhuanlan.zhihu.com/p/28818627
https://www.freebuf.com/articles/network/210852.html
https://blog.csdn.net/weixin_44143678/article/details/107559329
- Title: ARP欺骗初探
- Author: 7erry
- Created at : 2023-09-02 00:00:00
- Updated at : 2023-09-03 00:00:00
- Link: http://7erry.com/2023/09/02/ARP欺骗初探/
- License: This work is licensed under CC BY-NC 4.0.