一、什么是ARP协议?
一、什么是ARP欺骗?
ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网关上。其目的是要让假的ARP数据 包送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行 转送到真正的网关或是篡改后再转送(中间人攻击)。攻击者亦可将ARP数据包导到不存在的 MAC地址 从而达到阻断服务攻击的效果。
二、ARP欺骗的工作原理
我们假设有两台主机A和B
主机A向主机B发送request请求包询问B的MAC地址,然后hacker(攻击者)冒充主机B向主机A 发送ARP reply给主机A。(主机A误以为是主机B的事实上是hacker攻击者的MAC地址)之后主 机A发送的所有正常的数据包都会发送给hacker。
三、实验环境
系统环境:kail Linux(IP 地址:192.168.80.131)
window10 操作系统(IP 地址:192.168.80.133;网关:192.168.80.2)
实验工具:Arpspoof Wireshark
四、实验步骤
1、先使用ifconfig查询kail IP地址,再使用ipconfig查看靶机IP地址(win 10)
我们可以看到网卡为eth0,IP地址为:192.168.80.131,MAC地址为:00:0c:29:18:10:c1
2.使用route -n命令得到靶机所在的网关,并检测网络的连通性piwww.baidu.com
route -n
我们可以看到靶机所在的网关为192.168.80.2
此时我们可以看到连通性正常,可以直接ping通baidu域名
3、在进行ARP欺骗之前先进行打开ARP流量转发功能
echo 1>/proc/sys/net/ipv4/ip_forward
如果把1改为0,则为关闭,靶机的数据包发不出去,则会使靶机断网。
4、使用Arpspoof工具进行攻击
arpspoof的命令格式为:arpspoof -i 网卡 -t 目标ip 网关输入命令:arpspoof -i eth0 -t 192.168.80.133 192.168.80.2
此时ARP攻击已经开始进行,我们使用靶机ping www.baidu.com查看连通性
我们可以看到此时无法ping通baidu的域名
5、加下来开启ARP转发命令、进行ARP欺骗
此时我们可以看到靶机win10的MAC地址为:00:0c:29:18:10:c1
kail linux攻击机的MAC地址也为:00:0c:29:18:10:c1
说明此时ARP欺骗成功
6、使用Wireshark进行抓包
7、用靶机登录××网,进入登录界面登录,随便输入。
8、此时打开wireshark ,看看在主机(kali)是否能抓取靶机输入的账号和密码。
可以看到刚才登录的账号是:13100436564 密码是:12121212
五、ARP欺骗的防御措施
- 使用ARP防火墙:部署ARP防火墙来监控和检测网络中的ARP流量,及时发现并阻止异常ARP请求和响应。
- 使用ARP安全协议:采用ARP安全协议,例如ARP安全(ARP Sec)或静态ARP检测(Static ARP Inspection),对网络中的ARP请求和响应进行验证和保护。
- 实施网络隔离:将网络划分为多个虚拟局域网(VLAN),并在不同的VLAN间限制通信,以防止ARP欺骗攻击在不同网络间传播。
- 启用端口安全特性:在交换机上启用端口安全特性,限制每个接口上连接的最大MAC地址数量,以防止攻击者通过连接多个设备进行ARP欺骗。
- 使用网络入侵检测系统(IDS):通过部署IDS,对网络通信进行实时监控和分析,及时发现和阻止ARP欺骗攻击。