发送scapy的数据包不会到达,也不能被嗅探

时间:2015-07-11 14:28:40

标签: python-2.6 scapy

我有一个反复出现的问题,我用scapy发送的数据包没有到达。我试图用scapy和wireshark嗅他们,但他们不会被嗅到。就像它们没有被发送一样,但发送它们的脚本显示“发送1包”消息。

我查了一下,发现this similar question问题可能是数据包被发送到了错误的界面。这似乎很可能,因为我的scapy的默认iface设置为“eth0”,我嗅到我的wifi连接。如果这确实是问题,我如何设置scapy发送&闻到wifi连接?

代码示例:

from scapy.all import *

message = raw_input("enter your message:")

for c in message:
    packet = Ether() / IP(dst = "127.0.0.1") / UDP(sport = 4001, dport = ord(c))
    send(packet)

raw_input()

在此脚本中,应该通过向表示字母的端口发送空UDP数据包来向服务器发送消息。脚本运行正常,我只是没有在我的“服务器”上获得任何数据包,并且该脚本据称发送的数据包无法被嗅探。

编辑:我的操作系统是Windows 8.1

2 个答案:

答案 0 :(得分:1)

数据包的目标是127.0.0.1,它属于系统环回接口的网络范围。如果您使用相同的计算机(但是使用单独的过程)进行嗅探,您可以监听并发送此接口(使用上述地址)。

您需要将数据包发送到您正在嗅探的计算机上的WiFi接口的地址。

您还需要确保您的防火墙(如果您有一台正在运行)不会阻止连接。

这只是可能出错的故障排除过程的开始。如果您只是想测试基本的Scapy - 我建议您使用机器上的环回接口进行测试。

答案 1 :(得分:1)

各种原因都是可能的。其中一些:

1)使用conf.route检出,哪个接口用于发送到127.0.0.1。在交互式会话中最容易尝试一个数据包。

2)FW已经提到过。尝试完全禁用FW以查看它是否有效。

3)无法找到/导入库以发送数据包。您尚未表示操作系统,因此无法详细说明。例如。 MacOS使用libdnet。

4)缺乏制作包的许可。尝试以root身份运行。

如果您在python3(pip install scapy-python3)中使用scapy进行尝试,我可以更详细地帮助您。