0x00
准备kali-linux作为攻击机,准备两台windows机器作为被攻击机器,可以都使用虚拟机,网络模式应该处于同一局域网内,使用NAT模式或者仅主机模式。
攻击机网络信息:(留意其MAC地址)
靶机一:使用一台win2003服务器,为了实验结果明显,首先清掉ARP缓存表。(称为A主机)
以下是正确的arp信息:留意此时的网关和对应的正确MAC地址。
之后清理掉现有的MAC地址表。
靶机二:采用一台win10系统机,进行与靶机一相同的操作(称为B):
网络信息:
Arp表缓存:
使用相同命令清掉全部缓存:
0x01
单向主机型欺骗:冒充网关欺骗其他主机。
- 为了达到断网效果,关闭linux的数据包转发功能。
- 打开Ettercap:打开图形界面
- 配置攻击前的参数:
- 开启嗅探
b)选择嗅探的网卡
c)开启ARP毒化
d)
e)配置插件(更多的插件功能自行了解)
F)扫描内网主机,然后查看所有主机的MAC地址。
然后将所有非网关主机(攻击机除外)加入同一个攻击目标群。
到此前期的攻击配置基本完成。(这个时候攻击其实已经启动了,先停下来)
- 为了看到实验效果,我们先让两台主机和网关三个互相进行ping测试,获取到正确的MAC地址缓存表。
A主机地址缓存表
B主机地址缓存表
总结:此时两台主机的网关记录都是:00-50-56-ee-1d-4c
- 重新开始攻击,然后重新获取两台主机的arp地址表
A主机
B主机
发现此时互相之间的ARP表已经完全相同了,全部变为攻击机的的MAC地址。
- 之后用wireshark抓一个网卡的arp的数据包来查看一下:
- 这数据包的含义是:源地址00-0c-29-50-a3-ff的主机(攻击机),告诉目标地址00-0c-29-50-a3-ff(A主机),网关的MAC地址是 00-0c-29-50-a3-ff。
- 这个包达到的效果就是:当A主机收到这个数据包,就匹配自己的MAC地址表,发现地址有修改,然后用新收到的MAC地址进行修改。这样以后在进行通信的时候,A主机就会把攻击机当成网关,将数据全部发给网关。
和上面这个数据包类似,可以查看其他的数据包,也基本是产生类似效果的包。
当然所有的包中有可能抓到一两个正常的ARP数据包,不过,不会产生什么效果,因为很快就会被新的响应包覆盖。
0x02
双向欺骗,获取两台主机之间的telnet数据。
同一局域网内的主机进行通信是不需要经过网关进行转发的,这样就需要使用双向欺骗,来窃听两台主机之间的通信流量。
- 前期的配置和前面差不多,只不过在设置目标的时候要分别将主机A和主机B加入不同的主机群。
- 可以再将两台主机的ARP缓存清空,然后重新查看ARP缓存表。
- A主机
-
- B主机
此时我们可以发现两台主机的网关的MAC地址全部是正确的。
- 使用B主机telnet登录A主机。
成功窃听两台主机之间的通信流量(telnet属于明文传输)
- 此时主机A是可以连接网络的。然后再抓个数据包分析一下
可以看到arp包基本全是由攻击机发送的,并且是指向主机A和B发送了数据包。
0x03 后话
Arp攻击实验演示基本结束,关于arp的原理,可以参考《TCP/IP协议卷一》这本书。
上一篇博文有涉及:https://blog.csdn.net/CSDNPM250/article/details/88795648