arp欺骗原理:
当PC1
与PC2通信时,会查询arp缓存表,在没有通信之前arp缓存表是空的,这时PC1没有发往PC2的MAC地址,无法封装数据包进行发送数据,就需要先发送广播的arp请求来获取PC2的MAC地址,当其他PC机收到PC1的ARP请求,便会判断PC1广播来的ARP请求中的目的IP是不是自己的IP,如果是就回应PC1自己的MAC地址。因为PC1是广播ARP请求,所以同时连入网络的攻击者也可以收到arp请求,这时攻击者可以仿造PC2回复给PC1的应答报文,从而让PC1认为前往PC2(192.168.72.20)的MAC地址变为攻击着的mac地址。
实验要求:
PC1和PC2、kali都连入vment8网卡的网段
拓扑图:
环境搭建:
在ensp上,添加一个 cloud,双击打开后,创建一个UDP端口和vment8端口用于实验
实验步骤:
1.在PC1上ping测试PC2和kali,用来将PC2和kali的mac地址放入PC1的ARP缓存表
PC>ping 192.168.72.20
PC>ping 192.168.72.131
2.查看PC1正确的缓存表
在PC1上执行arp -a,可以看到kali的mac地址和PC2的mac地址
3.在kali上执行下图命令
-t 后的第一个IP表示被攻击者,第二个IP表示攻击者要伪装成那个IP(被攻击者要通信的对端IP)
执行后kali会一直回复PC1 192.168.72.20的mac地址是00:0c:29:7f:7b:26(kali的mac) ,从而让pc1
认为PC2是kali
4.查看PC1的arp缓存表
这时前往前往PC2的数据会发送给kali
上面讲解的是单向欺骗,只欺骗了PC1,这时如果PC2是网关,PC1需要通过PC2访问外网,
kali不会将PC1的数据转发,因此现在的PC1会无法上网,在本实验中是无法访问PC2。
现在我们想要PC1的数据经过kali,但是还能够访问PC2,就需要将PC2也欺骗,
5.在kali上欺骗PC2,让PC2以为PC1是kali
在kali上保留之前的终端,重新开启一个终端,执行下图命令,与之前不同的是:IP地址互换了
这时就实现了PC1和PC2可以互相通信,但是数据已经被kali截获。
双向欺骗叫中间人攻击