Intro

HighGames ist eine große Datenbank mit Informationen zu PC-Spielen und Hardware. Helfen Sie mit, und senden Sie Ihre eigenen Erfahrungen.

Weitere Informationen

Viel Spaß beim Lesen!

Hardware-View: Tcpdump und Windump

Tcpdump und Windump

Titel: Tcpdump und Windump
Thema: Paketsniffer
Zielgruppe: Fortgeschrittene
Artikelversion: 1.09
Zurück

Hinweis: Für die Korrektheit oder Aktualität der Informationen kann nicht garantiert werden. Der Autor übernimmt daher keine Haftung für Schäden, die durch Nutzung der Informationen entstanden sind.

Tcpdump ist ein sehr hardwarenaher Befehlszeilen-Hardware-Glossar: Paketsniffer für Unix-Plattformen. Das Windows-Äquivalent mit Namen Windump ist glücklicherweise ebenso hochwertig umgesetzt worden. In diesem Artikel werden die Optionen und Möglichkeiten dieser Programme beschreiben. Da Windump eine Portierung von Tcpdump ist, fällt die Verwendung nahezu identisch aus, deshalb können Sie alle hier genannten Funktionen darauf übertragen. Im Weiteren wird Tcpdump zur Veranschaulichung verwendet.


{beginnfett}Wichtige Hinweise

Da Tcpdump direkt mit dem Betriebssystem-Kernel arbeitet, und zudem die abgehörte Netzwerkschnittstelle in den Hardware-Glossar: Promiscuous-Modus schaltet, werden Root- bzw. Administratorrechte benötigt.

Tcpdump und Windump benötigen die Pcap-Bibliothek, welche im Lawrence Berkeley National Laboratory programmiert wurde und unter den Berkeley Software Distribution läuft. Diese Bibliothek enthält eine Reihe von Packet-Capture-Routinen, auf welche die beiden Tools zurückgreifen. Downloaden Sie die Bibliothek und installieren Sie sie einfach. Vorhandene Versionen werden überschrieben. Falls Sie wissen möchten, ob Sie diese Bibliothek nicht schon installiert haben, können Sie versuchen, das jeweilige Programm zu starten. Sie erhalten eine Fehlermeldung, wenn die Bibliothek nicht gefunden wurde.


Download für Unix

Tcpdump und libpcap: http://www.tcpdump.org
Tcpdump Man-Page: http://www.tcpdump.org/tcpdump_man.html


Download für Windows

Windump: http://www.winpcap.org/windump/install
Windump Man-Page: http://www.winpcap.org/windump/docs/manual.htm
WinPcap: http://www.winpcap.org/install/default.htm


Anwendung

Tcpdump wird standardmäßig versuchen, alle verfügbaren Netzwerkschnittstellen abzuhören. Falls Sie eine Fehlermeldung erhalten, dass keine Schnittstelle vorhanden sei, müssen Sie diese manuell angeben. Unter Unix können Sie ifconfig verwenden und unter Windows die -D Option von Windump, um sich die Nummern der verfügbaren Netzwerkschnittstellen anzeigen zu lassen. Mit der Option -i nummer können Sie das Tool anweisen, die gewünschte Schnittstelle abzuhören. Leider müssen Sie diese Option in diesem Fall in jede Befehlszeile integrieren.

Mit folgender Befehlszeile weisen Sie Tcpdump an, alle Pakete abzugreifen, die an oder von dem Hardware-Glossar: Host 192.168.0.100 kommen:
%tcpdump host 192.168.0.100

Die folgende Zeile erweitert den Befehl um die port-Option, welche besagt, dass wir nur Daten des Hosts sehen möchten, die von oder an den angegebenen Port gehen.
%tcpdump host 192.168.0.100 and port 80

Wie Sie sehen, bietet Tcpdump die Verwendung von booleschen Ausdrücken wie AND und OR. Wir erhalten zudem wie Möglichkeit, Richtungen in Form von SRC (Source, Quelle) und DST (Destination, Ziel) anzugeben. Die folgende Befehlszeile weist Tcpdump an, nur Daten zu sniffen, die von dem angegebenen Host an einen angegebenen Host gehen.

%tcpdump src host 192.168.0.100 and dst host 192.168.0.101

Dasselbe Prinzip lässt sich auch mit Ports anwenden:
%tcpdump src port 80 and dst port 21

Tcpdump snifft demnach nur Pakete, die von Port 80 an Port 21 gehen. Lässt man die Richtungsanweisung weg, geht Tcpdump immer von „src or dst“ aus. Daher ist folgende Befehlszeile äquivalent zur ersten:
%tcpdump src or dst host 192.168.0.100

Wenn Sie ein anderes Hardware-Glossar: Protokoll, als das standardmäßig eingesetzte Hardware-Glossar: TCP verwenden möchten, können Sie dies ebenfalls angeben:
%tcpdump host 192.168.0.100 and udp port 80

Tcpdump fängt nun nur noch Pakete ab, die im Hardware-Glossar: UDP-Modus an oder von dem angegebenen Host über den angegebenen Port gehen. Weitere Protokollangaben sind tcp und icmp. Für den Typ host gibt es folgende Protokollangaben: ip, ip6, arp und ether. Wenn Sie keine Protokolle angeben, geht Tcpdump für den Host immer von ip, arp oder rarp und für den Port von tcp oder udp aus.

Es gibt noch weitere Qualifizierungen, wie z.B. gateway oder proto, welche aber nur für Profis interessant sind. Wenn Sie mehr Informationen dazu haben möchten, besuchen Sie die Entwicklerseite und lesen Sie die Dokumentation (auf Englisch).


Wichtige Optionen

-a
Löst Hardware-Glossar: IP-Adressen in Hostnamen auf.

-c nummer
Fängt nummer viele Pakete ab und endet anschließend.

-e
Zeigt den Hardware-Glossar: Ethernet-Header an.

-F datei
Ließt den Filterausdruck aus der angegebenen Datei, anstatt von der Befehlszeile.

-i nummer
(Siehe oben)
nummer ist die abzuhörende Netzwerkschnittstelle, welche in Windump mit -D und in Unix mit ifconfig eingesehen werden kann.

-l
Weißt Tcpdump an, schon während der Laufzeit Informationen auszugeben, anstatt erst nach Beendigung des Befehls.

-n
Löst keine IP-Adressen in Hostnamen auf.

-N
Unterdrückt die Ausgabe des FQDN (Fully Qualified Domain Name, vollqualifizierter Domänenname) für den Host und nutzt nur den Hostnamen.

-p
Weist Tcpdump an, die Netzwerkschnittstelle nicht in den Promiscuous-Modus zu schalten.

-q
Begrenzt die Informationsausgabe von Tcpdump auf Zeitstempel und Hostnamen.

-r datei
Lässt Tcpdump die angegebene (Sniff-)Datei auszulesen und anzeigen (Siehe -w).
Anschließend sind weitere Operationen mit den darin enthaltenen Informationen möglich.

-s bytes
Tcpdump ließt standardmäßig nur die ersten 68 Bytes aus den Paketen. Mit dieser Option können Sie dies ändern. Bei zu langen Zahlen übersieht Tcpdump möglicherweise einige Pakete.

-S
Weist Tcpdump an, absolute statt relative Sequenzzahlen der Pakete anzugeben. Relativ besagt hierbei den Inkrementalfaktor bezogen zur vorhergehenden Sequenznummer, und absolut schließlich die absolute Sequeznummer.

-t, -tt
Weist Tcpdump an, keinen oder einen unformatierten Zeitstempel anzugeben. Unformatiert heißt die Anzahl der Sekunden seit Beginn der Epoche 01.01.1970.

-v, -vv, -vvv
Je mehr v Sie angeben, desto detaillierter ist die Informationsausgabe von Tcpdump.

-w datei
Speichert die gesnifften Informationen binär in eine angegebene Datei, welche mit der Option -r wieder ausgelesen werden können.

-x
Zeigt das Paket im hexadezimalen Format an (Sedezimal).

-X
Mit dieser Option gibt Tcpdump die Informationen in ein für Menschen lesbares Format aus.


Tipp

Wenn Sie mit Tcpdump eine Datei erzeugt haben, können Sie diese auch mit dem sehr nützlichem Programm „Ethereal“ einsehen, um auch wirklich alle Informationen auslesen zu können. Ethereal erhalten Sie unter http://www.ethereal.com. Die Pcap-Bibliothek muss dazu bereits installiert sein.

Autor: Stefano Albrecht
Datum: 26.05.2005