1.ARP介绍
ARP是一个将32位IP地址映射到MAC地址的协议 。在局域网中,主机之间通信需要知道对方的MAC地址,而ARP协议就是用来完成这个映射过程的
2.ARP欺骗原理
发送伪造ARP数据包
攻击者通过发送伪造的ARP数据包到局域网中,尤其是发送到网关上。这些数据包中包含虚假的IP地址和MAC地址的映射关系
欺骗ARP缓存
当局域网中的主机(受害者)需要与目标主机(如网关)通信时,它首先会检查自己的ARP缓存表中是否有目标主机的IP地址和MAC地址的映射关系
如果缓存表中没有相应的映射关系,那么主机会发送一个ARP请求广播,询问局域网内谁有这个IP地址
攻击者会伪造一个ARP响应,包含自己的MAC地址作为目标IP地址的响应,并将其发给受害者
受害者收到伪造的ARP响应后,会将其添加到自己的缓存表中,导致后续的通信都会发送到攻击者的主机上
截获或篡改通信
由于受害者将攻击者的MAC地址误认为是网关的MAC地址,因为所有原本发送给网关的数据包都会被发送到攻击者的主机上
攻击者可以截获这些数据包,甚至篡改其中内容,然后再将数据包转发给真正的网关或其他目标主机
3.漏洞分析
ARP欺骗的关键在于ARP机制本身缺乏内置的安全机制来验证相应的真实性。这一漏洞使得网络中的任何设备都可以冒充其他设备,通过发送伪造的ARP响应来欺骗其他主机,从而实现对网络的监听和操控
4.实验准备
1.攻击机:kali 地址:192.168.3.183,MAC:00:0c:29:c9:84:48 (ifconfig,ether后面的就是)
2.靶机:win10 地址:192.168.3.164,MAC:40-8c-1f-55-2d-2c(输入arp -a 网关地址对应的物理地址就是)
3.网关地址:192.168.3.1
4.确保两者之前能够互相ping通
5.靶机需要关掉防火墙
5.实验步骤
先提权
sudo su
在kali中获取需要攻击的目标ip地址及网关的ip地址
扫描对应的网关查看所有存活的主机,(推荐使用nmap,因为他只显示存活的主机,方便我们去找)
fping -asg 192.168.3.1/24
或者
nmap -sP 192.168.3.1/24
找到目标主机为192.168.3.164
为什么是/24呢,因为他表示子网掩码中有24个连续的1,后面8个零,转换成十进制就是255.255.255.0 。实际上是指顶一个IP地址以及该地址所属的子网掩码
我理解的就是查192.168.3.1至192.168.3.255的主机IP
确保靶机可以正常上网
在终端ping一下百度确保可以ping通
攻击靶机
arpspoof -i eth0 -t 192.168.3.174 192.168.3.1
这个192.168.3.174是我指定的靶机ip,192.168.3.1是网关地址
正常情况下arp欺骗是影响整个子网内的所有设备,所以应该是arpspoof -i eth0 -t 192.168.3.1
5查看win10的MAC码情况
开启ip转发功能或拦截靶机访问
echo 1 > /proc/sys/net/ipv4/ip_forward
其中参数1是打开靶机的网络访问,0是关闭靶机的网络访问。
可用Wireshark去获取靶机提交的数据修改并重新提交
ARP欺骗的防御
使用静态arp缓存表
绑定mac地址
使用arp服务器,通过服务器查找arp转换表来相应其他机器的广播
使用arp欺骗防护软件
ARP欺骗的流量特征
网络频繁掉线
网速突然变慢
使用arp -a命令查看的网关max地址与真实的网关mac地址不同
使用嗅探软件发现局域网内存在大量的arp应答包