HTTP-Traffic in Tshark filtern

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, HTTP-Verkehr mithilfe von Tshark, dem Befehlszeilentool von Wireshark, zu filtern und zu analysieren. Sie üben das Erfassen von Webdatenverkehr auf Port 80 und das Isolieren von HTTP-Anfragen mit spezifischen Filtertechniken.

Die Übungen führen Sie durch den Prozess der Extraktion von HTTP-Methoden (GET/POST) und der Formatierung der Ausgabe im JSON-Format für eine strukturierte Analyse. Diese Fähigkeiten sind für Netzwerkfehlersuche und Verkehrsüberprüfungsaufgaben unerlässlich.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/packet_capture -.-> lab-548928{{"HTTP-Traffic in Tshark filtern"}} wireshark/display_filters -.-> lab-548928{{"HTTP-Traffic in Tshark filtern"}} wireshark/packet_analysis -.-> lab-548928{{"HTTP-Traffic in Tshark filtern"}} wireshark/commandline_usage -.-> lab-548928{{"HTTP-Traffic in Tshark filtern"}} end

HTTP-Verkehr mit -f "tcp port 80" erfassen

In diesem Schritt lernen Sie, wie Sie HTTP-Verkehr mithilfe des Anzeigefilters -f "tcp port 80" von Wireshark erfassen. HTTP (Hypertext Transfer Protocol) ist die Grundlage der Datenkommunikation im World Wide Web und verwendet normalerweise Port 80 für unverschlüsselten Webdatenverkehr. Dieser Filter hilft, den HTTP-Verkehr von anderen Netzwerkprotokollen zu isolieren, was die Analyse von Webkommunikationen erleichtert.

Bevor wir beginnen, verstehen wir zunächst einige Grundlagen:

  • Netzwerkports sind wie Türen, durch die bestimmte Arten von Netzwerkverkehr ein- und austreten.
  • Port 80 ist der Standardport, der für HTTP-Verkehr zugewiesen ist.
  • Wireshark kann den Verkehr anhand dieser Portnummern filtern.

Zunächst öffnen wir Wireshark in der LabEx VM-Umgebung. Befolgen Sie diese Schritte sorgfältig:

  1. Öffnen Sie ein Terminal auf dem Xfce-Desktop (Sie finden es im Anwendungsmenü > System > Terminal).
  2. Navigieren Sie zum Standardarbeitsverzeichnis, in dem wir unsere Erfassungsdateien speichern werden:
cd ~/project
  1. Starten Sie Wireshark mit dem Anzeigefilter für HTTP-Verkehr:
sudo wireshark -k -f "tcp port 80"

Lassen Sie uns die Befehlsoptionen analysieren:

  • -k: Dies teilt Wireshark mit, sofort mit der Paketerfassung zu beginnen.
  • -f "tcp port 80": Dies ist unser Erfassungsfilter, der Wireshark anweist, nur TCP-Verkehr aufzuzeichnen, der an Port 80 gerichtet ist oder von ihm kommt.

Jetzt benötigen wir etwas HTTP-Verkehr zur Analyse. Öffnen Sie ein weiteres Terminalfenster (Sie können mit der rechten Maustaste auf den Desktop klicken und "Terminal öffnen" auswählen) und generieren Sie Testverkehr mit:

curl http://example.com

Im Wireshark-Fenster sehen Sie die erfassten Pakete, die Folgendes anzeigen:

  1. Die HTTP-Anfrage Ihres Computers an example.com (üblicherweise beginnt mit "GET / HTTP/1.1").
  2. Die Antwort des Webservers (üblicherweise enthält sie "HTTP/1.1 200 OK").

Jedes Paket zeigt wichtige Details wie:

  • Quell- und Ziel-IP-Adressen
  • Protokoll (HTTP)
  • Paketgröße
  • Zeitinformationen

Für Anfänger: Wireshark fungiert wie ein Mikroskop für Netzwerkverkehr. Der Filter tcp port 80 funktioniert wie eine spezialisierte Linse, die Ihnen nur den Webdatenverkehr zeigt und andere Arten der Netzwerkkommunikation ignoriert. Diese fokussierte Ansicht hilft Ihnen zu verstehen, wie Webbrowser und Server kommunizieren, ohne von anderer Netzwerkaktivität überfordert zu werden.

Anfragen mit -Y "http.request" filtern

In diesem Schritt lernen Sie, wie Sie HTTP-Anfragen mithilfe des Anzeigefilters -Y "http.request" von Wireshark filtern. Dieser Filter hilft Ihnen, sich speziell auf HTTP-Anforderungspakete zu konzentrieren und Antworten und anderen Netzwerkverkehr auszuschließen. Das Verständnis von HTTP-Anfragen ist für die Analyse von Webdatenverkehr grundlegend, da sie die ersten Nachrichten darstellen, die Clients an Server senden.

Basierend auf dem vorherigen Schritt, in dem wir HTTP-Verkehr erfasst haben, filtern wir nun nur nach HTTP-Anfragen:

  1. Stellen Sie zunächst sicher, dass Sie sich im Standardarbeitsverzeichnis befinden, in dem wir mit unseren Erfassungsdateien arbeiten werden:
cd ~/project
  1. Führen Sie Wireshark mit dem Anzeigefilter für HTTP-Anfragen aus:
sudo wireshark -k -Y "http.request"

Die Option -Y wendet einen Anzeigefilter an (anders als der Erfassungsfilter -f, der in Schritt 1 verwendet wurde). Während Erfassungsfilter beschränken, was aufgezeichnet wird, helfen Anzeigefilter bei der Analyse von bereits erfassten Daten. Dieser spezielle Filter zeigt nur Pakete an, die HTTP-Anfragen enthalten.

  1. Um Testverkehr zu generieren, den wir analysieren können, öffnen Sie ein weiteres Terminal und führen Sie diese gängigen HTTP-Client-Befehle aus:
curl http://example.com
wget http://example.com

Für Anfänger: Der Anzeigefilter http.request passt speziell auf HTTP-Anforderungspakete. Dies ist nützlich, wenn Sie nur die Anfragen analysieren möchten, die von Clients an Server gesendet werden, und die Serverantworten ignorieren möchten. Die Filtersyntax ist Teil der leistungsstarken Anzeigefiltersprache von Wireshark, die es Ihnen ermöglicht, genau auszuwählen, welche Pakete Sie basierend auf protokollspezifischen Kriterien anzeigen möchten.

Im Wireshark-Fenster sollten Sie jetzt nur HTTP-Anforderungspakete von den curl - und wget -Befehlen sehen. Jedes Paket zeigt wichtige Informationen des HTTP-Protokolls an, darunter:

  • Die HTTP-Methode (GET, POST usw.), die den Typ der Anfrage angibt
  • Die angeforderte URI, die die spezifische Ressource zeigt, auf die zugegriffen wird
  • Die HTTP-Version (z. B. HTTP/1.1), die die Protokollversion anzeigt
  • Hostinformationen, die den Zielserver identifizieren

HTTP-Methoden mit -e http.request.method extrahieren

In diesem Schritt konzentrieren wir uns speziell darauf, HTTP-Anfragemethoden aus Netzwerkverkehr mithilfe des Befehlszeilentools tshark von Wireshark zu extrahieren. HTTP-Methoden sind die Verben, die die gewünschte Aktion an einer Ressource angeben, wie z. B. GET zum Abrufen von Daten oder POST zum Senden von Daten.

Bevor wir beginnen, verstehen wir zunächst, mit was wir es zu tun haben:

  • HTTP-Methoden sind grundlegende Bestandteile der Webkommunikation.
  • tshark ermöglicht es uns, diese Methoden direkt aus erfassten Netzwerkpaketen zu untersuchen.
  • Die Option -e erlaubt es uns, bestimmte Felder aus den Paketdaten zu extrahieren.

Lassen Sie uns den Prozess Schritt für Schritt durchgehen:

  1. Zunächst müssen wir uns im richtigen Arbeitsverzeichnis positionieren, in dem unsere Erfassungsdateien gespeichert sind:
cd ~/project
  1. Jetzt führen wir den tshark -Befehl aus, um HTTP-Methoden aus aktuellem Verkehr zu extrahieren:
sudo tshark -Y "http.request" -T fields -e http.request.method

Analysieren wir diesen Befehl:

  • sudo: Gewährt uns die erforderlichen Berechtigungen, um Netzwerkverkehr zu erfassen.
  • tshark: Die Befehlszeilenversion von Wireshark.
  • -Y "http.request": Wendet einen Anzeigefilter an, um nur HTTP-Anfragen anzuzeigen.
  • -T fields: Gibt an, dass wir eine feldbasierte Ausgabe möchten (statt vollständiger Pakete).
  • -e http.request.method: Weist tshark an, nur das Feld für die HTTP-Methode zu extrahieren.
  1. Um dies in Aktion zu sehen, generieren wir aus einem anderen Terminalfenster etwas Testverkehr:
curl -X GET http://example.com
curl -X POST http://example.com
curl -X DELETE http://example.com

Jeder dieser curl -Befehle sendet eine andere HTTP-Methode an example.com, die tshark erfassen und anzeigen wird. Die Option -X in curl lässt uns angeben, welche HTTP-Methode wir verwenden möchten.

Nachdem Sie diese Befehle ausgeführt haben, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

GET
POST
DELETE

Diese Ausgabe zeigt genau, welche HTTP-Methoden im erfassten Verkehr verwendet wurden, was die Analyse von Web-Anfragemustern erleichtert. Die Methodennamen erscheinen in der Reihenfolge, in der sie von tshark erfasst wurden.

Anzeige im JSON-Format mit -T json

In diesem Schritt werden wir untersuchen, wie man mit dem Wireshark-Tool Tshark erfassten HTTP-Verkehrsdaten im JSON-Format ausgibt. JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenformat, das sowohl für Menschen einfach lesbar als auch für Maschinen einfach zu parsen ist. Dies macht es ideal für die programmgesteuerte Analyse von Netzwerkverkehr.

Bevor wir beginnen, verstehen wir zunächst, warum die JSON-Ausgabe wertvoll ist:

  • Strukturierte Datenorganisation
  • Einfache Integration mit anderen Tools und Skripten
  • Standardisiertes Format für den Datenaustausch
  1. Stellen Sie zunächst sicher, dass Sie sich im Standardarbeitsverzeichnis befinden, in dem wir unsere Befehle ausführen werden:
cd ~/project
  1. Jetzt führen wir Tshark aus, um HTTP-Anfragen zu erfassen und sie im JSON-Format auszugeben. Dieser Befehl kombiniert Filterung mit JSON-Formatierung:
sudo tshark -Y "http.request" -T json -e http.request.method -e http.host -e http.request.uri

Lassen Sie uns analysieren, was jeder Teil dieses Befehls tut:

  • -Y "http.request": Dieser Filter weist Tshark an, nur HTTP-Anforderungspakete anzuzeigen.
  • -T json: Gibt an, dass wir die Ausgabe im JSON-Format möchten.
  • -e Felder: Diese extrahieren bestimmte Informationen aus jeder HTTP-Anfrage:
    • http.request.method: Die verwendete HTTP-Methode (GET, POST usw.)
    • http.host: Die Website-Domäne, auf die zugegriffen wird.
    • http.request.uri: Der spezifische Pfad oder die Ressource, die angefordert wird.
  1. Um Testverkehr zu generieren, den wir erfassen können, öffnen Sie ein zweites Terminalfenster und führen Sie diese curl -Befehle aus:
curl http://example.com
curl http://example.org/sample

Wenn Sie den Tshark-Befehl ausführen, während dieser Testverkehr generiert wird, sehen Sie eine Ausgabe in folgender Struktur:

[
  {
    "_index": "packets-1",
    "_source": {
      "layers": {
        "http.request.method": ["GET"],
        "http.host": ["example.com"],
        "http.request.uri": ["/"]
      }
    }
  },
  {
    "_index": "packets-2",
    "_source": {
      "layers": {
        "http.request.method": ["GET"],
        "http.host": ["example.org"],
        "http.request.uri": ["/sample"]
      }
    }
  }
]

Beachten Sie, wie jede HTTP-Anfrage zu einem separaten JSON-Objekt mit klar beschrifteten Feldern wird. Diese Struktur macht es einfach zu identifizieren:

  • Auf welche Website zugegriffen wurde
  • Welcher Art die Anfrage war
  • Welche spezifische Seite oder Ressource angefordert wurde

Das JSON-Format ist besonders nützlich, wenn Sie diese Daten für eine spätere Analyse speichern oder an andere Tools weiterleiten möchten, die JSON-Daten automatisch verarbeiten können.

Zusammenfassung

In diesem Lab haben Sie gelernt, HTTP-Verkehr mithilfe des Befehlszeilentools Tshark von Wireshark zu filtern und zu analysieren. Die Übungen beinhalteten die Erfassung von HTTP-Verkehr mit -f "tcp port 80" und die Generierung von Testverkehr mithilfe von curl für eine praktische Analyse.

Sie haben auch gelernt, HTTP-Anfragen mit -Y "http.request" zu filtern und spezifische Daten wie HTTP-Methoden mit -e http.request.method zu extrahieren. Das Lab hat die Ausgabeformatierung im JSON-Format mit -T json gezeigt und Sie somit mit wichtigen Techniken für eine effiziente Netzwerkverkehrsüberprüfung ausgestattet.