Несколько фильтров 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, он все равно выдавал эту синтаксическую ошибку... мой scapy - 2.4


person OneAndOnly    schedule 16.12.2018    source источник


Ответы (1)


Используемый фильтр просто не является допустимым фильтром 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)
person Pierre    schedule 23.12.2018
comment
Спасибо, но где я могу узнать больше о синтаксисе этих фильтров за пределами Unix? я не мог найти это на их сайте? scapy.readthedocs.io ничего не находит, когда я ищу фильтры tcp - person OneAndOnly; 29.12.2018
comment
Вы не можете найти это в документации Scapy, потому что это не относится к Scapy. pcap-filter(7) и tcpdump(1) в моем ответе относятся к страницам руководства. - person Pierre; 29.12.2018