Netzwerk-Capture mit Open Source Tools Netzwerke mit tcpdump, ngrep und WireShark sniffen

Von Thomas Joos Lesedauer: 4 min |

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.

Oft ist das umfassende Analyse-Werkzeug WireShark überdimensioniert, wenn es um die Erfassung von Netzwerkdaten geht. Besser geeignet ist hier oft tcpdumb.
Oft ist das umfassende Analyse-Werkzeug WireShark überdimensioniert, wenn es um die Erfassung von Netzwerkdaten geht. Besser geeignet ist hier oft tcpdumb.
(Bild: The Tcpdump Group. Designed by Luis MartinGarcia)

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.

Bildergalerie

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.1sudo 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:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
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)