2017-10-04 125 views
2

我有tcpdump和scapy在同一接口上运行sniff()。有一个scp文件传输发生。scapy嗅探()似乎并不捕获TCP数据包,只显示以太网帧

tcpdump:我看到有seq和ack的tcp数据包经过。

scapy sniff()返回列表:我在每个数据包摘要()中看到的所有内容均为(MAC addr1) > (Mac addr 2) (0x800)/Raw。即使在数据包.show()中,我所看到的都是带有“## [Ethernet] ##”,src和dst的链接层。

我跑了这个超时30,所以我知道我会捕获一个空文本文件的scp传输,所以我知道我的计时是正确的。

肯定有TCP数据包经过,但没有一个被检测到。 Scapy有问题吗?

谢谢

+0

TCP封装在IP中,封装在以太网中。 IP数据包是以太网帧的有效载荷,TCP段是IP数据包的有效载荷。你根本解码不够深。 –

+0

请报告'sniff()'和'pkt.show()'的输出。 – Pierre

回答

1

有可能是防止Scapy的从处理以太网净荷中的错误。

您可以尝试设置conf.debug_dissector = True来调试问题。因为这可能是一个已经修复的错误(我们有一个类似于Python 3直到最近才看到的错误),所以您还可以获得Scapy的当前开发版本(来自repository)。

如果更新到当前开发版本后仍然存在问题,请report it

+0

我修好了。你是对的。我只需要更新到最新版本,因为我的版本是buggy。我在这里删除了一个旧评论,因为我也修正了这个问题。 – Arrow