TensorSpark - stock.adobe.com

Netzwerkanalyse mit Tshark, Suricata und Zeek

Tshark ist ein CLI-Tool zur Protokollanalyse und ergänzt Systeme wie Zeek und Suricata. Es liefert detaillierte Netzwerkdaten für Debugging, Sicherheit und Automatisierung.

Die Analyse von Netzwerkverkehr ist ein wesentlicher Bestandteil der IT-Sicherheit. Mit thsark steht ein Open-Source-Tool zur Verfügung, das Administratoren und Sicherheitsexperten tiefergehende Einblicke in Protokolldetails ermöglicht.

thsark gehört zum Lieferumfang von WireShark. WireShark ist ein Open-Source-Netzwerkanalyseprogramm. Es ist für Windows. macOS und Linux verfügbar. Unter anderem ist es bereits in Kali Linux enthalten, wovon wir in diesem Artikel ausgehen. Unter Kali Linux aus kann im Terminal schnell gestartet werden. Schon die Eingabe von tshark reicht, um den Datenverkehr im Netzwerk zu analysieren und direkt im Terminal anzuzeigen.

Tshark
Abbildung 1: Tshark ist ein wertvolles Tool, um Analyse im Netzwerk durchzuführen.

Tshark lässt sich auf diesem Weg auch über SSH-Verbindungen ausführen, um Netzwerkanalysen auch remote durchzuführen. Ursprünglich entwickelt, um verschlüsselte Verbindungen wie TLS zu analysieren, unterstützt thsark zahlreiche weitere Protokolle, darunter DNS, HTTP, SMB, FTP und LDAP. Es arbeitet auf Basis von PCAP-Dateien und extrahiert gezielt relevante Informationen, die bei der Absicherung und Analyse moderner Netzwerke entscheidend sind. Auch bei Penetrationstests und in Active-Directory-Umgebungen zeigt sich die Stärke des Tools.

Packet Capture mit Tshark: Grundlagen und praktische Anwendung

Tshark ermöglicht eine umfassende Erfassung von Netzwerkpaketen direkt über die Kommandozeile. Zunächst wird eine Liste aller verfügbaren Netzwerkadapter mit dem Befehl tshark -D angezeigt.

Netzwerkschnittstellen in Tshark
Abbildung 2: Anzeigen der Netzwerkschnittstellen in Tshark.

Ein Beispiel für die Erfassung von Paketen über einen WLAN-Adapter (Adapter Nummer 15) ist der folgende Befehl:

tshark -i 15 -c 100 -w capture_output.pcap

Hierbei werden 100 Pakete vom Adapter Nummer 15 mitgeschnitten und in der Datei capture_output.pcap gespeichert. Die aufgezeichneten Daten lassen sich anschließend mit dem Befehl tshark -r capture_output.pcap analysieren. Diese Ausgabe enthält Details zu den IP-Adressen, Protokollen, Sequenznummern und Fenstergrößen. Die Möglichkeit, die Paketerfassung und -analyse direkt über die Kommandozeile durchzuführen, bietet eine schnelle und effiziente Alternative zur Nutzung der Wireshark-GUI.

Automatisierung und Filterung mit Tshark: Effiziente Datenextraktion für Analyse und Debugging

Tshark eignet sich hervorragend zur Automatisierung und Filterung von Netzwerkdaten, wodurch sich große Datenmengen effizient verarbeiten lassen. Mit dem Befehl

tshark -i eth0 -c 50 -w filtered_output.pcap 

wird ein Mitschnitt der ersten 50 Pakete erstellt und in einer PCAP-Datei gespeichert. Diese Methode ermöglicht es, gezielt kleine Datenmengen für eine schnelle Analyse zu extrahieren.

Nach dem Mitschnitt lassen sich spezifische Protokolle oder Felder filtern, etwa HTTP-Header oder TCP-Sequenznummern. Mit dem folgenden Befehl wird die PCAP-Datei nach HTTP-Anfragen gefiltert, um gezielte Informationen über Webverkehr zu erhalten:

tshark -r filtered_output.pcap -Y "http.request" -T fields -e http.host -e http.request.uri

Dieses Verfahren bietet eine schnelle Möglichkeit, relevante Netzwerkdaten zu extrahieren und präzise zu analysieren, was besonders bei Debugging oder der Untersuchung von Vorfällen hilfreich ist.

Vielseitige Protokollanalyse für verschiedene Einsatzbereiche

Die Analyse von TLS-Daten ist eine der zentralen Funktionen von thsark. Administratoren können beispielsweise Zertifikate und Cipher Suites prüfen, um Schwachstellen wie unsichere Algorithmen oder abgelaufene Zertifikate aufzudecken. Mit dem Befehl

tshark -filter tls -output tls_analysis.json 

werden Zertifikatsketten, Verschlüsselungsverfahren und weitere Details extrahiert. Solche Analysen helfen, Sicherheitslücken wie veraltete TLS-Versionen zu identifizieren.

Bei einer HTTP-Analyse können übertragene Header, Cookies oder Nutzlasten überprüft werden. Dies ist nützlich, wenn verdächtiger Webverkehr vorliegt. Der Befehl

tshark -input web_traffic.pcap -filter http -output http_details.json 

zeigt detaillierte HTTP-Transaktionen und ermöglicht es, Schwachstellen in Webanwendungen aufzuspüren.

Tshark ermöglicht die Echtzeitüberwachung von Netzwerkverkehr und die Analyse von PCAP-Dateien, wodurch Administratoren und Sicherheitsexperten tiefgehende Einblicke in Netzwerkaktivitäten erhalten. Hier folgen konkrete und unterschiedliche Beispiele, die die Einsatzmöglichkeiten von Tshark in Echtzeit und bei der PCAP-Dateianalyse verdeutlichen.

Echtzeitüberwachung verdächtiger DNS-Aktivitäten

Ein häufiges Angriffsmuster in Netzwerken ist DNS-Tunneling, bei dem Daten über DNS-Abfragen exfiltriert werden. Mit Tshark lassen sich DNS-Aktivitäten in Echtzeit überwachen:

tshark -i eth0 -f "udp port 53" -w suspicious_dns.pcap

Dieser Befehl schneidet alle DNS-Pakete mit und speichert sie in der Datei suspicious_dns.pcap. Nach der Aufzeichnung wird die Datei analysiert:

tshark -r suspicious_dns.pcap -Y "dns.qry.name contains 'malicious'"

Dies zeigt DNS-Anfragen mit verdächtigen Host-Namen, die auf einen Angriff hindeuten könnten.

HTTP-Überwachung und Analyse von Login-Versuchen

Ein Administrator möchte potenzielle Angriffe auf eine Webanwendung überwachen, insbesondere unautorisierte Login-Versuche. Mit folgendem Befehl schneidet Tshark den gesamten HTTP-Traffic in Echtzeit mit:

tshark -i eth0 -Y "http.request" -w http_login_attempts.pcap

Nach Abschluss des Mitschnitts können gezielt POST-Anfragen, die Login-Daten enthalten, untersucht werden:

tshark -r http_login_attempts.pcap -Y "http.request.method == POST" -T fields -e http.host -e http.file_data

Die extrahierten Daten geben Aufschluss über potenziell kompromittierte Konten oder verdächtige IP-Adressen.

SMB-Verkehr in Windows-Umgebungen überwachen

In Windows-Netzwerken ist SMB ein häufiges Ziel für Angreifer, die laterale Bewegungen ausführen oder Dateien exfiltrieren wollen. Mit folgendem Befehl schneidet Tshark SMB-Traffic in Echtzeit mit:

tshark -i eth0 -Y "smb" -w smb_activity.pcap

Nach dem Speichern der PCAP-Datei erfolgt die Analyse auf ungewöhnliche Dateizugriffe:

tshark -r smb_activity.pcap -Y "smb.file contains '.exe'" -T fields -e smb.file

Dies identifiziert schädliche ausführbare Dateien, die über das Netzwerk verteilt werden.

Analyse von verdächtigem SSH-Verkehr

SSH-Brute-Force-Angriffe sind ein häufiges Sicherheitsproblem. Mit Tshark lässt sich der SSH-Verkehr in Echtzeit überwachen und in einer PCAP-Datei speichern:

tshark -i eth0 -f "port 22" -w ssh_attempts.pcap

Anschließend analysiert Tshark die Datei, um wiederholte fehlgeschlagene Login-Versuche zu identifizieren:

tshark -r ssh_attempts.pcap -Y "ssh" -T fields -e ip.src -e ssh.auth.username

Dies hilft, potenziell kompromittierte IP-Adressen zu blockieren und Sicherheitsmaßnahmen zu verschärfen.

LDAP-Überwachung in Active Directory-Umgebungen

Angreifer nutzen häufig LDAP-Abfragen, um Benutzerlisten oder Gruppenrichtlinien in Active Directory zu enumerieren. Tshark kann solche Abfragen in Echtzeit aufzeichnen:

tshark -i eth0 -Y "ldap" -w ldap_queries.pcap

Nach der Erfassung zeigt die Analyse ungewöhnliche Suchfilter oder häufige Abfragen sensibler AD-Objekte:

tshark -r ldap_queries.pcap -Y "ldap.filter" -T fields -e ldap.filter

Dies gibt Administratoren Einblicke in potenziell gefährliche Abfragen.

Echtzeitüberwachung von TLS-Handshakes

Die Überwachung von TLS-Handshakes ist wichtig, um die Sicherheit verschlüsselter Verbindungen zu gewährleisten. Tshark kann diese in Echtzeit erfassen und speichern:

tshark -i eth0 -Y "tls.handshake" -w tls_handshakes.pcap

Die spätere Analyse der PCAP-Datei liefert Informationen über Zertifikate und verwendete Cipher Suites:

tshark -r tls_handshakes.pcap -Y "tls.handshake.type == 1" -T fields -e tls.handshake.extensions_server_name -e tls.handshake.ciphersuite

Dies ermöglicht die Überprüfung, ob unsichere Verschlüsselungsmethoden verwendet werden.

ICMP-Traffic zur Erkennung von Scans und Pings

Angreifer nutzen ICMP, um Netzwerke zu scannen und Hosts zu entdecken. Mit Tshark kann dieser Verkehr in Echtzeit erfasst werden:

tshark -i eth0 -f "icmp" -w icmp_traffic.pcap

Die Analyse der PCAP-Datei identifiziert ungewöhnlich viele Ping-Anfragen von derselben Quelle:

tshark -r icmp_traffic.pcap -Y "icmp.type == 8" -T fields -e ip.src -e ip.dst

Malware-Analyse mit Tshark: Echtzeit und PCAP-Analyse in der Praxis

Tshark ist auch ein leistungsstarkes Tool für die Untersuchung von Malware-Traffic, das sowohl Echtzeitdaten erfasst als auch PCAP-Dateien detailliert analysiert. In einem Anwendungsfall lässt sich das Tool zum Beispiel nutzen, um Shellcode einer Cobalt-Strike-Infektion aus einer PCAP-Datei zu extrahieren. Die Kombination aus Echtzeit-Mitschnitt und nachträglicher Filterung macht Tshark zu einem wertvollen Werkzeug für Sicherheitsanalysen.

Bei der Untersuchung eines potenziell infizierten Netzwerks ist es entscheidend, den Netzwerkverkehr direkt zu überwachen. Mit folgendem Befehl wird der gesamte HTTP-Traffic aufgezeichnet:

tshark -i eth0 -Y "http.request" -w malware_capture.pcap

Hierbei wird der Datenstrom in Echtzeit erfasst und in einer PCAP-Datei gespeichert. Anschließend kann man den Mitschnitt detailliert analysieren, um verdächtige Verbindungen zu identifizieren. Eine häufige Aufgabe bei der Malware-Analyse ist das Filtern relevanter Datenpakete aus einer großen Anzahl an Netzwerkpaketen. Tshark bietet die Möglichkeit, spezifische Inhalte wie Shellcode zu extrahieren. In diesem Fall kann die PCAP-Datei eine HTTP-Antwort mit Shellcode im Feld http.file_data enthalten Der folgende Befehl filtert die Pakete mit dem entsprechenden Payload:

tshark -r malware_capture.pcap -Y "http.file_data contains xfc" -T fields -e http.file_data

Der extrahierte Shellcode wird vollständig angezeigt und kann anschließend mit weiteren Tools, wie einem Base64-Decoder oder einem speziellen Cobalt-Strike-Analysator, entschlüsselt werden.

Malware-Angriffe wie Cobalt-Strike-Infektionen nutzen oft verschlüsselte Verbindungen zu Command-and-Control-Servern (C&C-Server). Tshark hilft dabei, diese Verbindungen zu identifizieren. Nach dem Mitschnitt des TLS-Verkehrs wird eine PCAP-Datei analysiert:

tshark -r malware_capture.pcap -Y "tls" -T fields -e tls.handshake.extensions_server_name

Der Befehl liefert die Servernamen, mit denen die infizierte Maschine kommuniziert, und hilft so, die C&C-Infrastruktur zu identifizieren. Mithilfe von weiteren Werkzeugen kann die Payload analysiert und die Malware genauer untersucht werden.

Ein wichtiger Bestandteil der Analyse ist dabei auch die Identifikation spezifischer HTTP-Anfragen, die auf die Malware hinweisen. Um gezielt nach bestimmten URIs zu suchen, wird folgender Filter genutzt:

tshark -r malware_capture.pcap -Y "http.request.uri contains 'systembc'"

Dieser Filter zeigt alle Anfragen, die den URI systembc enthalten, und ermöglicht die detaillierte Untersuchung des Malware-Verkehrs.

Wenn die Analyse spezifischer Felder erforderlich ist, etwa um die vollständige Payload einer HTTP-Antwort zu extrahieren, nutzt man Tshark in Kombination mit Optionen wie -T fields:

tshark -r malware_capture.pcap -Y "http.file_data" -T fields -e http.file_data

Das Ergebnis zeigt die gesamte Payload, die anschließend entschlüsselt oder mit anderen Analysewerkzeugen weiter untersucht werden kann.

Zusammenarbeit von Tshark mit Suricata

Die Kombination von Tshark mit Zeek und Suricata bietet eine leistungsstarke Infrastruktur zur Netzwerküberwachung und Sicherheitsanalyse. Suricata dient als Intrusion Detection System (IDS), das verdächtigen Datenverkehr in Echtzeit erkennt, während Zeek detaillierte Log-Daten zu Netzwerkaktivitäten generiert. Tshark ergänzt diese Tools, indem es spezifische Protokolldetails und tiefergehende Analysen bereitstellt.

Suricata ist eine Open-Source-Lösung zur Netzwerksicherheitsüberwachung, die sowohl als IDS als auch als Intrusion Prevention System (IPS) betrieben werden kann. Im IDS-Modus überwacht Suricata den Netzwerkverkehr passiv, erkennt verdächtige Aktivitäten und erstellt detaillierte Protokolle. Der IPS-Modus hingegen blockiert aktiv bösartige Pakete, indem er den gesamten Verkehr durch vordefinierte Regeln filtert.

Ein typisches Einsatzszenario ist die Überwachung eines Netzwerksegments, um potenzielle Angriffe wie Port-Scans oder Exploits zu erkennen. Suricata arbeitet auf Basis eines Regelwerks, das entweder mitgeliefert wird oder individuell angepasst werden kann. So lässt sich beispielsweise ein spezifischer Regelabgleich durchführen, um verdächtigen HTTP-Traffic zu identifizieren und automatisch Warnmeldungen zu generieren. Suricata identifiziert dabei zum Beispiel eine potenziell bösartige Verbindung zu einer verdächtigen IP-Adresse und erstellt eine PCAP-Datei. Tshark analysiert diese Datei mit dem Befehl:

tshark -r suricata_alert.pcap -Y "tls" -T fields -e tls.handshake.extensions_server_name -e tls.handshake.ciphersuite  

So können Administratoren nachvollziehen, welche URLs aufgerufen und welche Daten übermittelt wurden. Suricata erstellt umfassende Log-Dateien, die Informationen zu erkannten Bedrohungen enthalten. Mit Tshark lassen sich diese Log-Daten weiter verfeinern, um gezielt nach spezifischen Bedrohungen oder Mustern zu suchen. Ein Beispiel ist die Analyse von TLS-Verbindungen, die von Suricata als verdächtig markiert wurden:

tshark -r suricata_tls.pcap -Y "tls.handshake.extensions_server_name"

Dieser Befehl identifiziert die Servernamen, mit denen die betroffene Maschine kommuniziert, und hilft, potenzielle C&C-Server zu entdecken. Ein weiteres Szenario ist die Erkennung und Analyse von Malware-Traffic. Suricata erkennt beispielsweise Datenexfiltration durch DNS-Tunneling und speichert den betreffenden Verkehr in einer PCAP-Datei. Tshark kann anschließend diese Datei analysieren, um verdächtige DNS-Abfragen zu identifizieren:

tshark -r dns_tunneling.pcap -Y "dns.qry.name contains 'malicious'"

Dies ermöglicht eine tiefergehende Untersuchung und liefert wertvolle Einblicke in die genutzten Techniken der Angreifer. Sinnvoll ist der Einsatz von Suricata zum Beispiel mit der Open Source-Firewall OPNsense. Wir haben uns bereits in einem eigenen Beitrag damit auseinandergesetzt, wie OPNsense mit Zenarmor zu einer Next-Generation-Firewall ausgebaut werden kann. Auf dem gleichen Weg lässt sich damit ein IDS/IPS auf Basis von Suricata realisieren. Die Einstellungen dazu sind in der Weboberfläche von OPNsense bei Dienste/Einbruchserkennung/Verwaltung zu finden. Das IDS/IPS von OPNsense basiert auf Suricata.

OPNsense und Suricata
Abbildung 3: Suricata lässt sich am besten mit OPNsense integrieren, auch zusammen mit Zenarmor.

Tshark mit Zeek nutzen

Zeek erstellt wiederum umfassende Log-Dateien, die Anomalien im Netzwerkverkehr dokumentieren, etwa verdächtige HTTP-Requests. Tshark kann diese Logs weiterverarbeiten, um tiefer in die Daten einzutauchen. Beispielsweise lassen sich spezifische HTTP-Anfragen aus einer PCAP-Datei wie folgt analysieren:

tshark -r zeek_http.pcap -Y "http.request" -T fields -e http.host -e http.request.uri  

Diese Methode zeigt, welche URLs aufgerufen wurden und von welchen Hosts die Anfragen stammen. Durch die Zusammenarbeit von Tshark, Zeek und Suricata entsteht ein integrierter Workflow, der sowohl Breite als auch Tiefe der Netzwerküberwachung abdeckt und eine umfassende Sicherheitsanalyse ermöglicht.

Erfahren Sie mehr über Netzwerk-Monitoring und -Analyse