tcpdump

  tcpdump
Author:Frank
Datum: 03.05.2002
Zusammengfassung: Kurze Beschreibung der Flags und Expressions von dem Sniffer Namens tcpdump.
Inhalt:
 

tcpdump Flags

FLAG Beschreibung
-e Anzeige der MAC Adresse von jedem Paket
-i interface (Notwendig) Definiert das Interface auf welchem tcpdump "hört"
-l Umleitung der Ausgabe nach stdout, z.B. für Verarbeitung durch eigene Programme
-n Ohne Namensauflösung
-p Das Interface wird nicht in den promiscuos mode geschaltet. Somit erhält man nur eigene Pakete
-r filename Lesen eines tcpdump Mitschnittes aus einer Datei
-s N Aufzeichnen von N bytes für jedes Paket. Default ist 68. (Normalerweise mit -x oder -X)
Wenn man z.B. den gesamten Frame aufzeichnen möchte muss hier -s 1514 stehen. (MTU von 1500 + 14 fuer den Ethernetheader)
-S Ausgabe der absoluten TCP Sequence Nummer anstelle der relativen
-w filname Schreibt die Aufzeichnung in ein File (binär)
-x Hex Dump der Pakete (dafür wird aber der gesammte IP Header aufgezeichnet)
-X Hex und ASCII Dump der Pakete
 

tcpdump Expressions

Expressions Beschreibung
port 80 Es werden (nur) alle Pakete mit Quell- oder Zielport 80 angezeigt (TCP oder UDP
host 192.168.1.1 Es werden (nur) alle Pakete von oder zu der IP Adresse 192.168.1.1 angezeigt.
host 192.168.1.1 and tcp port 80 Kombination aus den beiden oberen, beschränkt auf TCP
icmp Es werden (nur) alle ICMP Pakete
\(src host 192.168.1.1 or src host 192.168.1.2\) and tcp port 80 Zeige alle WEB Pakte (tcp/80) die von 192.168.1.1 oder 92.168.1.2 kommen.
Der Backslash \ vor der Klammer wird von der Shell benötigt
ether host aa:bb:cc:dd:ee:ff Es werden (nur) alle Pakete von oder zu der MAC Adresse aa:bb:cc:dd:ee:ff
ip proto 50 s werden (nur) alle Pakete mit IP Protokolltyp 50 angezeigt. (50 steht für IPSec AH)
ip[2:2]>576 Es werden (nur) alle Pakete angezeigt die länger als 576 bytes sind ([2:2] steht hier für den entsprechenden Eintrag im TCP Header)
tcp[13] & 0x12!=0 Es werden (nur) alle Pakete angezeigt die das TCP SYN/ACK Flag gesetzt haben (tcp[13] steht hier für das 13. byte im TCP Header
icmp[0] Es werden (nur) echo reply Pakete angezeigt. (ICMP Typ 0 entspricht echo reply)
icmp[0]=3 and icmp[1]=4 Es werden (nur)ICMP type 3, code 4 Pakete. Z.B. die Antwort auf ein empfangendes Paket das zu lang ist und das "Don´t Fragment) Bit gesetzt hat.
 

Lesen der Ausgabe

Ein Client (192.168.7.1) öffnet eine Telnet Session auf einem Server (192.168.1.11). Die erste Zeile würde wie folgt aussehen:
# tcpdump -n host 192.168.1.11
tcpdump: listening on eth0
08:54:40.126159 192.168.7.1.43760 > 192.168.1.11.telnet: S 122897761:122897761(0) win 5840
Fangfrage: Woran erkennt man das dieser Frame ein TCP Frame ist ?
Klar, Flags und Sequenznummern gibts es nicht im ICMP oder UDP sondern nur im TCP.  

TCP Flags

TCP FLAG Darstellung Beschreibung
SYN S Dies ist eine Verbindungsaufbauanfrage, der erste Teil eine TCP-Verbindung
ACK ack Dieses Flag wird benutzt um dem Sender den Empfang von daten zu bestätigen.
FIN F Dieses Flag weist den Sender (soft) darauf hin, die Verbindung vom sendenden Host zum Empfänger zu trennen
RESET R Dieses Flag weist den Sender (hard ;-) darauf hin, die existierende Verbindung zum Empfänger unverzüglich zu trennen.
PUSH P veranlasst eine unverzügliche Übertragung der Daten vom sender an die Anwendung des Empfängers. Es wird nicht gewartet, bis die Puffer voll sind. In diesem Fall wird nicht auf effiziente Ausnutzung der Bandbreite geachtet. Für viele Anwendungen wie z.B. Telnet ist es das Wichtigste kurze Antwortzeiten zu haben. Das PUSH Flag versucht dies zu signalisieren.
URGENT urg damit soll erreicht werden, dass wichtige Daten anderen bevorzugt werden. Ein gutes Beispiel dafür ist die tastenkombination Ctrl+C zum Abbruch eines FTP-Downloads.
Placeholder . Wenn in einer Verbindung kein SYN, FIN, RESET oder PUSH zu finden ist, wird nach dem Zielport ein Platzhalter gesetzt.