In diesem Tutorial erfahren Sie, wie Sie mit tcpdump arbeiten . Es ist ein OpenSource-Tool für die Befehlszeile, mit dem das Netzwerk überwacht wird . Wir können es als Paketanalysator verstehen, der das Netzwerk durchläuft, in dem Sie das Programm ausführen. Es wird in Unix-Umgebungen verwendet, obwohl es für Windows eine Variante namens WinDump gibt . Sie können sich für ein Tutorial zu EtherApe interessieren , mit dem Sie den Status unseres Netzwerks grafisch anzeigen können.
Im Tutorial werden wir von Linux aus arbeiten, speziell in Ubuntu 16.04 . Damit das Tool funktioniert, müssen wir es mit hohen Berechtigungen ausführen, mit Ausnahme einiger Optionen, die erforderlich sind.
Wir können tcpdump für verschiedene Aufgaben verwenden, z. B. zum Debuggen unserer Netzwerkanwendungen, zum Lesen der Daten, die von dem Netzwerk, in dem wir uns befinden, zwischen Benutzern gesendet werden usw. Wir werden als nächstes sagen, wie die Syntax lautet:
tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B size] [-c count] [-C file_size] [-E something: secret] [-F file] [-G seconds] [-i interface] [-j tstamptype] [-M secret] [--number] [-Q in | out | inout] [-r Datei] [-s snaplen] [--Zeitstempelgenauigkeit] [--immediate-mode] [-T type] [--version] [-V file] [-w Datei] [-W Dateizahl] [-und Datentyp] [-z Befehl] [-Z Benutzer] [Ausdruck]
Dieses Tool hat eine große Anzahl von Parametern, die wir verwenden können. Hier werden wir einige sehen.
- -A : Drucken Sie die Pakete im ASCII-Code.
- -x : Gibt die Pakete hexadezimal aus.
- -D : Zeigt die verfügbaren Schnittstellen an.
- -c Nummer: Schließt das Programm, wenn die angegebene Anzahl von Paketen erfasst wurde.
- -i Schnittstelle: Das Programm lauscht auf der angegebenen Schnittstelle.
- -I : Versetzt die Schnittstelle in den Überwachungsmodus.
- -p : Versetzt die Schnittstelle nicht in den Promiscuous-Modus.
- -f Datei : Die Ausgabe wird in der angegebenen Datei gespeichert.
- -h : Zeigt die Hilfe zur Verwendung an.
Wenn wir alle verfügbaren Parameter sehen wollen, verwenden wir unter Linux:
man tcpdump
Die Verwendung dieses Befehls ist vollständiger als die Hilfe, die mit den Parametern -h oder –help bereitgestellt wird. In diesem Fall wird nur Folgendes angezeigt :
Sehen wir uns 10 Beispiele für den Einstieg in dieses leistungsstarke Tool an.
+ C STRG + C
Das einfachste Beispiel mit dem Parameter -A . Dazu führen wir aus:
tcpdump -A
Sehen wir uns ein Beispiel mit etwas mehr Inhalt an.
Jetzt filtern wir nach Host und fügen den ausführlichen Modus mit dem Parameter -v hinzu :
sudo tcpdump host 192.168.66.130 -v
Unten ist ein Bild, in dem der vorherige Befehl verwendet wird:
Für das Bild, das ich von einem anderen Computer aus gesendet habe, sehen wir ICMP. Gehen wir zum dritten Beispiel.
In diesem Beispiel werden die Pakete desselben Hosts betrachtet, diesmal nur die Pakete, die mit Port 80 zu tun haben:
sudo tcpdump host 192.168.66.130 und port 80 -v
Wenn wir uns die Aufnahme ansehen, sehen wir etwas Ähnliches wie das Folgende:
Sie können sehen, wie einfach es ist, mit diesem Tool umzugehen. Fahren wir fort.
Wir werden Beispiel 3 verwenden und es modifizieren, wir wollen die Pakete mit Ursprung 192.168.66.130 filtern, die zu Port 80 führen:
sudo tcpdump src host 192.168.66.130 und dst port 80 -v
Wir sehen, dass wir die Bedingung verwendet haben, und damit die beiden Bedingungen erfüllt sind, können wir auch oder verwenden, wenn wir möchten, dass nur eine von ihnen erfüllt wird. Wenn wir uns die Screenshots ansehen, sehen wir eine POST-Anfrage.
Wir wenden uns dem fünften Beispiel zu.
Wir werden Pakete erfassen, die eine Schnittstelle anzeigen:
sudo tcpdump -i ens33
Unten sehen Sie ein Bild der Aufnahme.
Gehen wir zum nächsten.
In diesem Beispiel werden nur die verfügbaren Schnittstellen angezeigt. Dazu führen wir Folgendes aus:
tcpdump -D
In diesem Fall ist es nicht erforderlich, root zu sein.
Lass uns weitermachen
Wir möchten 3 Pakete erfassen, die an Port 1987 gesendet werden. In diesem Fall stoppt das Programm:
sudo tcpdump -c 3 dst port 1987
Das folgende Bild zeigt, dass nur 3 Pakete erfasst werden:
Sehen wir uns ein paar andere Beispiele an.
Wenn wir beispielsweise alle TCP-Verkehrspakete abrufen möchten, die nicht an einen bestimmten Port gerichtet sind, führt Port 80 Folgendes aus:
sudo tcpdump nicht port 80 und tcp
Die Ausgabe ist ähnlich, daher wird in diesem Beispiel nicht erfasst. Gehen wir zum vorletzten Beispiel.
Wir werden 2 Pakete einer bestimmten Schnittstelle erfassen und diese im Hexadezimalformat anzeigen. Dazu müssen wir Folgendes ausführen:
sudo tcpdump -i ens33 -x -c 2
Unten sehen Sie die Ausgabe:
Fahren wir mit dem letzten Beispiel des Tutorials fort.
In diesem Beispiel speichern wir das Capture in einer Datei, um es später zu durchsuchen. Die Erfassung ist auf 3 Pakete begrenzt, und eine Schnittstelle ist angegeben. Daher führen wir Folgendes aus:
sudo tcpdump -w test.pcap -i ens33 -c 3
Sehen wir uns einen Screenshot an:
Wenn wir diese Datei jetzt lesen wollen, müssen wir ausführen:
tcpdump -r test.pcap
Wir können es auf dem folgenden Bild schätzen:
Bisher ist das Tutorial zu tcpdump erschienen, es hat viele Möglichkeiten und viele Optionen. Um zu lernen, wie man gut mit diesem Tool umgeht, ist es am besten, alle seine Eigenschaften nach und nach zu üben und zu entdecken. Vielleicht möchten Sie auch etwas über das Netcat-Tool lesen. Hier ist ein Link zu einem Tutorial mit Beispielen:
Wie benutze ich netcat?