我有一个反复出现的问题,我用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答案 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进行尝试,我可以更详细地帮助您。