Wireshark: Auf der Konsole automatisieren und nachbearbeiten
Der Netzwerk-Sniffer Wireshark erlaubt eine Automatisierung im Rahmen von Scripting-Jobs und eine Bearbeitung aus der Eingabeaufforderung heraus.
Wireshark ist das Standardwerkzeug für die Netzwerkanalyse für Administratoren, Netzwerktechniker und Security-Spezialisten. Viele Zusatzprogramme bauen auf die Technik von Wireshark auf und lesen beispielsweise die so ermittelten Daten zur weiteren Auswertung aus. Es muss also eine Möglichkeit geben, sich dem Programm auch von der Eingabeaufforderung her zu nähern – wir zeigen, wie das funktioniert.
Welche Kommandozeilenwerkzeuge gibt es?
Sofern Sie schon öfters mit Wireshark gearbeitet haben, dürften Sie wissen, dass Sie die Masse an Schaltern und Optionen für eine Protokollierung von Netzwerktransfer am ehesten über die grafische Schnittstelle bedienen werden. Die Kommandozeilentools editcap und mergecap eignen sich indes hervorragend dazu, bereits mitgeschnittene Protokolldateien zu bearbeiten und zu verbinden. Wer dennoch eine Protokollierung des Netzwerks aus der Konsole heraus starten will, bedient sich dazu des Werkzeugs tshark, quasi des Bruders von Wireshark.
Weitere Artikel zu Wireshark:
Wireshark: Netzwerk-Protokolle mit Dissektoren richtig interpretieren
Wireshark: Anwendung von Anzeigefiltern
Wireshark: So schreiben Sie Filter für Netzwerk-Traffic
Wireshark: Mit Farbregeln wichtige Datenpakete hervorheben
Wireshark: Gerätekommunikation analysieren. Grafische Auswertungen
TShark findet sich im Programmverzeichnis von Wireshark. Windows-Benutzer sollten abhängig von der Windows-Version (32-Bit oder 64-Bit) in dem jeweiligen Programmverzeichnis suchen und dieses über die PowerShell oder die Eingabeaufforderung (cmd.exe) öffnen. Wer regelmäßig die Programme aus der Konsole heraus aufruft, sollte die Path-Angaben entsprechend anpassen.
TShark ist wie Wireshark ein Netzwerk-Protokoll-Analyseprogramm mit den Möglichkeiten, einen Mitschnitt des aktuellen Netzwerkverkehrs anzulegen oder in bereits protokollierten Dump-Dateien nach gewünschten Paketen zu fahnden. TShark speichert und liest Dateien im üblichen pcap-Format, das auch andere Programme, beispielsweise tcpdump und natürlich auch Wireshark, nutzen.
Der einfachste Aufruf von TShark mit einer Protokollierung von zehn Sekunden für ein Netzwerk mit Namen „EVIL“ und einer Ausgabedatei auf einem Laufwerk H: wäre:
tshark -i "EVIL" -a duration:10 -w h:\ws\test.pcap
Mit dem Schalter i identifiziert der Administrator das gewünschte Interface. Hierbei handelt es sich um den Namen, den der IT-Profi dafür vergeben hat. Wurden keine manuellen Namen eingegeben, so wird das erste Netzwerk auf einem Windows-basierten PC höchstwahrscheinlich „LAN-Verbindung“ heißen. Ohne die Angabe eines Interfaces nutzt TShark das erstgenannte Interface in der Reihenfolge, wie die Interfaces dem Betriebssystem bekannt wurden. Eine Liste aller Interfaces erhalten Sie durch Eingabe von tshark –D.
Eine Auflistung vorhandener Interfaces gibt tshark mit dem Schalter –D aus.
Der Schalter a definiert die „Autostop Condition“, in unserem Beispiel eine zeitliche Begrenzung auf zehn Sekunden. Alternativ könnte der Anwender auch filesize unter Angabe des Werts in der Dimension KByte nutzen. Die Maximalgröße einer TShark-pcap-Datei liegt jedoch bei 2 GByte. Bei der Ausgabe von Dateien können Administratoren allerdings auch mit files die Gesamtzahl der anzulegenden Dump-Dateien numerisch beziffern.
Der Schalter w sorgt dafür, dass TShark in eine einzelne, benannte Datei einen Dump anlegt anstelle des typischen „Multiple Files“-Modus, bei dem die Software so lange nach Uhrzeit und Datumsstempeln benannte Dateien erzeugt, bis die Festplatte überläuft.
Hier die Liste aller Parameter für TShark:
tshark [ -2 ] [ -a <capture autostop condition> ] ... [ -b <capture ring buffer option>] ... [ -B <capture buffer size> ] [ -c <capture packet count> ] [ -C <configuration profile> ] [ -d <layer type>==<selector>,<decode-as protocol> ] [ -D ] [ -e <field> ] [ -E <field print option> ] [ -f <capture filter> ] [ -F <file format> ] [ -g ] [ -h ] [ -H <input hosts file> ] [ -i <capture interface>|- ] [ -I ] [ -K <keytab> ] [ -l ] [ -L ] [ -n ] [ -N <name resolving flags> ] [ -o <preference setting> ] ... [ -O <protocols> ] [ -p ] [ -P ] [ -q ] [ -Q ] [ -r <infile> ] [ -R <Read filter> ] [ -s <capture snaplen> ] [ -S <separator> ] [ -t a|ad|adoy|d|dd|e|r|u|ud|udoy ] [ -T fields|pdml|ps|psml|text ] [ -u <seconds type>] [ -v ] [ -V ] [ -w <outfile>|- ] [ -W <file format option>] [ -x ] [ -X <eXtension option>] [ -y <capture link type> ] [ -Y <displaY filter> ] [ -z <statistics> ] [ --capture-comment <comment> ] [ <capture filter> ]
Die englischsprachige Dokumentation zu TShark ist im Internet auf der Homepage von Wireshark zu finden unter https://www.wireshark.org/docs/man-pages/tshark.html.
Ein weiteres Beispiel für den Aufruf von TShark wäre:
tshark -i "LOKAL" –f "tcp" a duration:10 -w h:\ws\test3.pcap
Der Schalter f definiert einen Capture-Filter, der durchaus komplexer sein kann als nur die Beschränkung auf ein einziges Protokoll. Um eine Beschränkung auf einen IP-Knoten im Netzwerk zu erlangen, empfiehlt sich die Verwendung des Schalters R (Read Filter). Dieser steht wiederum nicht für den Live-Capture zur Verfügung, sondern nur bei der nachträglichen Analyse von PCAP-Dateien.
Auch eine Ausgabe der statistischen Informationen von Wireshark ist mit tshark auf der Kommandozeile möglich.
Einer Steuerung von TShark über einen Scheduler, beispielsweise den Aufgabenplaner von Microsoft Windows, steht nicht viel im Wege. Eine regelmäßige Analyse des Netzwerkverkehrs mit teilautomatisierter Auswertung ist schon mit den Bordmitteln von Wireshark möglich. Soll beispielsweise ein Skriptbefehl die Konversationsstatistik automatisch in einer Datei ablegen, könnte die Syntax wie folgt lauten:
tshark -r h:\ws\test.pcapng -Q -z conv,ip > test.txt
Der Schalter r öffnet eine bereits eingelesene Datei, der Schalter Q sorgt für eine Reduktion der Ausgabe auf tatsächliche Fehler (üblicherweise also nichts). Mit z wird ein Filter, hier die Konversation auf IP-Basis, ausgegeben, und die Ausgabe wird direkt in die Datei test.txt umgelenkt.
Große Dateien aufteilen
Je größer die Dump-Datei, desto schwerfälliger die Reaktion von Wireshark – das ist eine recht einfache Formel. Das Tempo ist natürlich stets von der Rechenleistung der Workstation abhängig, dennoch empfiehlt es sich, die Dateien nicht zu groß werden zu lassen. Das Tool editcap dient dem Benutzer dazu, große Dateien in eine Gruppe kleinerer Dateien mit ähnlichem Namen aufzuspalten. Das Hilfsprogramm hierfür entdeckt der Administrator ebenfalls im Programmverzeichnis von Wireshark unter dem Namen editcap.
Mithilfe von editcap zerschneidet der Administrator größere Dump-Dateien in kleinere Portionen.
Möchten Sie beispielsweise eine einzelne, große Dump-Datei in mehrere 1000er-„Pakethäppchen“ zerlegen, so lautet das exemplarische Kommando:
editcap –c 1000 h:\ws\demo.pcapng h:\ws\demo1000-set.pcapng
Je nach Umfang und Größe erzeugt das Programm nun eine größere Anzahl von Dateien mit fortlaufendem Namen und Zeitstempel. Beispielsweise ist die Datei
demo1000-set_00058_20150304200724.pcapng
der achtundfünfzigste Teil eines Sets vom 4. März 2015, beginnend um 20:07:24 Uhr.
Neben der Teilung nach Anzahl von Paketen könnte eine zeitliche Aufteilung möglicherweise spannender oder sinnvoller sein. Dies gelingt mithilfe des Schalters i. Möchten Sie beispielsweise eine längere Dump-Datei in Stücke zu je fünf Minuten aufteilen, so lautet die Syntax:
editcap –i 300 h:\ws\demo.pcapng h:\ws\z300set.pcapng
Zusammenführung
Man konnte es schon ahnen: Wenn es ein Kommando für das Teilen von Dump-Dateien gibt, dann lassen sich verschiedene Mitschnitte bestimmt auch verbinden. Hierfür kommt das Tool mergecap aus dem Wireshark-Programmverzeichnis zum Einsatz.
Sollen beispielsweise die im vorherigen Abschnitt aufgeteilten z300set-Dateien wieder zu einer einzelnen, großen Datei werden, so lautet der Befehl:
mergecap –w h:\ws\1datei.pcapng h:\ws\z300set*.pcapng
Dem aufmerksamen Betrachter wird kaum entgehen, dass die Gesamtgröße der zusammengeführten Datei kleiner ausfällt als die Summe aller Einzeldateien. Das liegt nicht etwa daran, dass Informationen aus dem Dump fehlen, sondern daran, dass die Kopfzeilen nur einmal in der Datei zu finden sind.
Größe ermitteln
Das Kommando capinfos gibt eine Übersicht aller wichtigen Protokollierungsinformationen aus.
Wer nur schnell feststellen möchte, was sich in einer Dump-Datei befindet, kann dies ebenfalls direkt aus der Eingabeaufforderung heraus erledigen, und zwar mit dem Befehl capinfos. Einfach beispielsweise
capinfos h:\ws\demo.pcapng
eingeben, und das kleine Programm zeigt an, wie groß die Dump-Datei in MByte ist, wie lang der Mitschnitt in Sekunden beziehungsweise in Zeitwerten war und wie hoch die durchschnittliche Paketdichte ausfällt.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+ und Facebook!