Benutzerdefinierte Protokolle in Tshark dekodieren

WiresharkWiresharkBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie benutzerdefinierte Netzwerkprotokolle mit dem Befehlszeilentool tshark von Wireshark analysieren und dekodieren. Sie üben das Prüfen von Paketaufzeichnungsdateien mit ausführlicher Ausgabe und das Dekodieren von Datenverkehr auf nicht-standardmäßigen Ports als HTTP-Protokoll.

Die Übungen führen Sie durch die Verwendung von wichtigen Flags wie -r, -V und -d, um Paketdaten zu manipulieren, Portdetails zu überprüfen und die dekodierten Ergebnisse zu speichern. Mit diesen Fähigkeiten können Sie benutzerdefinierte Protokollszenarien in realen Netzwerkanalysetasks bewältigen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/protocol_dissection -.-> lab-548921{{"Benutzerdefinierte Protokolle in Tshark dekodieren"}} wireshark/export_packets -.-> lab-548921{{"Benutzerdefinierte Protokolle in Tshark dekodieren"}} wireshark/packet_analysis -.-> lab-548921{{"Benutzerdefinierte Protokolle in Tshark dekodieren"}} wireshark/commandline_usage -.-> lab-548921{{"Benutzerdefinierte Protokolle in Tshark dekodieren"}} end

Prüfen von Ports mit -r capture.pcap -V

In diesem Schritt lernen Sie, wie Sie Netzwerkports in einer Paketaufzeichnungsdatei mit dem Befehlszeilentool tshark von Wireshark prüfen. Netzwerkports sind wie Türen, die es verschiedenen Anwendungen ermöglichen, über ein Netzwerk zu kommunizieren. Wir verwenden das -r-Flag, um eine Paketaufzeichnungsdatei zu lesen, und -V, um detaillierte Paketinformationen anzuzeigen, was für das Verständnis des Netzwerkdatenverkehrs unerlässlich ist.

Stellen Sie zunächst sicher, dass Sie sich im richtigen Verzeichnis befinden, in dem unsere Lab-Dateien gespeichert sind:

cd ~/project

Für dieses Lab wurde eine Beispiel-Paketaufzeichnungsdatei capture.pcap bereitgestellt. Diese Datei enthält aufgezeichneten Netzwerkdatenverkehr, den wir analysieren werden. Um die Ports in dieser Aufzeichnungsdatei zu prüfen, führen Sie folgenden Befehl aus:

tshark -r capture.pcap -V | less

Lassen Sie uns diesen Befehl zerlegen:

  • -r capture.pcap teilt tshark mit, aus unserer Paketaufzeichnungsdatei zu lesen
  • -V aktiviert die ausführliche Ausgabe und zeigt alle verfügbaren Paketdetails an
  • | less leitet die Ausgabe an das less-Programm weiter, um das Scrollen zu erleichtern

Die ausführliche Ausgabe zeigt Ihnen wichtige Netzwerkinformationen, darunter:

  • Quell- und Zielports für jedes Paket (diese identifizieren, welche Anwendungen kommunizieren)
  • Protokollinformationen (welche Art von Kommunikation stattfindet)
  • Paket-Zeitstempel (wann die Kommunikation stattgefunden hat)
  • Weitere protokollspezifische Details (zusätzliche technische Informationen)

Für eine bessere Lesbarkeit verwenden wir less, um die Ausgabe anzuzeigen. So navigieren Sie:

  • Verwenden Sie die Pfeiltasten, um nach oben und unten zu scrollen
  • Drücken Sie q, um zu beenden, wenn Sie die Pakete untersucht haben

Beispielausgabe, die Sie möglicherweise sehen:

Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
Ethernet II, Src: 00:1a:2b:3c:4d:5e, Dst: 00:5e:4d:3c:2b:1a
Internet Protocol Version 4, Src: 192.168.1.100, Dst: 192.168.1.1
Transmission Control Protocol, Src Port: 54321, Dst Port: 80, Seq: 1, Ack: 1, Len: 0

In diesem Beispiel achten Sie besonders auf:

  • Src Port: 54321 - die Portnummer auf dem sendenden Computer
  • Dst Port: 80 - die Portnummer auf dem empfangenden Computer (Port 80 weist typischerweise auf HTTP-Webdatenverkehr hin)

Das Verständnis dieser Portnummern hilft dabei, zu identifizieren, welche Anwendungen oder Dienste über das Netzwerk kommunizieren.

Dekodieren von Port 8080 als HTTP mit -d tcp.port==8080,http

In diesem Schritt werden wir untersuchen, wie man Tshark manuell anweist, den Netzwerkdatenverkehr auf Port 8080 als HTTP-Protokoll zu interpretieren. Diese Technik ist unerlässlich, wenn Anwendungen nicht-standardmäßige Ports für die HTTP-Kommunikation verwenden, die Tshark nicht automatisch als Webdatenverkehr erkennt.

Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem die Aufzeichnungsdatei gespeichert ist. Dadurch stellen wir sicher, dass wir mit der richtigen Paketaufzeichnungsdatei arbeiten:

cd ~/project

Jetzt nutzen wir die leistungsstarke "Decode-As"-Funktion von Tshark. Der folgende Befehl liest unsere Paketaufzeichnung und wendet spezielle Dekodierungsregeln an:

tshark -r capture.pcap -d tcp.port==8080,http | less

Lassen Sie uns den -d-Parameter, der hier die Magie bewirkt, zerlegen:

  • tcp.port==8080 teilt Tshark mit, dass wir uns auf den TCP-Datenverkehr über Port 8080 konzentrieren
  • http gibt an, dass wir diesen Datenverkehr als HTTP-Protokoll interpretieren möchten

Bei Erfolg sehen Sie richtig formatierte HTTP-Inhalte wie diesen:

Hypertext Transfer Protocol
    GET /index.html HTTP/1.1\r\n
    Host: example.com\r\n
    User-Agent: curl/7.68.0\r\n
    Accept: */*\r\n
    \r\n

Diese Ausgabe zeigt deutlich die HTTP-Anforderungsheader und bestätigt, dass unsere Dekodierung funktioniert hat. Ohne die -d-Option würde der gleiche Datenverkehr als rohe TCP-Segmente erscheinen, was die Analyse von Webkommunikationen viel schwieriger machen würde. Die Weiterleitung an less macht einfach die Ausgabe für die Analyse leichter zu scrollen.

Bestätigen der Dekodierung mit -V

In diesem Schritt werden wir überprüfen, ob unsere HTTP-Dekodierungskonfiguration für Port 8080 korrekt funktioniert. Dies ist wichtig, da manchmal Pakete möglicherweise nicht wie erwartet dekodiert werden, und wir unsere Einrichtung bestätigen müssen. Wir verwenden den ausführlichen Modus von Wireshark (Flag -V), um detaillierte Protokollinformationen für jedes Paket anzuzeigen.

Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem die Aufzeichnungsdatei gespeichert ist:

cd ~/project

Jetzt führen wir tshark sowohl mit unserer "Decode-As"-Regel als auch mit ausführlicher Ausgabe aus. Der Befehl kombiniert das, was wir in vorherigen Schritten gelernt haben:

tshark -r capture.pcap -d tcp.port==8080,http -V | less

Hier ist, was jeder Teil macht:

  • -r capture.pcap liest unsere Paketaufzeichnungsdatei
  • -d tcp.port==8080,http wendet unsere HTTP-Dekodierungsregel auf Port 8080 an
  • -V aktiviert die ausführliche Ausgabe, die alle Protokolldetails anzeigt
  • | less erleichtert das Scrollen durch lange Ausgaben

Beim Untersuchen der Ausgabe konzentrieren Sie sich auf diese Schlüsselmerkmale, die eine erfolgreiche HTTP-Dekodierung bestätigen:

  1. Protokollhierarchie, die HTTP als Anwendungsschichtprotokoll anzeigt (das bedeutet, dass tshark es als HTTP-Datenverkehr erkennt)
  2. HTTP-Anforderungs-/Antwortheader (diese sollten deutlich sichtbar und richtig formatiert sein)
  3. HTTP-Nutzlastinhalt (die tatsächlich übertragenen Daten)

Hier ist ein Beispiel dafür, wie richtig dekodierter HTTP-Datenverkehr aussieht:

Hypertext Transfer Protocol
    GET /test.html HTTP/1.1\r\n
    Host: example.com:8080\r\n
    Connection: keep-alive\r\n
    User-Agent: Mozilla/5.0\r\n
    \r\n
    [Full request URI: http://example.com:8080/test.html]

Um den Unterschied, den die Dekodierung macht, besser zu verstehen, vergleichen Sie diese Ausgabe mit der, die Sie in Schritt 1 gesehen haben, als wir keine HTTP-Dekodierung angewendet haben. Sie sollten bemerken, dass ohne Dekodierung der gleiche Datenverkehr als rohe TCP-Daten erscheinen würde, ohne die klare HTTP-Struktur, die wir hier sehen.

Speichern der dekodierten Datei mit -w decoded.pcap

In diesem Schritt werden wir unseren dekodierten HTTP-Datenverkehr in einer neuen Datei speichern. Dies ist wichtig, da es alle Protokolldekodierungsarbeiten, die wir durchgeführt haben, bewahrt, während die ursprünglichen Paketdaten intakt bleiben. Stellen Sie sich das wie das Speichern eines Dokuments nach Änderungen vor - Sie möchten beide Versionen behalten.

Zunächst stellen wir sicher, dass wir uns im richtigen Arbeitsverzeichnis befinden. Der Befehl cd wechselt das Verzeichnis, und wir wechseln in unseren Projektordner:

cd ~/project

Jetzt verwenden wir Tshark, um eine neue Aufzeichnungsdatei mit unserem dekodierten HTTP-Datenverkehr zu erstellen. Der Befehl mag komplex aussehen, aber wir werden ihn Stück für Stück zerlegen:

tshark -r capture.pcap -d tcp.port==8080,http -w decoded.pcap

Lassen Sie uns jeden Teil dieses Befehls verstehen:

  • -r capture.pcap teilt Tshark mit, aus unserer ursprünglichen Aufzeichnungsdatei zu lesen
  • -d tcp.port==8080,http wendet unsere spezielle Dekodierungsregel an, die den Datenverkehr auf Port 8080 als HTTP behandelt
  • -w decoded.pcap gibt an, wo die neue, dekodierte Version gespeichert werden soll

Nachdem wir diesen Befehl ausgeführt haben, sollten wir überprüfen, ob unsere neue Datei erfolgreich erstellt wurde. Der Befehl ls listet Dateien auf, und -lh zeigt Details in einem menschenlesbaren Format an:

ls -lh decoded.pcap

Sie werden eine Ausgabe wie diese sehen, die Ihre neue Datei anzeigt:

-rw-r--r-- 1 labex labex 1.2M Sep 15 10:30 decoded.pcap

Diese neue Datei enthält alle ursprünglichen Pakete, aber jetzt wird jeder Datenverkehr auf Port 8080 korrekt als HTTP-Protokoll interpretiert, was die Analyse des Webdatenverkehrs bei zukünftigen Untersuchungen viel einfacher macht.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie benutzerdefinierte Netzwerkprotokolle mit tshark analysieren und dekodieren. Sie haben gelernt, Paketaufzeichnungsdateien mit der Option -r zu lesen und detaillierte Paketinformationen mit der Option -V zu untersuchen, um nicht-standardmäßigen HTTP-Datenverkehr zu identifizieren.

Darüber hinaus haben Sie die Protokolldekodierung erkundet, indem Sie die Option -d angewendet haben, um den Datenverkehr auf Port 8080 als HTTP zu interpretieren. Das Lab hat auch das Speichern der dekodierten Ausgabe in einer neuen Datei mit der Option -w für die zukünftige Referenz und Analyse behandelt.