ARP欺骗攻击分析
概念
ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定电脑或所有电脑无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection games)
以上是引用WIKI上对ARP欺骗的概念
ARP协议
ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。
ARP协议工作流程
主机A的IP地址为IP1,MAC地址为MAC1;
主机B的IP地址为IP2,MAC地址为MAC2;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址解析成主机B的MAC地址,以下为工作流程:
-
根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
-
如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的MAC地址,从而将ARP请求帧广播到本地网络上的所有主机。并且源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求
-
主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中
-
主机B将包含其MAC地址的ARP回复消息直接发送回主机A
-
当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存
-
确定了主机B的MAC地址,主机A就能向主机B发送IP通信了
ARP协议缺陷
ARP协议信任以太网所有的节点。没有保证以太网内部信息传输的安全的方式,而且不会检查自己是否接受或发送过请求包,只要它就收到的arp广播包,直接将应答包里的IP-MAC替换掉原有的ARP缓存表里的相应信息
ARP攻击
- ARP欺骗导致断网
- 中间人攻击
原理
前提:进行arp的前提是攻击机与受害机处于同一内网
- 攻击机进行流量嗅探,只要嗅探到两个主机的arp Request,假设为[ip1,mac1],[ip2,mac2] 便可以开始arp攻击
- 攻击机[ip3,mac3]返还一个arp Reply数据包给受害机,其中的内容为[ip1,mac3]
- 受害机收到arp Reply数据包后,更新它自己的arp表为[ip1,mac3]
原本正常的网络请求是主机将外网请求包发送给网关(路由器)再由网关将数据包转发给外网,被arp欺骗后变成了主机将外网请求包发送给攻击机,那么这种情况下,攻击机便可以拦截,嗅探或者是修改数据包以达到不同的攻击目的。
实验
ARP欺骗导致断网
-
查看攻击机内网ip
-
扫描内网网段
nbtscan -r 192.168.0.0/24
由此可以得到内网网段中有一个IP为192.168.0.131的Windows主机,下面是”受害者“虚拟机名称
-
登录”受害者“虚拟机
ping baidu.com
由此可以得出现在”受害者“虚拟机的网络访问是没有问题的,而且防火墙也是开启的
-
使”受害者“持续与baidu.com测试连接
ping baidu.com -t
通信正常
-
攻击机开始对”受害者“进行ARP欺骗攻击
arpspoof -i eth0 -t 192.168.0.131 192.168.0.2 # -i参数指定攻击机的某一张网卡来进行攻击, # -t第一个ip指定受害机的ip # 第二个ip为内网网关(一般来说是路由器)的ip # 第一个参数可以通过扫描确定,第二个参数可以通过(netstat -rn)进行查看
通信出现异常
-
停止攻击
通信恢复
由此可以看出即使本地防火墙开启的状态下也能通过ARP欺骗是目标机器断网
嗅探受害机的网络数据包
在真实的攻击中,使受害机断网对攻击者来说并没有什么益处,最多就是恶心一下受害者而已
想要能够嗅探受害机的网络数据包,“受害机”还是肯定要能进行正常的网络连接的
想要达到目的,我们就要使得我们的kali具备类似路由器的功能,将受害机发来的网络请求包转发给真实的网关,再由真实的网关转发到外网,接收返回包的过程同理可得
能够使用如下命令暂时开启kali的路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward #0代表不开启路由转发功能
此时能够发现在运行ARP欺骗的同时,受害机的网络连接也恢复到正常了,说明攻击机的路由转发功能已成功开启
-
使用wireshark对eth0进行抓包
-
打开受害机随便访问一个登陆网页(随便写的)并输入用户名和账户,登录
用户名:admin 密码:123456
-
分析wireshark抓到的流量包
-
得到刚刚输入的明文用户名、密码
-
嗅探受害机的网络数据包完成
保护
- 静态ARP
- DHCP Snooping
- 网络设备可借由DHCP保留网络上各电脑的MAC地址,在伪造的ARP数据包发出时即可侦测到
- 利用一些软件监听ARP的不正常变动
- ...