ARP欺骗定义
ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线
ARP的分类
-
单向ARP欺骗(One-way ARP Spoofing)
攻击者A伪装成合法网关G,向受害者V发送虚假ARP响应,告诉V合法网关G的IP地址对应的MAC地址是攻击者A的MAC地址。然后,V将其所有流量发送到攻击者A,而攻击者A可以监视或篡改通信。
-
ARP缓存中毒(ARP Cache Poisoning)
攻击者A周期性地发送虚假ARP响应,将多个IP地址映射到自己的MAC地址,以此污染目标设备的ARP缓存。这可能导致网络中的混乱和通信中断。
-
中间人攻击(Man-in-the-Middle Attack)
攻击者A伪装成合法网关G,并伪装成合法受害者V,与V和G之间的通信都通过攻击者A进行中转。攻击者A可以监视、篡改或注入数据包,而V和G都不知道攻击发生了。
-
反向ARP欺骗(Reverse ARP Spoofing)
攻击者A伪装成网络中的一个主机,向合法网关G发送虚假的伪造ARP请求,声称自己是G。就是在ARP请求中伪造了请求方的IP地址,如果被响应方接收,也会把请求方的IP和MAC地址记录下来。然后,攻击者A将合法网关G的IP地址映射到自己的MAC地址。这样,其他设备会将流量发送到攻击者A而不是合法网关G。
ARP方式
伪造网关
攻击者B伪造ARP报文(senderIP地址是网关的,senderMAC地址不是网关的),发送给网段内的主机A,那么主机A就会把网关的ip地址和伪造的mac地址缓存到arp缓存表内,导致主机A无法把要发给网关的消息送达网关,致使主机A无法正常访问外网
欺骗网关
攻击者B伪造ARP报文(senderIP地址是主机A的,senderMAC地址不是主机A的),发送给网关,网关就把主机A的ip地址和伪造的mac地址缓存到网关arp缓存表内,导致网关无法给主机A发送消息,致使主机A无法正常访问外网
欺骗其他主机
攻击者B伪造ARP报文(senderIP地址是主机C的,senderMAC地址不是主机C的),发送给主机A,主机A就把主机C的ip地址和伪造的mac地址缓存到主机A的arp缓存表内,导致主机A无法给主机C发送消息
泛洪攻击
攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网(也可以泛洪攻击其他主机)
ARP欺骗实现
网络环境
本次的攻击者:
字段 | 内容 |
---|---|
攻击者 | Kali |
类型 | 虚拟机 |
IP | 192.168.88.128 |
本次的被攻击者(靶机):
字段 | 内容 |
---|---|
被攻击者 | Windows 7 X64 |
类型 | 物理主机 |
IP | 192.168.88.142 |
ARP断网
通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址。
fping -g 192.168.88.1/24
利用arpspoof工具,对物理机发起ARP断网攻击。
输入aspspoof -t 192.168.88.142 -r 192.168.88.2 。其中,-r后面的参数是网卡名称,-t后面的参数是目的主机和网关,要截获目的主机发往网关的数据包。
kali会不断向被攻击机发送应答包,被攻击机的ARP缓存表中,原网关的MAC地址就被篡改为攻击机的MAC地址。kali默认不转发数据,被攻击机达到断网效果。
限制网速
当我欺骗了网关和受害者的时候,受害者访问网络就需要经过我的网卡,那我限制自己网卡的速度或者转发的速度,就间接降低了受害者的网速
开启路由转发功能
cat /proc/sys/net/ipv4/ip_forward
回显0表示没开启流量转发↓,显示1表示开启了。
开启kali流量转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
这时候再去ping一下,可以ping通
限制网速200ms延时 sudo tc qdisc add dev eth0 root netem delay 200ms
取消限制网速200ms延时 sudo tc qdisc del dev eth0 root netem delay 200ms
获取流量
需要让被攻击机通过攻击机进行上网,所以开启kali的流量转发。
cat /proc/sys/net/ipv4/ip_forward #值为0表示没开启流量转发,为1表示开启了
echo 1 > /proc/sys/net/ipv4/ip_forward #开启流量转发
这个时候win7会经过kali上网,kali也就可以抓取win7数据了。
win7在网上浏览内容时,使用wireshark就可以抓到很多流量包。
过滤一下ip,可以看到很多流量包,可以很清晰看到在上面的搜索
防范手段
网关防御
- 合法ARP绑定,防御网关被欺骗
- ARP数量限制,防御ARP泛洪攻击
接入设备防御
- 网关IP/MAC绑定,过滤掉仿冒网关的报文
- 合法用户IP/MAC绑定,过滤掉终端仿冒报文
- ARP限速,防御ARP泛红攻击
- 使用ARP防火墙
参考博客:
什么是ARP欺骗_jasonj33的博客-CSDN博客
ARP攻防_哔哩哔哩_bilibili
ARP欺骗的各种玩法_欺骗安全设备 模拟公网ip_lainwith的博客-CSDN博客