Verwendung von Tshark für die Netzwerkanalyse

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 tshark verwenden, die Kommandozeilen-Schnittstelle des leistungsstarken Netzwerkprotokoll-Analyzers Wireshark. Das Beherrschen von tshark ermöglicht es Ihnen, Netzwerkanalyse-Workflows zu optimieren, Aufgaben zu automatisieren und tiefere Einblicke in den Netzwerkverkehr zu gewinnen.

Dieses Lab führt Sie durch verschiedene Kommandozeilenoptionen und praktische Szenarien. Es vermittelt Ihnen die Fähigkeiten, um Netzwerkaufzeichnungen effizient zu analysieren und netzwerkbezogene Probleme zu beheben. Der Kommandozeilenansatz hat erhebliche Vorteile gegenüber der grafischen Schnittstelle, insbesondere bei großen Aufzeichnungsdateien oder automatisierten Analysen.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 97% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Netzwerkverkehr verstehen und erfassen mit Tshark

In diesem Schritt tauchen wir in die Welt der Netzwerkverkehrsanalyse mit Tshark ein. Zunächst lernen Sie, was Tshark ist und warum es ein wertvolles Werkzeug für die Netzwerkanalyse ist. Dann werden wir herausfinden, wie Sie die Netzwerkschnittstellen auf Ihrem System identifizieren können, was von entscheidender Bedeutung ist, da Sie wissen müssen, wo Sie den Verkehr erfassen sollen. Schließlich werden wir sehen, wie Sie mit der Kommandozeilen-Schnittstelle von Wireshark, also Tshark, Netzwerkverkehr erfassen können.

Was ist Tshark?

Tshark ist im Wesentlichen die Kommandozeilenversion von Wireshark. Während Wireshark eine grafische Schnittstelle hat, die sich hervorragend für die visuelle Inspektion eignet, bietet Tshark dieselbe Kernfunktionalität ohne die Notwendigkeit eines grafischen Displays. Mit Tshark können Sie Pakete aus einem Netzwerk erfassen. Pakete sind wie kleine Umschläge, die Daten über ein Netzwerk transportieren. Es ermöglicht Ihnen auch, detaillierte Informationen über diese Pakete anzuzeigen, wie z. B. wo sie herkommen, wohin sie gehen und welche Art von Daten sie transportieren. Sie können die erfassten Daten in einer Datei speichern, um sie später zu analysieren. Dieses Werkzeug ist in mehreren Szenarien besonders nützlich:

  • Automatisierte Netzwerküberwachung: Sie können Skripte einrichten, um Tshark regelmäßig auszuführen und auf ungewöhnliche Netzwerkaktivitäten zu prüfen.
  • Effiziente Analyse großer Aufzeichnungsdateien: Da es sich um ein Kommandozeilenwerkzeug handelt, kann es größere Datenmengen schneller verarbeiten als einige grafische Alternativen.
  • Ausführung auf Servern ohne grafische Schnittstelle: Server haben oft kein grafisches Display, und Tshark kann direkt von der Kommandozeile aus ausgeführt werden.
  • Integration der Netzwerkanalyse in Skripte: Sie können Tshark-Befehle in Ihren eigenen Skripten verwenden, um benutzerdefinierte Netzwerkanalysetasks auszuführen.

Installation von Tshark

Bevor wir mit der Verwendung von Tshark beginnen können, müssen wir sicherstellen, dass es auf Ihrem System installiert ist. Um Tshark auf einem System zu installieren, das den apt-Paketmanager verwendet (z. B. Ubuntu), führen Sie den folgenden Befehl in Ihrem Terminal aus. Der sudo-Teil gibt Ihnen administrative Rechte, apt install wird verwendet, um Pakete zu installieren, -y beantwortet automatisch alle Abfragen mit Ja, und tshark ist das Paket, das wir installieren möchten.

sudo apt install -y tshark

Identifizieren Ihrer Netzwerkschnittstellen

Bevor Sie mit der Erfassung von Netzwerkverkehr beginnen können, müssen Sie wissen, welche Netzwerkschnittstelle Sie überwachen sollen. Eine Netzwerkschnittstelle ist wie eine Tür, durch die Ihr Computer sich mit einem Netzwerk verbindet. Um alle verfügbaren Netzwerkschnittstellen auf Ihrem System aufzulisten, führen Sie den folgenden Befehl aus:

tshark -D

Dieser Befehl zeigt eine Liste aller Netzwerkschnittstellen auf Ihrem System an. Die Ausgabe sieht in etwa so aus:

1. eth0
2. eth1
3. lo (Loopback)
4. any (Pseudo-Gerät, das auf allen Schnittstellen erfasst)

In unserem Lab verwenden wir die any-Schnittstelle. Dies ist ein spezielles Pseudo-Gerät, das es uns ermöglicht, den Verkehr von allen verfügbaren Netzwerkschnittstellen gleichzeitig zu erfassen.

Erfassung von Netzwerkverkehr

Jetzt, da wir wissen, welche Schnittstelle wir verwenden sollen, beginnen wir mit der Erfassung von Netzwerkverkehr. Die grundlegende Syntax für die Erfassung von Verkehr mit Tshark lautet wie folgt:

tshark -i <interface> -w <output_file>

Hier ist, was jeder Teil bedeutet:

  • -i <interface>: Diese Option gibt an, von welcher Netzwerkschnittstelle Sie Verkehr erfassen möchten. Sie können <interface> durch den Namen der tatsächlichen Schnittstelle ersetzen, wie z. B. eth0 oder any.
  • -w <output_file>: Diese Option gibt den Speicherort und den Namen der Datei an, in der Sie die erfassten Pakete speichern möchten.

Zunächst erstellen wir ein Verzeichnis, um unsere erfassten Dateien zu speichern. Der Befehl mkdir -p erstellt ein Verzeichnis, wenn es nicht existiert, und wir erstellen es unter /home/labex/project/captures.

mkdir -p /home/labex/project/captures

Jetzt beginnen wir mit der Erfassung. Wir verwenden die any-Schnittstelle und speichern die erfassten Pakete in einer Datei namens capture.pcapng im Verzeichnis /home/labex/project.

tshark -i any -w /home/labex/project/capture.pcapng

Sobald Sie diesen Befehl ausführen, sehen Sie eine Ausgabe, die anzeigt, dass Tshark mit der Paketerfassung begonnen hat. Die Ausgabe sieht so aus:

Capturing on 'any'

Um tatsächlich sinnvollen Verkehr zu erfassen, müssen wir ihn generieren. Öffnen Sie einen neuen Terminal-Tab und führen Sie den folgenden Befehl aus. Der curl-Befehl wird verwendet, um Daten von einem Server zu übertragen. Hier versuchen wir, auf die Website https://www.example.com zuzugreifen.

curl https://www.example.com

Nachdem Sie den Verkehr generiert haben, kehren Sie zum Terminal zurück, in dem Tshark läuft, und drücken Sie Ctrl + C, um die Erfassung zu stoppen. Sie sehen eine Meldung, die angibt, wie viele Pakete erfasst wurden. Sie könnte so aussehen:

Capturing on 'any'
164 packets captured

Prüfen der erfassten Datei

Um sicherzustellen, dass die Aufzeichnungsdatei erfolgreich erstellt wurde, können wir den Befehl ls -l verwenden. Dieser Befehl listet die Dateien in einem Verzeichnis auf und zeigt detaillierte Informationen über sie an. Führen Sie den folgenden Befehl aus, um die Aufzeichnungsdatei zu prüfen:

ls -l /home/labex/project/capture.pcapng

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-r--r-- 1 labex labex 24680 Jan 27 12:34 /home/labex/project/capture.pcapng

Jetzt werfen wir einen kurzen Blick auf das, was wir erfasst haben. Wir verwenden erneut Tshark, diesmal jedoch mit der Option -r. Die Option -r wird verwendet, um eine Aufzeichnungsdatei zu lesen. Wir leiten die Ausgabe an den Befehl head - 10 weiter, der uns die ersten 10 Pakete in der Datei anzeigt.

tshark -r /home/labex/project/capture.pcapng | head -10

Dieser Befehl zeigt detaillierte Paketinformationen an, einschließlich Zeitstempeln (wann das Paket erfasst wurde), Quell- und Zieladressen (wo das Paket herkam und wohin es ging) und den verwendeten Protokollen.

Filtern von Netzwerkverkehr mit Tshark

In diesem Schritt werden wir untersuchen, wie man Filter auf Netzwerkverkehrsaufzeichnungen anwendet. Wenn man mit Netzwerkverkehr zu tun hat, können Aufzeichnungsdateien sehr groß sein und eine riesige Menge an Daten enthalten. Filtern hilft uns, uns auf bestimmte Pakettypen zu konzentrieren, die uns interessieren. Dies ist von entscheidender Bedeutung, da es uns ermöglicht, große Aufzeichnungsdateien effizienter zu analysieren und relevante Verkehrsmuster zu identifizieren.

Verständnis von Anzeigefiltern

Tshark verwendet Anzeigefilter, um auszuwählen, welche Pakete aus einer Aufzeichnungsdatei angezeigt oder verarbeitet werden sollen. Stellen Sie sich diese Filter als eine Möglichkeit vor, Tshark zu sagen, welche Pakete Sie betrachten möchten. Sie verwenden eine spezifische Syntax, um Übereinstimmungskriterien basierend auf Protokollfeldern zu definieren. Beispielsweise können Sie Tshark anweisen, nur Pakete anzuzeigen, die zu einem bestimmten Protokoll gehören oder eine bestimmte IP-Adresse haben. Die grundlegende Syntax für die Anwendung eines Anzeigefilters lautet:

tshark -r "<filter_expression>" < input_file > -Y

Lassen Sie uns die Bestandteile dieses Befehls aufschlüsseln:

  • -r <input_file>: Dieser Teil des Befehls gibt die Aufzeichnungsdatei an, die Tshark lesen soll. Es ist wie Tshark zu sagen, wo es die Netzwerkverkehrsdaten finden kann.
  • -Y "<filter_expression>": Dies gibt den Anzeigefilter an, den Sie anwenden möchten. Der Filterausdruck ist eine Reihe von Regeln, die definieren, welche Pakete ausgewählt werden sollen.

Häufige Beispiele für Anzeigefilter

Hier sind einige nützliche Filterausdrücke, die Sie verwenden können. Diese Beispiele betreffen verschiedene Aspekte des Paketfilters, wie z. B. das Filtern nach Protokoll, IP-Adresse, Port, HTTP-Methode, DNS-Abfrage und das Kombinieren mehrerer Filter.

  • Filtern nach Protokoll: tcp, udp, icmp, http, dns. Wenn Sie beispielsweise tcp verwenden, zeigt Tshark nur Pakete an, die das TCP-Protokoll verwenden.
  • Filtern nach IP-Adresse: ip.addr == 192.168.1.1. Dieser Filter zeigt nur Pakete an, die die IP-Adresse 192.168.1.1 entweder als Quelle oder als Ziel haben.
  • Filtern nach Port: tcp.port == 80 oder tcp.port == 443. Diese Filter zeigen Pakete an, die die TCP-Ports 80 oder 443 verwenden. Port 80 wird üblicherweise für HTTP-Verkehr verwendet, und Port 443 wird für HTTPS-Verkehr verwendet.
  • Filtern nach HTTP-Methode: http.request.method == "GET". Dieser Filter zeigt nur HTTP-Anfragen an, die die GET-Methode verwenden.
  • Filtern nach DNS-Abfrage: dns.qry.name contains "example.com". Dieser Filter zeigt DNS-Pakete an, bei denen der Abfragename die Zeichenfolge "example.com" enthält.
  • Kombinieren von Filtern: tcp.port == 80 and http.request.method == "POST". Dieser Filter kombiniert zwei Bedingungen. Er zeigt nur Pakete an, die TCP-Port 80 verwenden und eine HTTP POST-Anfrage haben.

Anwenden von Filtern auf unsere Aufzeichnung

Beginnen wir damit, den HTTPS-Verkehr (TCP-Port 443) aus unserer Aufzeichnungsdatei zu filtern. Wir verwenden den folgenden Befehl:

tshark -r /home/labex/project/capture.pcapng -Y "tcp.port == 443"

Wenn Sie diesen Befehl ausführen, liest Tshark die Aufzeichnungsdatei /home/labex/project/capture.pcapng und wendet den Filter tcp.port == 443 an. Als Ergebnis sollten Sie nur Pakete sehen, die TCP-Port 443 verwenden, der normalerweise für HTTPS-Verkehr verwendet wird. Die Ausgabe enthält Details zu diesen Paketen, wie z. B. die Quell- und Ziel-IP-Adressen, Portnummern und Paketflags. Hier ist ein Beispiel für die mögliche Ausgabe:

  1   0.000000 192.168.1.100 → 93.184.216.34 TCP 74 43210 → 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1
  2   0.023456 93.184.216.34 → 192.168.1.100 TCP 74 443 → 43210 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=128 SACK_PERM=1
  3   0.023789 192.168.1.100 → 93.184.216.34 TCP 66 43210 → 443 [ACK] Seq=1 Ack=1 Win=64240 Len=0
  ...

Versuchen wir einen anderen Filter, um nach DNS-Verkehr zu suchen. Wir verwenden den folgenden Befehl:

tshark -r /home/labex/project/capture.pcapng -Y "dns"

Dieser Befehl zeigt nur die DNS-Pakete in der Aufzeichnung an. Die Ausgabe zeigt DNS-Abfragen und -antworten, einschließlich Details wie den Abfragenamen und die Antwort-IP-Adresse. Hier ist ein Beispiel für die mögliche Ausgabe:

  8   0.034567 192.168.1.100 → 8.8.8.8 DNS 82 Standard query 0x1234 A example.com
  9   0.056789 8.8.8.8 → 192.168.1.100 DNS 98 Standard query response 0x1234 A example.com A 93.184.216.34

Zählen von Paketen nach Typ

Sie können auch Filter verwenden, um bestimmte Pakettypen zu zählen. Dies kann nützlich sein, um einen Überblick über den Verkehr in einer Aufzeichnungsdatei zu erhalten. Beispielsweise können wir den folgenden Befehl verwenden, um die Anzahl der TCP-Pakete zu zählen:

tshark -r /home/labex/project/capture.pcapng -Y "tcp" | wc -l

In diesem Befehl liest tshark die Aufzeichnungsdatei und wendet den Filter tcp an. Die Ausgabe von tshark wird dann an den Befehl wc -l weitergeleitet (|), der die Anzahl der Zeilen in der Ausgabe zählt. Da jede Zeile ein Paket darstellt, erhalten wir so die Anzahl der TCP-Pakete in der Aufzeichnungsdatei.

Zählen wir die Anzahl der HTTPS-Pakete und speichern das Ergebnis in einer Datei. Wir verwenden den folgenden Befehl:

tshark -r /home/labex/project/capture.pcapng -Y "tcp.port == 443" | wc -l > /home/labex/project/filtered_packet_count.txt

Dieser Befehl ähnelt dem vorherigen, aber anstatt nur die Anzahl anzuzeigen, leiten wir die Ausgabe (>) in eine Datei namens filtered_packet_count.txt um. Sie können das Ergebnis mit dem folgenden Befehl anzeigen:

cat /home/labex/project/filtered_packet_count.txt

Die Ausgabe zeigt die Anzahl der Pakete, die dem Filter entsprechen. Beispielsweise:

42

Extrahieren bestimmter Felder

Tshark kann bestimmte Felder aus Paketen extrahieren, indem es die Optionen -T fields und -e verwendet. Dies ist nützlich, wenn Sie nur an bestimmten Informationen aus den Paketen interessiert sind, wie z. B. dem Host, der Methode und der URI einer HTTP-Anfrage. Hier ist ein Beispielbefehl:

tshark -r /home/labex/project/capture.pcapng -Y "http" -T fields -e http.host -e http.request.method -e http.request.uri

In diesem Befehl liest tshark die Aufzeichnungsdatei, wendet den Filter http an, um nur HTTP-Pakete auszuwählen, und verwendet dann die Option -T fields, um anzugeben, dass wir Felder extrahieren möchten. Die Option -e wird verwendet, um anzugeben, welche Felder extrahiert werden sollen. In diesem Fall extrahieren wir die Felder http.host, http.request.method und http.request.uri. Die Ausgabe könnte so aussehen:

example.com	GET	/index.html
example.com	GET	/images/logo.png

Analysieren und Exportieren von Netzwerkverkehr mit Tshark

In diesem Schritt werden wir uns darauf konzentrieren, wie man Netzwerkverkehr in verschiedenen Formaten exportiert und grundlegende Verkehrsanalysen mit Tshark durchführt. Diese Fähigkeiten sind von entscheidender Bedeutung, da sie es Ihnen ermöglichen, die erfassten Daten mit Ihren Kollegen zu teilen oder in anderen Tools zu verwenden. Am Ende dieses Abschnitts können Sie verschiedene Dateiformate verarbeiten und wertvolle Informationen aus Netzwerkverkehr extrahieren.

Verständnis von Aufzeichnungsdateiformaten

Wireshark, ein bekannter Netzwerkprotokollanalysator, unterstützt mehrere Aufzeichnungsdateiformate. Jedes Format hat seine eigenen einzigartigen Eigenschaften, die es wichtig zu verstehen sind, da sie bestimmen, wie die Daten später verwendet werden können.

  • pcapng: Dies ist das Standardformat, das von Wireshark verwendet wird. Es unterstützt mehrere Schnittstellen und verfügt über erweiterte Funktionen. Es ist eine gute Wahl, wenn Sie komplexe Netzwerkszenarien erfassen müssen.
  • pcap: Das klassische Format. Es ist mit älteren Tools kompatibel, hat aber im Vergleich zu pcapng weniger Funktionen. Wenn Sie mit Legacy - Systemen arbeiten müssen, könnte dieses Format Ihre erste Wahl sein.
  • csv: Komma - separierte Werte. Dieses Format ist sehr nützlich, wenn Sie die Daten in Tabellenkalkulationen importieren möchten, um sie weiter zu analysieren.
  • json: JavaScript Object Notation. Es ist ideal für die programmgesteuerte Analyse, da es von Programmiersprachen leicht geparst werden kann.
  • text: Ein einfaches Textformat, das für Menschen lesbar ist. Es ist nützlich, wenn Sie die Daten schnell ohne spezielle Tools anzeigen möchten.

Exportieren in verschiedene Dateiformate

Um das Format einer Aufzeichnungsdatei zu ändern, können Sie die Option -F in Tshark verwenden. Die allgemeine Befehlsstruktur lautet wie folgt:

tshark -r <input_file> -F <format> -w <output_file>

Hier gibt -r die Eingabedatei an, -F legt das Ausgabeformat fest und -w definiert die Ausgabedatei.

Nehmen wir ein Beispiel und exportieren unsere Aufzeichnung in das pcap - Format:

tshark -r /home/labex/project/capture.pcapng -F pcap -w /home/labex/project/export.pcap

Wenn dieser Befehl erfolgreich ausgeführt wird, sehen Sie keine Ausgabe auf dem Bildschirm. Um zu bestätigen, dass der Export erfolgreich war, können Sie den Befehl ls verwenden, um die Details der exportierten Datei aufzulisten:

ls -l /home/labex/project/export.pcap

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-r--r-- 1 labex labex 22468 Jan 27 12:45 /home/labex/project/export.pcap

Analysieren von Protokollstatistiken

Tshark ist nicht nur nützlich für den Export von Dateien, sondern auch für die Generierung verschiedener Statistiken über den erfassten Verkehr. Lassen Sie uns einige dieser statistischen Analyseoptionen untersuchen.

Protokollhierarchiestatistiken

Wenn Sie sehen möchten, wie verschiedene Protokolle in Ihrer Aufzeichnung verteilt sind, können Sie den folgenden Befehl verwenden:

tshark -r /home/labex/project/capture.pcapng -z io,phs

Die Option -z wird verwendet, um den Statistiktyp anzugeben. In diesem Fall steht io,phs für Protokollhierarchiestatistiken. Die Ausgabe zeigt die Hierarchie der Protokolle und den Prozentsatz der Pakete für jedes Protokoll.

Protocol Hierarchy Statistics
|
+ Ethernet
  + Internet Protocol Version 4
    + Transmission Control Protocol
      + Transport Layer Security
        + Hypertext Transfer Protocol Secure
    + User Datagram Protocol
      + Domain Name System

Gesprächsstatistiken

Um die Gespräche zwischen Endpunkten im Netzwerk zu analysieren, können Sie den folgenden Befehl verwenden:

tshark -r /home/labex/project/capture.pcapng -z conv,tcp

Dieser Befehl konzentriert sich auf TCP - Gespräche. Er zeigt Statistiken wie die beteiligten Endpunkte, die Anzahl der ausgetauschten Pakete und die insgesamt übertragenen Bytes an.

TCP Conversations
                                               |       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
                                               | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
192.168.1.100:43210 <-> 93.184.216.34:443          24   18765      18    4532      42    23297       0.000000000        8.2345

HTTP - Anfragestatistiken

Wenn Ihre Aufzeichnung HTTP - Verkehr enthält, können Sie die HTTP - Anfragen mit dem folgenden Befehl analysieren:

tshark -r /home/labex/project/capture.pcapng -z http,tree

Dieser Befehl organisiert die HTTP - Anfragen nach URI und zeigt die Anzahl der Anfragen für jede URI an.

HTTP/Requests:
 /index.html                                    1 requests
 /images/logo.png                               2 requests

Exportieren in verschiedene Textformate

Neben binären Formaten kann Tshark auch Daten in Textformate exportieren, die oft leichter zu analysieren sind.

Exportieren in CSV

Um bestimmte Felder aus der Aufzeichnung in eine CSV - Datei zu exportieren, können Sie den folgenden Befehl verwenden:

tshark -r /home/labex/project/capture.pcapng -T fields -e frame.number -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport -E header=y -E separator=, > /home/labex/project/tcp_summary.csv

Hier gibt -T fields an, dass wir bestimmte Felder exportieren möchten. Die Option -e wird verwendet, um die Felder zu definieren, die wir exportieren möchten, wie z. B. die Frame - Nummer, Quell - und Ziel - IPs sowie Quell - und Ziel - TCP - Ports. -E header=y fügt eine Kopfzeile zur CSV - Datei hinzu, und -E separator=, legt das Trennzeichen als Komma fest.

Prüfen des CSV - Exports

Nachdem Sie die Daten in eine CSV - Datei exportiert haben, können Sie die ersten few Zeilen der Datei schnell mit dem Befehl head anzeigen:

head -5 /home/labex/project/tcp_summary.csv

Die Ausgabe könnte so aussehen:

frame.number,ip.src,ip.dst,tcp.srcport,tcp.dstport
1,192.168.1.100,93.184.216.34,43210,443
2,93.184.216.34,192.168.1.100,443,43210
3,192.168.1.100,93.184.216.34,43210,443
...

Fortgeschrittene Tshark - Techniken und Piping

In diesem Schritt werden Sie fortgeschrittene Tshark - Techniken lernen. Diese Techniken sind für die Netzwerkanalyse von entscheidender Bedeutung, da sie es Ihnen ermöglichen, komplexe Operationen auf Netzwerkverkehrsdaten durchzuführen. Insbesondere werden Sie lernen, wie man Netzwerkverkehr von der Standardeingabe (stdin) liest und wie man Tshark mit anderen Befehlszeilentools mithilfe von Pipes kombiniert. Das Beherrschen dieser Fähigkeiten ermöglicht es Ihnen, leistungsstarke Netzwerkanalyseworkflows zu erstellen, die Ihnen Zeit und Mühe sparen können, wenn Sie mit großen Mengen an Netzwerkdaten umgehen.

Verständnis von Linux - Pipes und Standardeingabe

Im Linux - Betriebssystem sind Pipes (|) eine sehr nützliche Funktion. Sie fungieren als Brücke zwischen zwei Befehlen und ermöglichen es Ihnen, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu senden. Auf diese Weise können Sie mehrere Befehle verketten, um komplexere Aufgaben auszuführen. Die Standardeingabe (stdin) ist ein Datenstrom, den ein Programm für die Eingabe liest. Wenn Sie das - - Symbol mit vielen Befehlszeilentools verwenden, ist dies ein Signal für das Tool, dass die Eingabe von stdin anstelle einer Datei stammen sollte. Dies gibt Ihnen mehr Flexibilität bei der Datenverarbeitung.

Lesen von Netzwerkverkehr von der Standardeingabe

Tshark kann mithilfe der Option -r - Aufzeichnungsdaten von der Standardeingabe lesen. Diese Funktion ist in Szenarien äußerst nützlich, in denen Sie Daten von einem anderen Befehl verarbeiten möchten oder wenn Sie eine Aufzeichnung direkt vor Ort filtern müssen. Anstatt direkt aus einer Datei zu lesen, können Sie Daten in Tshark leiten.

Die grundlegende Syntax für das Lesen von Netzwerkverkehr von der Standardeingabe lautet:

cat <input_file> | tshark -r -

Versuchen wir dies mit unserer Aufzeichnungsdatei. Der folgende Befehl liest die Aufzeichnungsdatei und zeigt alle Pakete an, ähnlich wie wenn Sie tshark -r capture.pcapng ausführen würden.

cat /home/labex/project/capture.pcapng | tshark -r -

Die Ausgabe zeigt alle Pakete in der Aufzeichnung, wie hier:

  1   0.000000 192.168.1.100 → 93.184.216.34 TCP 74 43210 → 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1
  2   0.023456 93.184.216.34 → 192.168.1.100 TCP 74 443 → 43210 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=128 SACK_PERM=1
  ...

Filtern auf der Standardeingabe

Sie können auch Filter anwenden, wenn Sie von stdin lesen. Dies ermöglicht es Ihnen, sich auf bestimmte Arten von Netzwerkverkehr zu konzentrieren.

cat /home/labex/project/capture.pcapng | tshark -r - -Y "tcp.port == 80"

Dieser Befehl zeigt nur HTTP - Verkehr (TCP - Port 80) aus der Aufzeichnung an. Durch die Verwendung des Filters können Sie schnell die Daten isolieren, die Sie interessieren.

Erstellen einer Pipeline für die Netzwerkanalyse

Erstellen wir eine komplexere Pipeline, die mehrere Operationen auf den Netzwerkaufzeichnungsdaten ausführt. Diese Pipeline wird:

  1. Die Aufzeichnungsdatei lesen
  2. Nach DNS - Verkehr filtern
  3. Nur die DNS - Abfragenamen extrahieren
  4. Sie alphabetisch sortieren
  5. Duplikate entfernen
  6. Das Ergebnis in einer Datei speichern
cat /home/labex/project/capture.pcapng | tshark -r - -Y "dns" -T fields -e dns.qry.name | sort | uniq > /home/labex/project/dns_queries.txt

Lassen Sie uns das Ergebnis überprüfen, indem wir den folgenden Befehl ausführen:

cat /home/labex/project/dns_queries.txt

Die Ausgabe zeigt eine sortierte Liste eindeutiger DNS - Abfragenamen aus Ihrer Aufzeichnung, wie hier:

example.com
www.example.com

Kombinieren von Tshark mit anderen Tools

Tshark kann mit anderen Befehlszeilentools kombiniert werden, um eine leistungsstärkere Analyse durchzuführen.

Zählen von Pakettypen mit grep

cat /home/labex/project/capture.pcapng | tshark -r - | grep TCP | wc -l > /home/labex/project/tcp_count.txt

Diese Pipeline zählt die Anzahl der TCP - Pakete in der Aufzeichnung. Indem Sie grep verwenden, um TCP - Pakete zu finden, und wc -l, um sie zu zählen, können Sie schnell eine Vorstellung von der Menge des TCP - Verkehrs in Ihrer Aufzeichnung bekommen.

Extrahieren von HTTP - User - Agents mit sed

cat /home/labex/project/capture.pcapng | tshark -r - -Y "http.user_agent" -T fields -e http.user_agent | sed 's/,/\n/g' > /home/labex/project/user_agents.txt

Dies extrahiert alle HTTP - User - Agent - Strings und ersetzt Kommas durch Zeilenumbrüche. Dies macht die Ausgabe lesbarer und leichter zu analysieren.

Speichern der Ausgabe von stdin in einer Datei

Speichern wir die vollständige Ausgabe einer Tshark - Analyse von stdin in einer Datei. Auf diese Weise können Sie die Daten später überprüfen.

cat /home/labex/project/capture.pcapng | tshark -r - > /home/labex/project/stdin_output.txt

Lassen Sie uns den Inhalt überprüfen, indem wir den folgenden Befehl ausführen:

head -5 /home/labex/project/stdin_output.txt

Dies sollte die ersten 5 Zeilen der Analyse anzeigen, ähnlich wie hier:

  1   0.000000 192.168.1.100 → 93.184.216.34 TCP 74 43210 → 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1
  2   0.023456 93.184.216.34 → 192.168.1.100 TCP 74 443 → 43210 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=128 SACK_PERM=1
  3   0.023789 192.168.1.100 → 93.184.216.34 TCP 66 43210 → 443 [ACK] Seq=1 Ack=1 Win=64240 Len=0
  4   0.024012 192.168.1.100 → 93.184.216.34 TLSv1.2 192 Client Hello
  5   0.045678 93.184.216.34 → 192.168.1.100 TLSv1.2 1023 Server Hello, Certificate, Server Key Exchange, Server Hello Done

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Befehlszeilenschnittstelle von Wireshark (tshark) effektiv für die Netzwerkverkehrsanalyse nutzen können. Zunächst haben Sie die Grundkonzepte von Tshark verstanden und gelernt, wie man Netzwerkverkehr von Netzwerkschnittstellen aufzeichnet. Anschließend haben Sie untersucht, wie man Filter anwendet, um sich auf bestimmte Verkehrstypen zu konzentrieren, was bei der Arbeit mit großen Aufzeichnungsdateien von entscheidender Bedeutung ist.

Sie haben auch gelernt, wie man Netzwerkverkehr in verschiedenen Formaten exportiert, um ihn zu teilen oder weiter zu analysieren. Darüber hinaus haben Sie die statistischen Analysefähigkeiten von Tshark erkundet, um die Zusammensetzung des Netzwerkverkehrs zu verstehen. Schließlich haben Sie sich mit komplexeren Techniken beschäftigt, wie z. B. das Lesen von Verkehr von der Standardeingabe und das Erstellen von Analysepipelines, indem Sie Tshark mit anderen Befehlszeilentools kombinieren. Diese Fähigkeiten bieten Vorteile gegenüber der grafischen Wireshark - Schnittstelle in Szenarien wie der Verarbeitung großer Dateien, der automatisierten Analyse, der Analyse auf Remote - Servern und der Erstellung wiederholbarer Workflows. Durch das Beherrschen dieser Techniken haben Sie Ihre Fähigkeiten in der Netzwerkfehlersuche und der Sicherheitsanalyse verbessert, um effizienter in verschiedenen Netzwerkumgebungen arbeiten zu können.