如何捕获您在Scapy中发送的数据包?

时间:2017-08-13 09:20:43

标签: python network-programming scapy packet-sniffers fuzzing

我使用以下方式发送数据包:

     send(IP(dst="192.168.1.114")/fuzz(UDP()/NTP(version=4)), loop=1)

但是我无法在同一网络上的任何其他附近的计算机(包括IP 192.168.1.114的计算机)中捕获这些数据包。我使用wlan作为我的界面。

我也尝试使用scapy嗅探然后重播,但我仍然无法捕获这些数据包。

3 个答案:

答案 0 :(得分:0)

我首先尝试在执行程序时使用tcpdump捕获发送方计算机上的流量:

 tcpdump -i any udp dst 192.168.1.114

如果您可以看到离开源主机的流量,则可能是它未到达目标主机。 UDP数据包是任何网络设备要丢弃的第一个数据包,因为UDP的性质不会被重新传输。如果您确定数据包离开源验证它是否到达目标:

tcpdump -i any upd dst 192.168.1.114

要检查的另一点是防火墙设置。它可能位于源系统或目标系统上,防火墙阻止了这些请求。

答案 1 :(得分:0)

我终于解决了这个问题。这是我制作的清单,可以帮助其他人处理使用scapy的重放/模糊测试。

  1. 检查您所处理的所有IP地址是否存在 网络(使用ping)
  2. 了解send()(第3层)和sendp()(第2层)
  3. 之间的区别
  4. 如果改变现有数据包,请确保 删除校验和(使用'del')并重新计算校验和 使用show2()或使用str将数据包转换为字符串 然后将它们转换回数据包

答案 2 :(得分:0)

您应该使用Wireshark或Scapy中的嗅探功能,并使其在屏幕上打印内容:

sniff(lambda x:x.show())