Scapy несколько фильтров снифф не работает? - PullRequest
0 голосов
/ 16 декабря 2018

Поэтому я использую этот фильтр для сниффа:

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 itвсе еще дал эту синтаксическую ошибку ... мой scapy 2.4

1 Ответ

0 голосов
/ 24 декабря 2018

Фильтр, который вы используете, просто не является допустимым фильтром 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)
...