Der Netzwerkmonitor Wireshark ist mehr als nur ein Protokollprogramm. Aus einzelnen Paketen im Netzwerk setzt es sogar VoIP-Gespräche wieder zusammen. ZDNet zeigt, wie man das Tool sinnvoll zur Störungsbeseitigung einsetzt.
Beim Einsatz eines Netzwerkmonitorprogramms denkt man unwillkürlich an das Abhören anderer Benutzer. Doch ein sogenannter Sniffer findet seinen Einsatz vor allem bei der Diagnose von Störungen. Sniffer werden meist eingesetzt, um festzustellen, warum Rechner nicht korrekt miteinander kommunizieren, beispielsweise, warum Rechner A die Mails von Rechner B nicht annimmt.
In den Anfangszeiten des Internets vor der Erfindung des WWW gab es oft kleine Protokoll-Inkompatibilitäten zwischen Programmen verschiedener Hersteller, die durch den Einsatz eines Sniffers entdeckt werden konnten. Oft ließen sich Workarounds in den Config-Dateien der Programme finden. Manchmal musste man sich nach der Analyse allerdings damit zufriedengeben, dass man zwar den Grund für die Probleme im Netz kannte, eine Lösung jedoch frühestens mit der nächsten Version zu erwarten war.
Bei etablierten und ausgereiften Protokollen, zum Beispiel HTTP für das World Wide Web oder SMTP für E-Mail, kommen solche Inkompatibilitäten heute kaum noch vor. Anders sieht es mit neueren Protokollen wie SIP aus, das vor allem bei VoIP-Gesprächen zum Einsatz kommt. Insbesondere beim Überwinden von NAT-Grenzen[1] ergeben sich Schwierigkeiten.
Oft sprechen neue Versionen eines Serverprogramms keine älteren Protokollversionen mehr, weil diese inzwischen als unsicher gelten und geknackt werden können. Bekanntestes Beispiel dafür ist das SMB/CIFS-Filesharing, das Windows als Standard-Netzwerkprotokoll verwendet. Moderne Domain Controller unter Windows Server 2008 kommunizieren nicht mit Rechnern unter Windows NT oder Windows 95 und 98, weil sie verlangen, dass sämtliche SMB-Kommunikation digital signiert sein muss. Andernfalls könnte der Rechner eines Angreifers vortäuschen, selbst Domain Controller zu sein, und auf diese Weise gefälschte Active-Directory-Daten einschleusen. Mit einem Netzwerkmonitor kann man den Grund solcher Probleme sofort sehen. Windows hingegen begnügt sich mit einer unspezifischen Fehlermeldung, dass der Server nicht gefunden wurde.
Der häufigste Grund, einen Netzwerkmonitor einzusetzen, sind Firewalls und andere Sicherheitsprogramme, die auch legitime Kommunikation unterbinden, wenn sie nicht richtig konfiguriert sind. Derartige Probleme lassen sich mit einem Sniffer in vielen Fällen erkennen und lösen. So verbieten die Enterprise-Versionen vieler Antiviren-Software per Default eine ausgehende Kommunikation an TCP-Port 25 einer öffentlichen IP-Adresse. Der eigene Mail-Server in der Firma wird vorausgesetzt. Das soll verhindern, dass die PCs in der Firma zu Spamversendern eines Botnetzes werden.
Ein mittelständisches Unternehmen, das seine Mailinfrastruktur an einen Hoster gegeben hat, muss die IP-Adresse des vom Hoster zugewiesenen SMTP-Server jedoch ausnehmen, was häufig vergessen wird. Solche Kommunikationsprobleme kann man mit einem Sniffer gut diagnostizieren.
Manch andere Firewallprobleme lassen sich auch mit einem Sniffer nur sehr schwer feststellen. Dazu zählt das inzwischen gelöste Problem[3] des Postfix-Mailers mit der PIX-Firewall von Cisco. Das SMTP-Protokoll schreibt vor, dass das Ende einer Mail dadurch zu kennzeichnen ist, dass eine Zeile genau einen Punkt enthält. Somit wird das Ende einer Mail durch die Bytesequenz <cr><lf>.<cr><lf> bestimmt.
Cisco stellte seinerzeit fest, dass alle gängigen Mailer das erste <cr><lf> zusammen mit dem Ende der Mail in ein TCP-Paket packen. Im nächsten TCP-Paket folgte .<cr><lf>. Die meisten Spamprogramme hingegen verwenden nicht zwangsweise ein neues TCP-Paket. Beide Methoden sind eine völlig korrekte Implementierung des SMTP-Standards. Die Macher der PIX-Firewall glaubten nun, eine Methode zur Spamerkennung gefunden zu haben.
Allerdings verhält sich Postfix so wie die Spamprogramme. Das ist nicht nur standardkonform, sondern sogar sinnvoll, denn alle anderen Mailer benötigen für nur drei Nutzlastbytes ein komplettes TCP-Paket. Die PIX-Firewalls in den Versionen 5.2 und 6.0 erkennen Postfix-Mailer hingegen als Spamversender und filtern die Pakete.
Um derartige Probleme zu erkennen, gehört einiges an manueller Detektivarbeit dazu. Betrachtet man nur den TCP-Strom, dann sieht das Protokoll einer SMTP-Verbindung mit Postfix genauso aus wie mit einem anderen Mailer, beispielsweise Exim oder Sendmail. Den Unterschied sieht man nur, wenn man die TCP-Pakete einzeln betrachtet.
Probleme, wie sie aus der Kombination aus Postfix und PIX resultieren, sind zwar recht selten, sollten sie jedoch auftreten, sind sie schwer auszumachen und auszumerzen. Dass Pakete nicht durchgelassen werden, die es eigentlich sollten, kommt heutzutage allerdings immer wieder vor, da moderne Betriebssysteme standardmäßig mit einer aktivierten Firewall installiert werden.
Der Einsatz eines Netzwerksniffers zum Zweck des Abhörens ist in modernen Netzwerken schwieriger, als man zunächst annimmt. Zwar lassen sich alle Ethernetkarten in einen Promiscous Mode versetzen, der alle Pakete an den eigenen Rechner weiterleitet, jedoch sorgen moderne Ethernet-Switches dafür, dass Pakete, die nicht für den eigenen Rechner bestimmt sind, die Karte erst gar nicht erreichen. Dieses Verhalten hat performancetechnische Gründe.
Früher waren Rechner in einem Ethernet meist mit Hubs verbunden. Dann konnte der Promiscous Mode eingesetzt werden, um auch Unicast-Verbindungen zweier fremder Rechner zu belauschen. Auch heute wird für moderne Komponenten oftmals der Begriff Hub verwendet, tatsächlich handelt es sich jedoch um Switches.
Das macht es deutlich schwieriger für einen Administrator, einen Sniffer von seinem Arbeitsplatz aus einzusetzen, wenn sich ein Benutzer über Verbindungsprobleme beklagt. An die Datenpakete kommt man nur heran, wenn man sich irgendwo auf der Strecke zwischen den beiden Kommunikationspartnern einklinkt.
Dazu benötigt man einen Rechner mit zwei Ethernetports. Nachdem man sich eingeklinkt hat, ist es erforderlich, die beiden Ethernetports zu bridgen. Unter Windows XP ruft man dazu Start - Systemsteuerung - Netzwerk auf, bei Vista und Windows 7 wählt man Start - Systemsteuerung - Netzwerk- und Freigabecenter - Netzwerkverbindungen verwalten. Anschließend wählt man Verbindungen überbrücken (englisch: Bridge Connections), siehe Bild 1[4]. Anschließend kann man sich in Strecke zwischen zwei Switches einklinken.
Professionelle Ethernetkomponenten haben ein Feature, das sich Port Mirroring[5] nennt. Dabei hat ein Administrator die Möglichkeit, sämtlichen Verkehr, der auf einen bestimmten Port stattfindet, auf seinen eigenen zu kopieren. Auf diese Weise kann er einen bestimmten Rechner überwachen. Consumer- und und SOHO[6]-Switches haben dieses Features nicht.
Man könnte annehmen, dass es in einem WLAN leicht möglich ist, zumindest alle Rechner am selben Access Point zu monitoren. Dass geht allerdings nur in einem gänzlich unverschlüsselten WLAN, wie man es an öffentlichen Hotspots oft findet. Sobald WEP oder WPA implementiert ist, kann man nur Multi- und Broadcasts und an den eigenen Rechner gerichtete Unicasts empfangen. Das sogenannte WLAN-Passwort ist lediglich ein Pre-Shared-Key[7], der den Zugang ermöglicht. Auch wenn alle dasselbe Passwort eingeben, werden Unicasts für jeden Rechner mit einem eigenen Schlüssel kodiert. An dieser Stelle sei erwähnt, dass das Abhören von WLANs immer dann verboten ist, wenn man nicht selbst Betreiber oder von diesem beauftragt ist, auch nicht zu Diagnose- und Entstörzwecken. Das Abhören öffentlicher Hotspots ist also nicht gestattet. Darüber hinaus können weitere Beschränkungen greifen, beispielsweise Betriebsvereinbarungen in Firmen.
Der Open-Source-Netzwerkmonitor Wireshark[8], vormals Ethreal, ist einer der besten verfügbaren Netzwerksniffer und steht als kostenlose Freeware zum Download[8] bereit. Die große Anzahl an Protokollen, die er beherrscht, übertrifft sogar viele kommerzielle Lösungen, wobei man unter "beherrschen" versteht, dass er ein Protokoll nicht nur als Hexdump-Paket auflistet, sondern auch analysiert und erläutert. So lassen sich beispielsweise VoIP-Gespräche aus einem Netzwerk-Capture herausfiltern und ganz einfach abspielen.
Wenn man an einem ganz normalen Ethernetport hängt oder in ein verschlüsseltes WLAN eingebucht ist, dann sieht man nur die Unicast-Pakete des eigenen Rechners sowie alle Broad- und Multicast-Pakete. Alle Pakete, die sich zwei andere Rechner gegenseitig verschicken, können nicht mitgeschnitten werden.
Broadcast-Pakete kommen häufiger vor, als man zunächst annehmen möchte. Sie werden in der Regel zum Verbindungsaufbau benötigt. Bekanntestes Beispiel dürfte das ARP-Paket sein. Wenn ein Rechner mit einem zweiten Rechner im selben Netz per IP kommunizieren möchte, fragt er zunächst per Broadcast-ARP-Paket: "Wer ist 192.168.10.4?". Falls es einen Rechner mit dieser IP-Adresse gibt, antwortet dieser in einem Unicast-ARP-Paket zurück "Ich bin es und habe die MAC-Adresse 00:10:00:12:34:56!". Ein anderes Beispiel ist die Suche nach NetBIOS-Rechnern in einem Netzwerk, in dem kein WINS-Server implementiert ist.
Um einen Capture zu starten, muss man in Wireshark zunächst das Netzwerk-Interface auswählen, das man überwachen will, siehe Bild 2[9]. Dazu wählt man den Menüpunkt Capture - Interfaces. Anschließend startet man die Überwachung mit Capture - Start. Dann füllt sich langsam das obere Fenster mit Ethernetpaketen, siehe Bild 3[10].
Auf den ersten Blick wirkt die Paketliste für Einsteiger sehr unübersichtlich. Man sollte sich jedoch nicht abschrecken lassen. In der Liste von Bild 3[10] sieht man einige Pakete mit dem Protokoll TCP und dem Port smtp in der Beschreibung. Das bedeutet, dass E-Mail-Kommunikation stattfindet. Findet man auffallend viele solcher Pakete, so kann man davon ausgehen, dass der eigene PC zum Zombie geworden ist, und als Teil eines Botnetzes Spam versendet.
Besser auszuwertende Information findet man durch Rechtsklick auf so ein Paket. Wenn man dann Follow TCP Stream auswählt, erhält man alle Pakete, die zu dieser TCP-Verbindung gehören, in lesbarer Form dargestellt, siehe Bild 4[11]. Man erkennt sofort Absender und Empfänger der E-Mail und den Inhalt. Auch wenn es sich um eine HTML-Mail handelt, kann man den Inhalt noch erkennen. Bilder, Sounds und andere Dateien müssen allerdings in der Regel erst mit einem MIME-Programm ins Binärformat gebracht werden. Am einfachsten erreicht man das, wenn man den Inhalt der Mail aus dem Fenster herauskopiert und mit Telnet an Port 25 sich selbst per E-Mail schickt.
Nach komplizierteren Protokollen kann man Wireshark auch automatisch suchen lassen. Wählt man in einem Capture beispielsweise den Menüpunkt Statistics - VOIP, so sieht man alle vom eigenen Rechner geführten VoIP-Gespräche. Mit einem Klick auf den Button Player kann man die Gespräche abspielen lassen, siehe Bild 5[12].
Relativ unbekannt ist die Tatsache, dass Marktführer AVM eine undokumentierte Wireshark-Funktion in seine Fritzbox eingebaut hat. Das ist praktisch, wenn man den gesamten Internetverkehr seines Netzes überwachen möchte. Um die Funktion zu nutzen, ruft man im Web-Interface der Fritzbox die URL http://fritz.box/cgi-bin/webcm?getpage=../html/capture.html auf. Anschließend erscheint eine Seite, auf der man den gewünschten Trace wählen kann, siehe Bild 6[13]. Danach beginnt ein Download, der allerdings "unendlich" lang ist. Der Download bricht ab, wenn man den Stop-Button in Bild 6[13] drückt. Die heruntergeladene Datei ist der Capture, den man in Wireshark laden kann. So lässt sich beispielsweise für alle Rechner im eigenen Netz feststellen, ob sich einer davon einen Botnetz-Client eingefangen hat.
Wireshark ist ein sehr mächtiges Netzwerkmonitorprogramm, das sich sehr gut zum Diagnostizieren von Netzwerkproblemen einsetzen lässt. Die Möglichkeiten, den Netzwerkverkehr nicht nur mitzuschreiben, sondern sinnvoll auszuwerten, führt dazu, dass auch Einsteiger sofort Nutzen aus dem Programm ziehen können.
E-Mails werden vollautomatisch aus den Bruchstücken einzelner TCP-Pakete wieder zusammengesetzt. Das gleiche gilt für VoIP-Gespräche, die sich mit wenigen Mausklicks abspielen lassen.
Netzwerkmonitoren wie Wireshark kommt aktuell eine große Bedeutung zu. Fast jedes Betriebssystem hat heute eine Personal Firewall standardmäßig aktiviert. Ebenso erfreuen sich in Firmen sogenannte Security-Gateways steigender Beliebtheit. Eine Fehlkonfiguration dieser Komponenten führt häufig dazu, dass eine legitime Kommunikation nicht möglich ist. Mit Wireshark lassen sich solche Probleme gut diagnostizieren.
Obwohl Wireshark ein anerkanntes Diagnosetool ist, können damit offensichtlich auch illegale Aktivitäten durchgeführt werden. Sofern man nicht die Ethernet-Leitung an bestimmten Stellen anzapft und sich an einem "normalen" Port befindet, bekommt man allerdings nur die Unicast-Pakete für den eigenen Rechner mit. Trotzdem kann beispielsweise das Mitschneiden eines Telefongesprächs illegal sein. Das ist vergleichbar mit Telefonen, die eine Aufzeichnungsfunktion besitzen. Solche Telefone sind an sich legal. Die Benutzung dieser Funktion ist jedoch in vielen Fällen nicht gestattet.
Downloads:
Wireshark 32-Bit[14]
Wireshark 64-Bit[15]
Wireshark für Mac OS[16]
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/
[5] = http:/
[6] = http:/
[7] = http:/
[8] = http:/
[9] = http:/
[10] = http:/
[11] = http:/
[12] = http:/
[13] = http:/
[14] = http:/
[15] = http:/
[16] = http:/