ARP攻击原理
- 一.ARP攻击原理
- 二.ARP渗透工具底层原理分析
- 三.ARP攻击总结
- 四.VMware虚拟网卡模式:
一.ARP攻击原理
但凡局域网存在ARP攻击,都说明网络存在“中间人”
在这个局域网里面,PC1、PC2、PC3三台主机共同连接到交换机SW1上面,对应3个接口port1/2/3。假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者( hacker),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如何发起ARP攻击
正常情况下,若收到的ARP请求不是给自己的,则直接丢弃;而这里PC3 (Hacker)在监听之后,发起了ARP回应包:我就是PC2 (IP2-MAC3)。从拓扑可以出现,PC3明明是IP3对应MAC3,很显然这就是一个ARP欺骗行为。于此同时,PC2正常的ARP回应包也交到了PC1手中,我们来看PC1接下来如何处理的:
PC1收到两个ARP回应包,内容分别如下:
③我是PC2,我的IP地址是IP2,我的MAC地址是MAC2;
③我是PC2,我的IP地址是IP2,我的MAC地址是MAC3;
网络协议里条种表在处理缓存信息的方式:
要么"先到先得”,要么"后到优先"。
ARP和CAM表,就是遵循"后到优先"原则
DHCP表,则遵循"先到先得"原则。
只要持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包。稳健的ARP嗅探/渗透工具,能在短时间内高并发做网络扫描(例如1秒钟成千上百的数据包),能够持续对外发送欺骗包。
无论如何,当PC1和PC2这种"小白"用户遇到PC3 (hacker)时,最终的结果一定是这样的:
根据数据封装规则,当PC1要跟PC2进行通信时,无论是发生PING包还是发送其他数据,首先要查找ARP表…然后在网络层打上源目IP,在链路层打上源目MAC,然后将数据包发送给交换机。交换机收到之后对数据进行解封装,并且查看CAM表(基于目的MAC转发),由于目标MAC3对应Port3,所以交换机自然而然将其转发给PC3。
就这样,PC1本来要发给PC2的数据包,落到了PC3(Hacker)手里,这就完成了一次完整的ARP攻击。反过来,如果PC2要将数据包发送给PC1,PC3仍然可以以同样的ARP欺骗实现攻击,这就有了下面这张图(PC3既欺骗了PC1,也欺骗了PC2)。
此时,PC1和PC2的通信数据流被PC3拦截,形成了典型的"中间人攻击"。
- 玫击者既然操控了数据流…那么直接断开通信是轻而易举的…则断网攻击",例如,PC1发给PC2的数据在PC3这里可以直接丢弃,而如果这里的PC2是一台出口路由器(无线路由器),那就意味着PC1直接无法连上互联网。
- "断网攻击"显然容易被发现,所以就有了更加常见的应用-“限速”。
- 任何基于明文传输的应用,都可以被窃取。例如,如果一个网站不是HTTPS协议,而是基于HTTP明文传输,那么当你登录这个网站时,你的密码就会被窃取。除了http (web应用),常见的还有telnet、ftp、pop3/smtp/imap(邮箱)等应用,都很容易泄露密码。
二.ARP渗透工具底层原理分析
- Hacker接入了一个WiFi网络,这个10.1.20.0/24便是所在的网段。刚进来一个陌生网络,Hacker只知道自己的IP信息,例如P地址是10.1.20.253,网关地址是10.1.20.254,而这个局域网的其他设备是什么?有多少台?地址分布是多少?Hacker都不知道,接下来怎么办呢?是不是要直接发动ARP攻击了?不用这么着急,咋们至少要先了解下这个网络,进行基本的扫描和踩点。这个时候通过ARP工具对这个WiFi网络进行ARP扫描
- 进行"盲扫"或者"暴力扫描":反正我不知道网络到底有多少主机,那我就尝试一下把整个网段全部问一遍得了。好比老师上课点名,把每个学生的桌位号念一遍,谁举手就到勤,没举手就算逃课。
- 在ARP应答信息里面,除了IP地址和MAC信息,我们还能看到相关的设备厂商信息,例如cisco、meizu、apple、xiaomi等,这其实就是依靠MAC地址前面24位的OUI(机构唯一标识符)来识别的,Wireshark或扫描器能够帮我们将OUI转为对应的厂商(还有一些扫描器基于Netbios协议,还能找到电脑的主机名)。通过扫描,我们已经知道了整个网络的主机信息,例如20.254对应cisco,应该是路由器,20.248对应apple,是苹果手机,20.249对应xiaomi,是小米手机,以此类推)…接下来,如何进行ARP欺骗攻击呢?
- 根据之前的信息,我们知道00:08:ca:86:f8:0f其实就是hacker的mac地址,并且对应的真正的IP地址应该是10.1.20.253。而这里很明显是hacker在欺骗局域网其他主机,它对外声称:自己就是"所有人"。尤其是上面标红的主机,我们已经知道是小米、思科、苹果等设备,但是hacker都声明是自己!这样做的意义在于覆盖掉其他主机的ARP缓存表信息,并生成错误的ARP映射,最终将通信流量交给hacker。当然,还有另外一种ARP欺骗的做法: hacker告诉所有人,自己就是网关。因为其他主机访问互联网必经之路便是网关(出口路由器/无线路由器),通过这种方式,同样可以截取到用户数据流。
三.ARP攻击总结
- ARP缓存表基于“后到优先"原则,IP与MAC的映射信息能被覆盖;
- ARP攻击基于伪造的ARP回应包,黑客通过构造"错位"的IP和MAC映射,覆盖主机的ARP.表(也被称为"ARP毒化"),最终截取用户的数据流;
- 一旦遭受ARP攻击,账号密码都可能被窃取(如果通信协议不是加密的);
- 通过wireshark数据包分析,我们掌握了真实网络中ARP底层攻击原理及数据包组成。
四.VMware虚拟网卡模式:
- NAT地址翻转模式,可以访问互联网,共亨真机的IP地址,外部不知道有虚拟机
- Bridge桥接模式,可以访问互联网,使用各自的IP地址,外部知道有虚拟机
- Host-Only主机模式,不可以访问互联网,外部不知道有虚拟机