2012-03-26 8 views
18

Ich habe versucht, tcpdump Ausgabe basierend auf Pakete Längen zu filtern. Aber ich hatte kein Glück.Wie tcpdump Ausgabe basierend auf Paketlänge filtern

Dies ist die einfache Ausgabe für einen Befehl;

tcpdump -n -i eth0 dst Port 443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0 
E..<[email protected]@.......>K.<.0... 
........9............ 
[email protected] 


17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0 
[email protected]@.......>K.<.0... 
...2............. 
[email protected]:..U 


17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171 
[email protected]@..f....>K.<.0... 
...2............. 
[email protected]:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H... 
.......9.8.......5... .....E.D.3.2...........A...../......... 
...1.........alice.sni.velox.ch. 
.................#.. 


17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0 
[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W 


17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7 
E..;[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W......0 

Ich möchte Pakete nur sehen, wenn sie mehr als 100bytes Länge haben. für diesen Fall nur das 3. Paket.

Optionen [nop nop, TS val 7.028.787 ecr 974439509], Länge 171

Ich habe auf man-Seiten für tcpdump sah, konnte aber keine nützlichen Parameter finden. es gibt einen Ausdruck "größere Länge", der hier erwähnt wird; http://www.ethereal.com/docs/man-pages/tcpdump.8.html, aber ich konnte diesen Ausdruck auch nicht verwenden.

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100 
tcpdump: syntax error 

Danke für jede Hilfe.

Antwort

26

greaterLänge funktioniert, aber Sie haben es als Teil eines kompletten Filterausdruck zu verwenden, und der Filterausdruck hat nach alle die Befehlszeilen Flag Argumente zu kommen.

Arbeitsbeispiel:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100 

Sollten funktionieren - dst port 443 and greater 100 ist ein kompletter Filterausdruck, der für Pakete überprüft, die 443 zu TCP oder UDP-Port gesendet werden und dass eine Gesamt Länge (einschließlich Link-Layer, IP und TCP-Header) größer als 100

NICHT Beispiel arbeiten:

tcpdump -n -i eth0 dst port 443 -A -x greater 100 

wird nicht funktionieren - die dst in dst port 443 als Beginn eines Filters Ausdruck behandelt wird, was bedeutet, dass sie und alles danach, einschließlich-A und -x, werden als Teil des Filterausdruck behandelt, aber -A und -x sind keine gültigen Komponenten eines Filterausdrucks. Sie sind vermutlich Befehlszeilenoptionen, daher müssen sie vor alle Nicht-Flag-Argumente einschließlich der Komponenten des Filterausdrucks gehen.