ARP欺骗原理及攻击(1)

1、什么是ARP协议
ARP协议是地址解析协议,是根据IP地址获取MAC地址的一个TCP/IP协议。主机将包含有目的IP的ARP协议包广播发送到局域网,当目标主机接到数据包后,并回复后,发送主机就可以获悉目标主机的IP与MAC的对应关系。
本次请求得到的MAC将存放在ARP缓存中,在生存时间到达前,可以保证下次通信不需要发送ARP包,可以直接在ARP缓存中读取MAC地址。
ARP缓存表示一个用来存储IP地址与MAC地址的缓冲区,其本质就是存放IP地址与MAC地址的对应关系的一张表。ARP缓存中可以存放动态信息也可以存放静态信息。静态信息是人工配置上去的,动态信息时使用ARP获取到的,生存时间为10分钟

2、ARP协议的基本命令
在这里插入图片描述
arp -a或arp -g
用于查看缓存中的所有项目。-a和-g的参数结果是相同的,一般在Windows操作系统上多使用-a命令,而在Unix操作系统上多使用-g命令。
arp -s
用于添加一个静态缓存到表中,具体为arp -s IP地址 MAC地址
arp -d
用于删除一个静态缓存,具体为arp -d IP地址 MAC地址

3、ARP欺骗
在局域网中,数据的传输是依赖于MAC地址表的,而主机对于MAC地址的获取是依赖于ARP协议的,所以,ARP协议的漏洞将对网络产生巨大的破坏。

假设此时的局域网中有三个用户A、B、C,IP地址分别为192.168.1.1/24、192.168.1.2/24、192.168.1.3/24;假设此时三个用户仅仅知道彼此的IP地址,而如果需要进行通信,就必须使用ARP来获取他人的MAC地址。这样就给了攻击方一个机会。

我们假设此时局域网中又增加了一个用户D,但是A、B、C并不知道,而D就作为攻击者的主机存在。A在发送请求包给B时,这个数据包被D获取到,此时,D就知晓了主机A的MAC地址,虽然此时主机A可能已经接受到了主机B的回复包,获得了主机B的MAC地址,但是没有关系。当主机D将ARP回复包进行更改后,二层帧中的源MAC为主机D的MAC地址;目的MAC为主机A的MAC地址;数据层面的源IP为主机B的IP地址;目的IP为主机A的IP地址;源MAC为主机D的MAC地址;目的MAC为主机A的MAC地址。

当拥有这样一个信息的ARP回复包发送到主机A时,主机A会接收这个数据包,并且覆盖掉之前记录的IP与MAC的对应关系。此时也就完成了ARP欺骗。

此时不得不提ARP缓存表机制的一个缺陷。当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,而是直接将应答包中的IP与MAC的对应关系保存/替换进ARP缓存表中,这样的缺陷存在,更方便了攻击者对操作的实施。

在上述的过程中,如果主机D同时对主机A和主机B进行欺骗,就可以得到A与B通信的所有内容,这对于合理主机而已是非常严重的,相当于我们所有的信息都暴露在他人的视野中。这也就是ARP的双向欺骗。

4、ARP欺骗简单实验(单向欺骗)
使用工具:eNSP、kali、netwox、wireshark
网络拓扑图如下:实验中假设已经获取到了设备的IP地址和MAC地址,连通性已经测试过。
在这里插入图片描述
此时的网络云连接的是我们的kali的eth0网卡。

要求:网络云代替PC3与PC2进行通信。
在kali上安装netwox工具包

kali@kali:~$ sudo apt-get install netwox

开启攻击者kali的接口的转发功能

kali@kali:~$ sudo vim /etc/sysctl.conf           //编辑sysctl.conf文档
net.ipv4.ip_forward = 1                          //将这个值设置为1
kali@kali:~$ sudo sysctl -p /etc/sysctl.conf   //立即生效不需要重启
kali@kali:~$ sudo cat /proc/sys/net/ipv4/ip_forward    //查看值是否为1

对ARP应答包进行更改并发送

ali@kali:~$ sudo netwox 33 -b 54:89:98:F3:52:EF -e 2 -g 192.168.119.134 -h 54:89:98:F3:52:EF -i 192.168.119.133

在这里插入图片描述
在PC2上查看arp缓存表
在这里插入图片描述
我们可以看到,此时对应关系已经被欺骗了。

我们尝试抓包看看,在交换机的0/0/3接口进行抓包,因为正常情况下,PC2访问PC3与交换机的0/0/3接口是没有关系的,而此时被欺骗以后,包才会走交换机的0/0/3接口。
在这里插入图片描述
此时我们可以看到,抓到了通信的数据包。
下面我们在试试将交换机的0/0/3接口关闭是否还能看到包的传输成功
在这里插入图片描述
在这里插入图片描述

从上述结果我们可以看出,当断掉交换机的0/0/3接口后,PC2发出的数据是无法进行通信的,这也验证了我们ARP欺骗的成功性。

5、ARP欺骗实验的进一步提升
在刚才的实验拓扑中添加两个路由器,开启AR2的远程登录功能,使用kali来欺骗AR1,获取AR2的登录账号密码,从而在kali上进行远程登录AR2。
拓扑如下:
在这里插入图片描述
开启AR2的远程登录功能
账号:huawei
密码:huawei

进行ARP欺骗

kali@kali:~$ sudo netwox 33 -b 00:e0:fc:a6:60:e3 -e 2 -g 192.168.119.150 -h 00:e0:fc:a6:60:e3  -i 192.168.119.140

接下来我们对交换机的0/0/3接口用wireshark工具抓包,在AR1上远程登录AR2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以看到,我们已经得到了他的账号密码(截图仅包含账号部分,密码部分获取步骤相同)。此时,就攻击方就可以利用获取到的账号密码对远端的设备进行登录、更改操作了(被登录的设备并没有有做一些限制,如源IP等)。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值