Einführung
In diesem Lab erkunden Sie tshark, das leistungsstarke Kommandozeilen-Gegenstück zu Wireshark. Während Wireshark eine grafische Benutzeroberfläche für die Netzwerkanalyse bietet, ermöglicht Ihnen tshark die Durchführung exakt derselben Paketerfassung und -analyse direkt über das Terminal.
Dies ist wichtig, da die Paketanalyse normalerweise auf zwei verschiedenen Ebenen stattfindet. Tools wie tcpdump eignen sich hervorragend, um rohe Paketübersichten anzuzeigen und Low-Level-Capture-Filter anzuwenden, bevor Pakete gespeichert werden. tshark geht einen Schritt weiter, indem es die Protokollstruktur nach der Erfassung dekodiert. Das bedeutet, es versteht Felder wie HTTP-Methoden, DNS-Abfragenamen und viele andere protokollspezifische Details. In der Praxis verwenden Analysten oft beide Ansätze: Low-Level-Erfassung, um Beweise effizient zu sammeln, und protokollbewusste Analyse, um später gezieltere Fragen zu stellen.
Sie lernen, wie Sie Live-Netzwerkverkehr erfassen, in einer Datei speichern und Anzeige-Filter anwenden, die Protokollstrukturen (wie HTTP und DNS) nativ verstehen. Diese Anzeige-Filter sind weitaus leistungsfähiger als herkömmliche Berkeley Packet Filters (BPF), da sie den Inhalt der Pakete analysieren können. Abschließend lernen Sie, wie Sie Statistiken zur Protokollhierarchie erstellen, um einen Überblick über Ihren Netzwerkverkehr auf hoher Ebene zu erhalten.
Grundlegende Erfassung durchführen
In diesem Schritt lernen Sie, wie Sie Live-Netzwerkverkehr mit tshark erfassen und zur späteren Analyse in einer Datei speichern.
Bevor wir mit der Erfassung beginnen, müssen wir sicherstellen, dass auf Ihrem System Netzwerkverkehr stattfindet. Ein Hintergrundskript läuft bereits in Ihrer Umgebung und generiert kontinuierlich DNS- und HTTP-Verkehr.
In dieser Phase ist es sinnvoll, die Erfassung von der Analyse zu trennen. Erfassung bedeutet, Pakete exakt so zu bewahren, wie sie eine Schnittstelle passieren. Analyse ist das, was danach geschieht, wenn Sie diese Pakete dekodieren und interpretieren. Sicherheitsuntersuchungen beginnen oft mit einer breiten Erfassung, da man möglicherweise noch nicht weiß, was relevant ist. Sobald die Pakete in einer PCAP-Datei gespeichert sind, können Sie diese beliebig oft erneut lesen und verschiedene Fragen stellen, ohne dass der ursprüngliche Datenverkehr erneut stattfinden muss.
Lassen Sie uns nun den Netzwerkverkehr erfassen. Wir verwenden tshark, um alle verfügbaren Netzwerkschnittstellen (any) zu überwachen und die erfassten Pakete in einer Datei namens traffic.pcap zu speichern. Wir weisen tshark außerdem an, die Erfassung automatisch nach 5 Sekunden zu beenden.
Führen Sie die folgenden Befehle aus, um die Erfassung zu starten und die Datei korrekt zu speichern:
sudo tshark -i any -w /tmp/traffic.pcap -a duration:5
sudo mv /tmp/traffic.pcap ~/project/traffic.pcap
sudo chown labex:labex ~/project/traffic.pcap
Lassen Sie uns die im tshark-Befehl verwendeten Optionen aufschlüsseln:
sudo: Führt den Befehl mit Administratorrechten aus, die für die Erfassung von Netzwerkverkehr erforderlich sind.-i any: Gibt an, dasstsharkden Datenverkehr auf allen verfügbaren Netzwerkschnittstellen erfassen soll.-w /tmp/traffic.pcap: Weisttsharkan, die erfassten Rohdaten der Pakete temporär in eine Datei im Verzeichnis/tmpzu schreiben. Dies ist eine bewährte Methode, um Berechtigungsprobleme bei der Ausführung vontsharkals Root zu vermeiden.-a duration:5: Setzt eine automatische Stopp-Bedingung (-a), um die Erfassung nach einer Dauer von 5 Sekunden zu beenden.
Sie sehen eine Ausgabe ähnlich dieser, die anzeigt, dass Pakete erfasst werden:
Capturing on 'eth0'
24
Sobald die 5 Sekunden verstrichen sind, beendet sich tshark automatisch und Ihre traffic.pcap-Datei ist bereit für die Analyse.
Anzeige-Filter anwenden
In diesem Schritt lernen Sie, wie Sie die soeben erstellte Paketerfassungsdatei lesen und Anzeige-Filter anwenden, um bestimmte Arten von Datenverkehr zu isolieren.
Anzeige-Filter in tshark (und Wireshark) sind unglaublich leistungsstark, da sie die Struktur von Netzwerkprotokollen verstehen. Anstatt nur IP-Adressen oder Portnummern zu betrachten, können Sie den Datenverkehr basierend auf Protokollnamen wie http oder dns filtern.
Diese Unterscheidung ist wichtig. Ein klassischer Capture-Filter stellt Low-Level-Fragen wie „verwendet dieses Paket Port 53?“. Ein Anzeige-Filter kann Fragen auf einer höheren Ebene stellen, wie „ist dieses Paket eine DNS-Antwort?“ oder „enthält diese HTTP-Anfrage ein bestimmtes Feld?“. Mit anderen Worten: Anzeige-Filter arbeiten nach der Protokollanalyse, weshalb sie ausdrucksstärker und leichter zu lesen sind.
Um eine Erfassungsdatei zu lesen, anstatt Live-Verkehr zu erfassen, verwenden Sie die Option -r. Um einen Anzeige-Filter anzuwenden, verwenden Sie die Option -Y, gefolgt von der Filterzeichenfolge.
Lassen Sie uns zunächst die Erfassungsdatei filtern, um nur HTTP-Verkehr anzuzeigen. Führen Sie den folgenden Befehl aus:
tshark -r ~/project/traffic.pcap -Y "http"
Sie sollten eine Ausgabe ähnlich dieser sehen, die nur die HTTP GET-Anfrage und die entsprechende HTTP OK-Antwort zeigt:
4 0.012345678 10.0.2.15 → 93.184.216.34 HTTP 143 GET / HTTP/1.1
8 0.045678901 93.184.216.34 → 10.0.2.15 HTTP 403 HTTP/1.1 200 OK (text/html)
Als Nächstes filtern wir die Erfassungsdatei, um nur DNS-Verkehr anzuzeigen. DNS (Domain Name System) ist das Protokoll, das verwendet wird, um Domainnamen wie example.com in IP-Adressen zu übersetzen.
Führen Sie den folgenden Befehl aus, um den DNS-Anzeige-Filter anzuwenden:
tshark -r ~/project/traffic.pcap -Y "dns"
Die Ausgabe zeigt die DNS-Abfragen und -Antworten an, die während Ihres Erfassungszeitraums stattgefunden haben:
1 0.000000000 10.0.2.15 → 10.0.2.3 DNS 73 Standard query 0x1a2b A example.com
2 0.001234567 10.0.2.3 → 10.0.2.15 DNS 89 Standard query response 0x1a2b A example.com A 93.184.216.34
Durch die Verwendung der Option -Y können Sie problemlos Tausende von Paketen durchsuchen, um genau das zu finden, wonach Sie suchen.
Statistiken zur Protokollhierarchie anzeigen
In diesem Schritt lernen Sie, wie Sie eine statistische Übersicht der in Ihrer Erfassungsdatei vorhandenen Protokolle erstellen.
Bei der Analyse einer großen Erfassungsdatei ist es oft hilfreich, eine Zusammenfassung auf hoher Ebene darüber zu erhalten, welche Art von Datenverkehr enthalten ist, bevor man in einzelne Pakete eintaucht. tshark bietet eine Funktion namens „Protocol Hierarchy Statistics“, die den Prozentsatz und die Anzahl der Pakete für jedes Protokoll berechnet.
Diese Top-Down-Ansicht ist eine gängige Untersuchungstechnik. Bevor Analysten Zeit mit einzelnen Paketen verbringen, stellen sie oft zuerst allgemeine Fragen: Welche Protokolle dominieren diese Erfassung? Besteht der Datenverkehr hauptsächlich aus Web-Traffic, Namensauflösung oder etwas Ungewöhnlichem? Entsprechen die Anteile der erwarteten Rolle des Systems? Dieser Kontext auf hoher Ebene hilft Ihnen zu entscheiden, wo eine tiefere Untersuchung den Aufwand wert ist.
Um Statistiken zu erstellen, verwenden Sie die Option -z, gefolgt von der spezifischen Statistik, die Sie berechnen möchten. Für die Protokollhierarchie-Statistik lautet das Schlüsselwort io,phs.
Da wir außerdem nur den Statistikbericht und nicht die einzelnen Paketdetails sehen möchten, verwenden wir die Option -q (quiet).
Führen Sie den folgenden Befehl aus, um die Protokollhierarchie Ihrer Erfassungsdatei anzuzeigen:
tshark -r ~/project/traffic.pcap -q -z io,phs
Sie sehen eine baumartige Ausgabe, die den Datenverkehr zusammenfasst:
===================================================================
Protocol Hierarchy Statistics
Filter:
eth frames:24 bytes:2340
ipv4 frames:24 bytes:2340
udp frames:2 bytes:162
dns frames:2 bytes:162
tcp frames:12 bytes:1338
http frames:2 bytes:546
icmp frames:10 bytes:840
===================================================================
Diese Ausgabe zeigt Ihnen genau, wie viele Frames (Pakete) und Bytes zu welchem Protokoll gehören. Sie können beispielsweise sehen, dass die Ethernet-Schicht (eth) IPv4-Verkehr enthält, der weiter in UDP (mit DNS), TCP (mit HTTP) und ICMP (der von uns generierte Ping-Verkehr) unterteilt ist.
Diese statistische Ansicht ist ein hervorragender Ausgangspunkt für jede Netzwerkfehlerbehebung oder Sicherheitsanalyse.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab „Einführung in Tshark“ erfolgreich abgeschlossen.
In diesem Lab haben Sie gelernt:
- Live-Netzwerkverkehr zu erfassen und mit
tsharkin einer.pcap-Datei zu speichern. - Eine Erfassungsdatei zu lesen und protokollbewusste Anzeige-Filter anzuwenden, um HTTP- und DNS-Verkehr zu isolieren.
- Statistiken zur Protokollhierarchie zu erstellen und zu analysieren, um einen Überblick über die Netzwerkaktivität auf hoher Ebene zu erhalten.
Diese grundlegenden Fähigkeiten bilden die Basis für die Netzwerkanalyse und Fehlerbehebung über die Kommandozeile in Linux-Umgebungen.

