Scapy多个嗅探过滤器不起作用?

时间:2018-12-16 14:25:13

标签: python security scapy

所以我正在使用此过滤器进行嗅探:

myfilter = 'tcp and tcp.flags.syn==1 and tcp.flags.ack==0 and tcp.flags.psh==0'

sniff(iface="myinter" , filter=myfilter , prn=mitm , count=1 )

它也会获取没有指定标志的数据包:

我只希望ACK = 0,SYN = 1和PSH = 0的标志,但这不起作用

我也尝试过不使用==,而只是使用tcp.flags.syn 1仍然无法正常工作

我在这里做错什么吗?

更新:

它似乎也给某些语法错误:

tcpdump:语法错误

但是当我只使用tcp或TCP时,它没有给出任何语法错误,该错误不会停止程序,但看起来它停止了过滤

即使当我只是使用tcp.flags.syn == 1或tcp.flags.syn 1时,它仍然会给出此语法错误...我的船长是2.4

1 个答案:

答案 0 :(得分:2)

您使用的过滤器根本不是有效的PCAP过滤器(因此出现语法错误消息)。在Unix系统上,您可以查看pcap-filter(7)tcpdump(1)联机帮助页,以获取有关可以使用的语法的更多信息。

类似的事情应该起作用:

myfilter="tcp[tcpflags] & (tcp-syn|tcp-ack|tcp-push) == tcp-syn"
sniff(iface="myinter" , filter=myfilter, prn=mitm , count=1)