Zum Hauptinhalt springen
ISKRA Protect
← Zurück zum Blog

Security Education

Author: Irina Yasinski

Netzwerkverkehr aufzeichnen und analysieren

Als Security Education Lead bei ISKRA Protect verwandle ich technische Konzepte in praktische Übungen. Dieses Lab habe ich für meine Schüler entwickelt, damit sie Netzwerkverkehr praktisch untersuchen können: aufzeichnen, analysieren und verstehen, was die Pakete tatsächlich aussagen.

Jetzt teile ich es mit euch. Zwei Terminals, ein paar Tools und etwas Neugier. Los geht’s.

Was wir untersuchen werden

Diese Übung führt in die Aufzeichnung und Analyse von Netzwerkpaketen unter Debian ein. Wir verwenden tcpdump zum Aufzeichnen des Traffics, TShark zur Analyse über die Kommandozeile und Wireshark zur visuellen Untersuchung.

Der Schwerpunkt liegt auf:

  • Beobachtung von konventionellem DNS und unverschlüsseltem HTTP-Traffic.
  • Verständnis von Aufbau und Inhalt von Capture-Dateien.
  • Erkennen von IP-Adressen, DNS-Anfragenamen und HTTP-Request-Details.
  • Umschreiben von IP-Adressen in einer Arbeitskopie.
  • Untersuchung von Informationen über Capture-Dateien.

Diese Fähigkeiten bilden eine Grundlage für Incident Response, Netzwerk-Fehlersuche und weiterführende eigene Analyseskripte.

Führe die Übung auf deinem eigenen Lab-System oder in einer ausdrücklich autorisierten Umgebung durch. Erzeuge normalen Test-Traffic und beschränke den Capture auf die Übung.

Schritt 1: Tools vorbereiten

Für die Übung benötigen wir:

  • tcpdump
  • TShark
  • Wireshark
  • tcprewrite aus dem tcpreplay-Paket
  • curl
  • dig
  • capinfos aus der Wireshark-Tool-Suite

Unter Debian wird dig über das Paket dnsutils bereitgestellt. Ob es bereits vorhanden ist, hängt von der Installation des Systems ab.

Schritt 2: Netzwerkinterface bestimmen

Zeige die verfügbaren Netzwerkinterfaces an:

ip a

Für diese Übung verwende ich enp0s3. Ersetze diesen Namen in den folgenden Befehlen durch das Interface, über das dein Test-Traffic läuft.

Ein VPN oder ein lokaler DNS-Resolver kann beeinflussen, wo die Pakete sichtbar sind. Bleibt ein Capture leer, prüfe zuerst den tatsächlichen Traffic-Pfad.

Schritt 3: DNS-Traffic aufzeichnen

Starte die Aufzeichnung in Terminal 1:

sudo tcpdump -i enp0s3 port 53 -w dns_test.pcap

Erzeuge in Terminal 2 DNS-Anfragen:

dig debian.org
dig google.com
dig openai.com

Kehre zu Terminal 1 zurück und beende die Aufzeichnung mit Ctrl + C.

Der Filter wählt Traffic über Port 53 aus. Die Übung behandelt konventionelles DNS über UDP oder TCP. Verschlüsseltes DNS über andere Ports wird von diesem Filter nicht erfasst.

Je nach Resolver-Konfiguration können Anfragen an einen lokalen Resolver oder Upstream-Traffic sichtbar sein. Auch gecachte Antworten können beeinflussen, was in der Aufzeichnung erscheint.

Schritt 4: HTTP-Traffic aufzeichnen

In Terminal 1:

sudo tcpdump -i enp0s3 port 80 -w http_test.pcap

In Terminal 2:

curl neverssl.com

Beende die Aufzeichnung mit Ctrl + C.

Ich habe neverssl.com gewählt, weil die Seite einen unkomplizierten HTTP-Endpunkt bereitstellt, ohne die Anfrage automatisch auf HTTPS umzuleiten.

In einem erfolgreichen Capture können wir unter anderem Request-Methode, Host-Header, Request-Pfad und Response-Inhalte untersuchen.

Ein HTTPS-Capture enthält weiterhin nützliche Netzwerkmetadaten, die HTTP-Header und der Body sind jedoch normalerweise durch TLS geschützt.

Schritt 5: IP-Adressen in einer Arbeitskopie umschreiben

Aufgezeichneter Traffic kann identifizierende Informationen enthalten. Bevor eine Aufzeichnung weitergegeben wird, sollte geprüft werden, welche Informationen sie tatsächlich enthält.

Für diese Demonstration verwende ich tcprewrite, um IPv4-Adressen in einer Kopie der DNS-Aufzeichnung zu verändern:

sudo tcprewrite --infile=dns_test.pcap --outfile=anon_dns.pcap \
  --srcipmap=0.0.0.0/0:192.0.2.1 --dstipmap=0.0.0.0/0:198.51.100.1 \
  --fixcsum

Der Befehl schreibt Quell- und Ziel-IPv4-Adressen anhand der angegebenen Mappings um. --fixcsum berechnet die relevanten Prüfsummen anschließend neu.

Dieses breite Mapping demonstriert das Umschreiben von Headern. Da Quell- und Zieladressen getrennt umgeschrieben werden, können die ursprünglichen Beziehungen zwischen Hosts und die Richtung eines Austauschs verschleiert werden.

Dasselbe Verfahren kann auf die HTTP-Aufzeichnung angewendet werden.

Der Dateiname anon_dns.pcap ist lediglich eine Bezeichnung. Er bedeutet nicht, dass die Aufzeichnung vollständig anonymisiert ist. DNS-Namen, HTTP-Header, Payload-Inhalte, MAC-Adressen und IPv6-Adressen müssen separat berücksichtigt werden.

Bewahre die Originalaufzeichnungen auf und dokumentiere Änderungen an den Arbeitskopien.

Schritt 6: DNS mit TShark analysieren

Zeige die DNS-Pakete an:

tshark -r anon_dns.pcap -Y "dns"

-r liest die gespeicherte Aufzeichnung. -Y wendet einen Display-Filter an, sodass TShark als DNS erkannte Pakete anzeigt.

Suche nach den abgefragten Namen, Query-Typen und Antworten. Verfolge nach Möglichkeit eine Anfrage und die zugehörige Antwort.

Behalte dabei den vorherigen Rewrite-Schritt im Hinterkopf: Die angezeigten IP-Adressen wurden verändert und die ursprünglichen Host-Beziehungen können dadurch verschleiert sein.

Schritt 7: Aufzeichnung in Wireshark untersuchen

Öffne die DNS-Aufzeichnung:

wireshark anon_dns.pcap

Wähle ein Paket aus und untersuche Paketliste, dekodierte Protokollfelder und Rohdaten.

Öffne den DNS-Bereich und vergleiche eine Anfrage mit ihrer Antwort.

Wichtig ist die Unterscheidung: Ein Capture-Filter bestimmt, was aufgezeichnet wird; ein Display-Filter bestimmt, was aus einer vorhandenen Aufzeichnung angezeigt wird.

Schritt 8: Informationen über Capture-Dateien untersuchen

Bevor du mit mehreren Aufzeichnungen arbeitest:

capinfos anon*

Die Shell erweitert anon* auf passende Dateinamen im aktuellen Verzeichnis. Capinfos zeigt anschließend Informationen zu diesen Capture-Dateien an, beispielsweise Format, Paketanzahl und Aufzeichnungszeiten.

Das ist hilfreich, um vor einer weiteren Analyse zu prüfen, was tatsächlich aufgezeichnet wurde.

Capinfos untersucht Dateien; es führt sie nicht zu einer neuen Aufzeichnung zusammen.

Schritt 9: Ein kleines Extra von Irina

Pakete erzählen Geschichten. Manchmal möchte ich die rohe Version sehen: Hex, ASCII und keinen Platz für einen gewöhnlichen unverschlüsselten Request, sich zu verstecken.

Mein ursprünglicher Capture-Befehl lautet:

sudo tcpdump -w anon_http.pcap -nn -X

Die Optionen bedeuten:

  • -w anon_http.pcap speichert Pakete in einer Capture-Datei.
  • -nn hält Adressen und Ports bei der Ausgabe numerisch.
  • -X fordert bei der Dekodierung eine Hex- und ASCII-Darstellung an.

Mit -w schreibt tcpdump die Pakete normalerweise in die Datei, anstatt die dekodierten Inhalte anzuzeigen. Im nächsten Befehl lesen wir die gespeicherte Aufzeichnung wieder ein.

Dieser Befehl enthält weder ein explizites Interface noch einen Capture-Filter. Tcpdump wählt automatisch ein Interface aus, und die Aufzeichnung kann Traffic enthalten, der über HTTP hinausgeht. Verwende ihn innerhalb deines autorisierten Labs und prüfe, welches Interface tcpdump meldet.

Auch der Dateiname anonymisiert die aufgezeichneten Daten nicht.

Beende die Aufzeichnung mit Ctrl + C und lies sie anschließend ein:

tcpdump -r anon_http.pcap -nn -X

-r bedeutet „read“. Jetzt liefert -X die Hex- und ASCII-Darstellung der gespeicherten Pakete.

Stell es dir wie einen Röntgenblick auf Pakete vor: Klartext kann lesbar werden, verschlüsselte Inhalte bleiben verschlüsselt.

Erst aufzeichnen, dann untersuchen. Dein zukünftiges Ich wird die gespeicherte Datei zu schätzen wissen.

Bevor du fertig bist

Prüfe, ob du:

  • das verwendete Interface und die Filter erklären kannst.
  • eine DNS-Anfrage und ihre Antwort identifizieren kannst.
  • Informationen in unverschlüsseltem HTTP-Traffic erkennen kannst.
  • Capture-Filter und Display-Filter unterscheiden kannst.
  • erklären kannst, was der IP-Rewrite-Schritt verändert.
  • erklären kannst, warum das Umschreiben von IP-Headern andere identifizierende Informationen nicht entfernt.
  • die Metadaten deiner Capture-Dateien untersuchen kannst.

Netzwerkverkehr erzählt immer eine Geschichte. Interessant wird es, wenn wir lernen, was die Pakete tatsächlich belegen – und wo unsere Annahmen beginnen.

Viel Spaß :)

Die bebilderte Version dieses Artikels mit Screenshots findest du hier.