一、ARP攻击概述
在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答、数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以被窃取?有哪些常见的ARP渗透(攻击)工具可以用来练手?ARP扫描和攻击有什么区别,底层数据包特征是怎样的?
接下来,我们通过图解的方式来深入了解ARP攻击是如何实现的。
二、ARP攻击原理
但凡局域网存在ARP攻击,都说明网络存在"中间人",我们可以用下图来解释。
在这个局域网里面,PC1、PC2、PC3三台主机共同连接到交换机SW1上面,对应3个接口port1/2/3。假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者(hacker),接下来,PC3是如何攻击的?先不急,先来回顾下PC1和PC2是如何通信的。
①PC1需要跟PC2通信,通过ARP请求包询问PC2的MAC地址,由于采用广播形式,所以交换机将ARP请求包从接口P1广播到P2和PC3。(注:交换机收到广播/组播/未知帧都会其他接口泛洪)
②PC2根据询问信息,返回ARP单播回应包;此时PC3作为攻击者,没有返回ARP包,但是处于"监听"状态,为后续攻击做准备。
③PC1和PC2根据ARP问答,将各自的ARP映射信息(IP-MAC)存储在本地ARP缓存表。
④交换机根据其学习机制,记录MAC地址对应的接口信息,存储在CAM缓存表(也称为MAC地址表)。交换机收到数据包时,会解封装数据包,根据目标MAC字段进行转发。
关于上面的图解,我们要记住这些关键知识(敲黑板!):
①主机通信需要查找ARP表,而交换机通信需要查找CAM表(路由器则查找Route表)。
注:ARP表:ip<->mac CAM表:mac<->port (Route表:route<->port)
②交换机基于源MAC地址学习,基于目的MAC地址转发。
③同一局域网内,攻击者可以根据主机的ARP广播请求监听其IP和MAC信息。
注:这里是"被动监听",跟后面要谈到的"主动扫描",原理上有区分,这里先埋个坑)
接下来是重点,我们来看看PC3(Hacker)是如何发起ARP攻击的=>