Dieser Beitrag zeigt anhand von Ping, wie sich Mitschnitte des Netzwerk-Traffics in Wireshark auswerten lassen. Das Sniffing-Tool erlaubt es dem Anwender durch die Aufteilung des Fensters, sich schnell durch die verschiedenen Schichten des Netzwerk-Stacks zu hangeln und detaillierte Informationen auszulesen.
Für dieses Beispiel verwenden wir der Einfachheit halber und aus Gründen der Sicherheit zwei virtuelle Systeme (Ubuntu und Kali Linux) mit den IP-Adressen 192.160.0.124 (Ubuntu) und 192.168.0.123 (Kali). Auf beiden Systemen ist Wireshark verfügbar, wir können sie daher als Client oder Server verwenden.
Aufzeichnung starten
Zuerst klicken wir im Menü Aufzeichnen auf Optionen und markieren das mitzuschneidende Interface (hier eth0). Wenn Sie etwas länger mit der Maus auf den Eintrag verharren oder das kleine Dreiecksymbol bei Interface aufklappen, wird auch die zugehörige IP-Adresse angezeigt, um ganz sicher zu gehen, das richtige Gerät erwischt zu haben.
Am Fuß des Dialoges bei „Mitschnittfilter für die ausgewählte Schnittstelle“ geben wir den Wert „ICMP“ ein.
Sofern es sich um ein gültiges, also von Wireshark akzeptiertes Eingabemuster handelt (erlaubt sind diverses Kombinationen aus Protokollbezeichnung und Ports, die sich auch logisch verknüpfen lassen), wird der Hintergrund grün.
Dann klicken wir auf Start. Wireshark wechselt jetzt in den Aufzeichnungsmodus und sollte ein leeres Aufzeichnungsfenster zeigen, sofern Sie sich in einer isolierten Labor-Umgebung befinden.
In realen Umgebungen dagegen wird durchaus auch anderweitiger ICMP-Traffic zu beobachten sein. Dieser muss sich auch nicht explizit an den Host richten, auf dem Wireshark läuft, denn wir benutzen den angegeben Port ja im Promiscuous-Mode.
Wir können das Ziel im Filter aber auch spezifisch angeben, zum Beispiel mit
icmp and host 192.168.0.123
Anschließend pingen wir das System von unserem Ubuntu-Client aus. Im Gegensatz zu Windows läuft ein ping unter Linux bis zu einem Benutzer-Timeout. Da wir wenige Pakete benötigen, brechen wir den ping unmittelbar danach mit Strg+C wieder ab und beenden dann den Mitschnitt mit einem Klick auf das rote Quadrat. Das Ergebnis sollte dann so aussehen wie in folgender Abbildung.
Das Beispiel ist trivial, aber wir können die Ausgabe hervorragend nutzen, um den Aufbau der Wireshark-Ausgabe zu erläutern.
Aufteilung des Fensters
Im obersten Abschnitt des Fensters finden Sie die komplette Liste der aufgezeichneten Pakete. Der mittlere Teil zeigt für das oben ausgewählte Frame detaillierte Informationen zu den einzelnen Protokoll-Headern im OSI-Modell in aufsteigender Reihenfolge.
Der erste Eintrag mit „Frame 1…:“ steht dabei allerdings nicht für den Bitübertragungs-Layer 1 im OSI-Modell, sondern enthält eine von Wireshark erstellte Zusammenfassung mit grundlegenden Informationen zum Frame selbst. So zeigt der Eintrag die Frame-Nummer (hier 1) und die Länge des aufgezeichneten Paketes (98 Byte = 784 Bit) sowie die Interface-Nummer.
Umgangssprachlich ist im Zusammenhang mit Wireshark bzw. der Traffic-Analyse im Netzwerk von „Paketen“ die Rede. Das ist aber streng genommen nicht ganz richtig, wenn wir uns wie in diesem Beispiel im eigenen lokalen Netzwerk und damit auf Layer-2 bewegen. Daher handelt es sich beim zweiten Eintrag im mittleren Fenster mit der Bezeichnung „Ethernet II“ offensichtlich um Details zum von uns aufgezeichneten Ethernet-Frame.
MAC- und IP-Adresse auslesen
So gibt Wireshark hier die Quell-MAC-Adresse (Src) mit Alias und tatsächlicher Adresse (00:50:56:b7:30:b4) sowie die Ziel-MAC-Adresse an. Der besseren Lesbarkeit wegen (nur hier in der Zusammenfassung) erfolgt dies nicht in umgekehrter Reihenfolge. Bekanntlich steht im tatsächlichen Frame immer erst die Ziel-MAC.
Aus Alias und Art der MAC-Adresse (die erste 3 Byte sind immer herstellerspezifisch) ist außerdem ersichtlich, dass es sich um generische Adressen von VMware handelt, denn unsere VMs laufen unter ESXi.
Die Bezeichnung „Ethernet II …“ in Zeile 3 steht dann folgerichtig für das von Layer 2 transportierte, bzw. gekapselte Protokoll, also Internet Protocol Version 4. Zu erkennen ist hier außerdem bereits die Quell-IP (Src) mit 192.168.0.124 und Ziel-IP (Dst) mit 192.168.0.123.
Zeile 4 bezieht sich dann auf das eingekapselte bzw. im Layer-3 transportierte höherwertige Protokoll. Das muss aber nicht zwingend eines von Layer 4 (TCP, UDP), sondern kann durchaus auch ein höherwertiges Protokoll auf Layer 3 sein wie im Fall von ICMP. Es ist zu erkennen an der Bezeichnung „Internet Control Message Protocol“.