Osobiście nie zrobiłbym tego. Przechwytuję wszystkie pakiety, a następnie przefiltruję flagi SYN i ACK później. Jeśli rozwiązujesz problemy z TCP, prawie zawsze chcesz zobaczyć całą rozmowę, a nie tylko uścisk dłoni lub potwierdzenie. Jeśli nie interesuje Cię faktyczny ładunek danych, możesz ograniczyć rozmiar pakietu za pomocą tcpdump -s SIZE. Nagłówek TCP może mieć różną długość, więc przechwytywanie -s 128prawdopodobnie zapewni wszystkie możliwe nagłówki i może trochę danych.
suprjami
4
Być może nie rozwiązujesz problemów z TCP. Może chcesz zobaczyć, jak czat jest program i policzyć jego połączenia wychodzące. Teraz jak ja.
Dan Pritts,
Odpowiedzi:
81
Składnia filtr pcap wykorzystywane do tcpdump powinien działać dokładnie tak samo na filtrze przechwytywania Wireshark.
Z tcpdump użyłbym takiego filtra.
tcpdump "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"
Sprawdź stronę podręcznika tcpdump i zwróć szczególną uwagę na tcpflags.
Koniecznie sprawdź także sekcje na Wiki Wireshark dotyczące filtrów przechwytywania i wyświetlania. Niestety oba typy filtrów używają zupełnie innej składni i różnych nazw dla tej samej rzeczy.
Jeśli zamiast filtru przechwytującego chcesz mieć filtr wyświetlania, prawdopodobnie będziesz musiał zbudować wyrażenie łączące tcp.flags.ack i tcp.flags.syn. Jednak znacznie lepiej znam filtry przechwytywania, więc będziesz musiał je rozwiązać samodzielnie.
Bardziej podoba mi się twoja odpowiedź. Wygląda na to, że podjąłeś wysiłek. Głosuj za ciebie.
Ablue
4
To świetna odpowiedź z dobrymi referencjami, ale pamiętaj, że ta składnia przechwytuje wszystkie pakiety, które mają ustawione flagi SYN lub ACK, nawet jeśli ustawione są również inne flagi. To może, ale nie musi, być zamierzone przez PO. Proszę zobaczyć moją odpowiedź poniżej, aby uzyskać dokładniejszy filtr, jeśli pożądane są tylko pakiety TCP SYN lub ACK. Twoje zdrowie.
JJC,
14
Chociaż odpowiedź @ Zoredache jest ładna i kompletna, pamiętaj, że ta składnia da wszystkie pakiety, które mają ustawioną flagę TCP SYN lub TCP ACK, w tym pakiety, które nie są wyłącznie zwykłymi pakietami „TCP SYN” lub „TCP ACK”, ponieważ mają także ustawione inne flagi. To może być lub nie być to, co zamierzali (lub przyszli czytelnicy). Na przykład ta składnia będzie również przechwytywać pakiety TCP SYN-ACK, TCP FIN-ACK itp. Jeśli chcesz tylko pakietów TCP SYN lub TCP ACK (tj. JUST jedna z tych ustawionych flag), właściwa składnia filtra przechwytywania to:
'tcp[tcpflags] == tcp-syn or tcp[tcpflags] == tcp-ack'
Zrobiłem skrypt, aby zobaczyć najlepszych „synnerów”. W tym celu rozważam tylko początkowy pakiet syn (pierwszy pakiet uzgadniania trzech pakietów). Oznacza to, że syn = 1, ack = 0
Możesz także filtrować na podstawie określonych części pakietu, a także łączyć wiele warunków w grupy. Pierwszy z nich jest przydatny, gdy na przykład szukasz tylko SYNs lub RSTs, a drugi to jeszcze bardziej zaawansowanej izolacji ruchu.
UAP RSF
[Wskazówka: Anagram dla flag TCP: Niewykwalifikowani atakujący Pester Real Security Folk]
twoja notatka: ...
Pokaż mi wszystkie URGpakiety PILNE ( ) ...
tcpdump 'tcp[13] & 32 != 0'
Pokaż mi wszystkie ACKpakiety ACKNOWLEDGE ( ) ...
tcpdump 'tcp[13] & 16 != 0'
Pokaż mi wszystkie PSHpakiety PUSH ( ) ...
tcpdump 'tcp[13] & 8 != 0'
Pokaż mi wszystkie RSTpakiety RESET ( ) ...
tcpdump 'tcp[13] & 4 != 0'
Pokaż mi wszystkie SYNpakiety SYNCHRONIZE ( ) ...
tcpdump 'tcp[13] & 2 != 0'
Pokaż mi wszystkie FINpakiety FINISH ( ) ...
tcpdump 'tcp[13] & 1 != 0'
Pokaż mi wszystkie SYNACKpakiety SYNCHRONIZE / ACKNOWLEDGE ( ) ...
tcpdump 'tcp[13] = 18'
[ Uwaga: Tylko PSH, RST, SYN, i FINflagi są wyświetlane w polu wyjścia flaga tcpdump. URGs i ACKs są wyświetlane, ale są wyświetlane gdzie indziej na wyjściu, a nie w polu flagi]
Spowoduje to przechwycenie wszystkich pakietów z ustawioną flagą SYN, w tym SYN, SYN-ACK itp. Jeśli chcesz tylko pakietów SYN, użyj zamiast tego „tcp [13] == 2”. Twoje zdrowie!
JJC,
1
powinien pokazać je bez żadnych filtrów lub argumentów.
tcpdump -s SIZE
. Nagłówek TCP może mieć różną długość, więc przechwytywanie-s 128
prawdopodobnie zapewni wszystkie możliwe nagłówki i może trochę danych.Odpowiedzi:
Składnia filtr pcap wykorzystywane do tcpdump powinien działać dokładnie tak samo na filtrze przechwytywania Wireshark.
Z tcpdump użyłbym takiego filtra.
Sprawdź stronę podręcznika tcpdump i zwróć szczególną uwagę na tcpflags.
Koniecznie sprawdź także sekcje na Wiki Wireshark dotyczące filtrów przechwytywania i wyświetlania. Niestety oba typy filtrów używają zupełnie innej składni i różnych nazw dla tej samej rzeczy.
Jeśli zamiast filtru przechwytującego chcesz mieć filtr wyświetlania, prawdopodobnie będziesz musiał zbudować wyrażenie łączące tcp.flags.ack i tcp.flags.syn. Jednak znacznie lepiej znam filtry przechwytywania, więc będziesz musiał je rozwiązać samodzielnie.
źródło
Chociaż odpowiedź @ Zoredache jest ładna i kompletna, pamiętaj, że ta składnia da wszystkie pakiety, które mają ustawioną flagę TCP SYN lub TCP ACK, w tym pakiety, które nie są wyłącznie zwykłymi pakietami „TCP SYN” lub „TCP ACK”, ponieważ mają także ustawione inne flagi. To może być lub nie być to, co zamierzali (lub przyszli czytelnicy). Na przykład ta składnia będzie również przechwytywać pakiety TCP SYN-ACK, TCP FIN-ACK itp. Jeśli chcesz tylko pakietów TCP SYN lub TCP ACK (tj. JUST jedna z tych ustawionych flag), właściwa składnia filtra przechwytywania to:
Równoważnie:
Twoje zdrowie!
źródło
Zrobiłem skrypt, aby zobaczyć najlepszych „synnerów”. W tym celu rozważam tylko początkowy pakiet syn (pierwszy pakiet uzgadniania trzech pakietów). Oznacza to, że syn = 1, ack = 0
źródło
http://danielmiessler.com/study/tcpdump/
zaawansowane
Możesz także filtrować na podstawie określonych części pakietu, a także łączyć wiele warunków w grupy. Pierwszy z nich jest przydatny, gdy na przykład szukasz tylko
SYN
s lubRST
s, a drugi to jeszcze bardziej zaawansowanej izolacji ruchu.UAP RSF
[Wskazówka: Anagram dla flag TCP: Niewykwalifikowani atakujący Pester Real Security Folk]
twoja notatka: ...
Pokaż mi wszystkie
URG
pakiety PILNE ( ) ...Pokaż mi wszystkie
ACK
pakiety ACKNOWLEDGE ( ) ...Pokaż mi wszystkie
PSH
pakiety PUSH ( ) ...Pokaż mi wszystkie
RST
pakiety RESET ( ) ...Pokaż mi wszystkie
SYN
pakiety SYNCHRONIZE ( ) ...Pokaż mi wszystkie
FIN
pakiety FINISH ( ) ...Pokaż mi wszystkie
SYNACK
pakiety SYNCHRONIZE / ACKNOWLEDGE ( ) ...[ Uwaga: Tylko
PSH
,RST
,SYN
, iFIN
flagi są wyświetlane w polu wyjścia flaga tcpdump.URG
s iACK
s są wyświetlane, ale są wyświetlane gdzie indziej na wyjściu, a nie w polu flagi]źródło
Chciałem sam uzyskać tylko pakiety SYN, użyłem następującego polecenia:
tcpdump -i eth7 'tcp[13] & 2 != 0'
To powinno od razu zadziałać.
źródło
powinien pokazać je bez żadnych filtrów lub argumentów.
źródło