Netzwerk-Capture mit Open Source Tools Netzwerke mit tcpdump, ngrep und WireShark sniffen
Anbieter zum Thema
Mit tcpdump ist es möglich, Netzwerkdaten mitzuschneiden und die Mitschnitte mit WireShark zu untersuchen. Das macht die Untersuchung einfache und schnell. Alternativ zu tcpdump empfiehlt sich der Sniffer ngrep.

Es ist in vielen Fällen sinnvoll, Netzwerkpakete nicht mit WireShark zu erfassen, sondern mit tcpdump. tcpdump ist ein Netzwerk-Sniffer, der in Linux zum Mitschneiden des Netzwerkverkehrs genutzt werden kann. So ist keine Installation von WireShark auf dem Capture-Client nötig. Die Capture-Dateien lassen sich dann wiederum mit Wireshark auf einem anderen Rechner analysieren.
TCP, UDP-, und ICMP-Dateien mitschneiden und analysiseren
Der Sniffer kann TCP-, UDP-, und ICMP-Pakete mitschneiden und die dabei erstellten Daten in einer Datei speichern, die sich mit Wireshark analysieren lässt. Das ist eine der Stärken von tcpdump. Das Mitschneiden erfolgt im Terminal, die Analyse kann aber mit der grafischen Oberfläche erfolgen. tcpdump bietet zahlreiche Optionen, die aber in den meisten Fällen nur optional sind.
Viele Sicherheitsexperten empfehlen das Mitschneiden von Netzwerkpaketen mit tcpdump anstatt mit WireShark, da hier die Anzahl an Codezeilen nicht so groß ist und daher weniger Sicherheitslücken zu befürchten sind. Zudem ist das schlanke Command-Line-Tool sehr effizient und schnell und besonders für schnelle Überblick-Scans geeignet, während sich das umfassende, grafische WireShark eher für sehr komplexe Scans eignet. Zum Auswerten der Scans ist WireShark dagegen immer ideal. Wenn Admins zum Beispiel Remote-Erfassungen durchführen wollen oder keine Möglichkeit besteht, Netzwerkdaten mit der GUI zu erfassen, kann tcpdump ebenfalls das richtige Werkzeug sein. tcpdump arbeitet zwar mit WireShark zusammen, allerdings gehört das Tool nicht zur WireShark.
Für den Einsatz von tcpdump sollte sichergestellt sein, dass die neuste verfügbare Version installiert ist. Die Version von tcpdump kann mit dem folgenden Befehl überprüft werden:
tcpdump –version
Die Installation von tcpdump kann auch über die Standardquellen in den meisten Linux-Distributionen erfolgen. Auf Linux-Servern erfolgt die Installation mit:
sudo apt install tcpdump
Der Betrieb von tcpdum und das Mitscheiden von Paketen erfordert Root-Rechte, das heißt der Start erfolgt mit „sudo“.
tcpdump mit WireShark in der Praxis
Der Einsatz der verschiedenen Optionen von tcpdump ist in den meisten Fällen nicht nötig. Eigentlich ist nur wichtig, dass die Netzwerkschnittstelle mit angegeben wird. Über die Optionen lässt sich bei Bedarf dann auch festlegen, wie viele Paketen und Daten das Tool aufzeichnen soll. Auch die Ausgabe lässt sich mit Optionen steuern. Zudem ist es möglich, die Mitschnitte zu filtern. Im ersten Schritt kann angezeigt werden, welche Netzwerkschnittstellen tcpdump im System gefunden hat. Das erfolgt mit:
sudo tcpdump -D
Alternativ kann dazu „tcpdump --list-interfaces“ genutzt werden. Scanvorgänge lassen sich danach mit
Sudo tcpdump -i <Schnittstelle>
starten. Um sicher alle Daten mitzuschneiden, kann tcpdump mit der Option „-s 0“ gestartet werden. Sollen nur bestimmte Daten mitgeschnitten werden, zum Beispiel zu einem bestimmten Port, erfolgt diese Einschrändkung zum Beispiel mit:
sudo tcpdump -i eth0 -s 0 -w output.dump tcp port 80
Es ist auch möglich, nur eine bestimmte Anzahl an Paketen mitzuschneiden. Der folgende Befehl limitiert die Pakete auf 6:
sudo tcpdump -i eth0 -c 6
Dieser Befehl lässt sich auch mit der Option zum Scannen von Netzwerkpaketen über das Internet zu einem bestimmten Host ergänzen:
sudo tcpdump -n host 192.168.1.1 -c 5
Das Speichern der Sniffer-Daten in einer Datei kann zum Beispiel mit der folgenden Option erfolgen:
sudo tcpdump -i eth0 -q -w output.dump
Die erstellte Datei lässt sich mit WireShark öffnen. Die generelle Vorgehensweise zum Erstellen von Dump-Dateien ist sehr einfach und die spätere Analyse mit WireShark unterscheidet sich nicht von den Möglichkeiten, die WireShark für selbst aufgezeichnete Daten bietet. Es ist aber auch möglich, die Dump-Dateien mit tcpdump selbst anzuzeigen. Dazu kann zum Beispiel der folgende Befehl zum Einsatz kommen:
sudo tcpdump -r output.dump
Es ist parallel möglich, nur Netzwerkpakete von einem Port mitzuschneiden. Der Befehl dazu lautet:
sudo tcpdump -n port 22
Sinnvoll kann es auch sein, nur ausgehenden Netzwerkverkehr oder nur den eingehenden Netzwerkverkehr von bestimmten IP-Adressen mitzuschneiden. Dazu kommen die folgenden beiden Befehle zum Einsatz:
sudo tcpdump src 192.168.1.1
sudo tcpdump dst 192.168.1.1
Soll die Filterung noch nach einem bestimmten Protokoll erfolgen, sieht der Befehl folgendermaßen aus:
sudo tcpdump -n udp
Netzwerkpakete mit ngprep sniffern
Neben tcpdump lassen sich Netzwerkpakete auch mit ngprep sniffern und analysieren. Die Installation auf Debian-, und Ubuntu-Systemen erfolgt mit:
sudo apt-get install ngrep
ngrep kann Daten der Protokolle IPv4/IPv6, TCP, UDP, ICMP v4/v6 und IGMP mitschneiden. Das Tool erkennt die verschiedenen Protokolle und kann die dazugehörigen Daten mitsniffern. Die Syntax des Tools lautet:
ngrep <options> pattern/expression <filter>
Ein Vorteil von ngrep besteht darin, dass das Tool mit kurzen Befehlen sofort beginnt, den Netzwerkverkehr mitzuschneiden und die Daten auf dem Bildschirm anzuzeigen. Mit „sudo ngrep“ beginnt das Tool sofort mit der Aufzeichnung und Anzeige. Der Befehl schneidet alle Netzwerkpakete auf allen Schnittstellen mit. Eine Liste der einzelnen Schnittstellen zeigt der folgende Befehl an:
sudo ngrep -d [Tab] [Tab]
Der Befehl wird nicht mit Enter ausgelöst, sondern durch zweimal betätigen der Tabulator-Taste. Um die mitgeschnittenen Pakete auch nach bestimmten Inhalten zu durchsuchen, kann der folgende Befehl genutzt werden:
sudo ngrep -q 'HTTP'
(ID:49685432)