Wireshark
Wireshark ist eine freie Software zur Analyse und grafischen Aufbereitung von Datenprotokollen, die 2006 als Fork des Programms Ethereal (Anspielung auf Ethernet) entstanden ist.
Vergangenheit und Zukunft
- Vorläufer von Ethereal und Wireshark waren Netzwerk-Analyse-Produkte kommerzieller Hersteller.
- In Erscheinungsform und Wirkungsweise erinnert manches an diese Vorläufer.
- Einige sind inzwischen durch das erfolgreiche Open-Source-Projekt Ethereal/Wireshark vom Markt verdrängt und infolgedessen eingestellt worden.
- Wireshark ist ein paket- und nicht datenorientierter Sniffer.
- Schwerpunkt ist die Analyse punktueller Probleme.
Einleitung
- Solche Datenprotokolle verwenden Computer auf verschiedensten Kommunikationsmedien wie dem lokalen Netzwerk, Bluetooth oder USB.
- Hilft bei der Suche nach Netzwerkproblemen, der Ermittlung von Botnet-Verbindungen oder beim Netzwerk-Management.
- Wireshark zeigt bei einer Aufnahme sowohl den Protokoll-Kopf als auch den übertragenen Inhalt an.
- Das Programm stützt sich bei der grafischen Aufbereitung auf die Ausgabe von kleinen Unterprogrammen wie pcap oder usbpcap.
- Der Inhalt der Kommunikation auf dem jeweiligen Übertragungsmedium wird mitgeschnitten.
Ping und ICMP
Netzwerkverkehr aufzeichnen, filtern und auswerten.
- Schaltfläche Capture startet die Aufzeichnung der Datenübertragung.
- Die Aufzeichnung läuft und Wireshark zeigt in einem Statusfenster die Anzahl der aufgezeichneten Frames (Captured Packets) an.
Testdaten erzeugen
- Beispiel:
- Ping auf den Host www.google.de
- In einer Shell oder Eingabeaufforderung das Kommando ping www.google.de eingeben.
C:\>ping www.google.de Ping www.google.de [66.249.93.104] mit 32 Bytes Daten: Antwort von 66.249.93.104: Bytes=32 Zeit=76ms TTL=243 Antwort von 66.249.93.104: Bytes=32 Zeit=77ms TTL=243 Antwort von 66.249.93.104: Bytes=32 Zeit=75ms TTL=244 Antwort von 66.249.93.104: Bytes=32 Zeit=75ms TTL=243 Ping-Statistik für 66.249.93.104: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 75ms, Maximum = 77ms, Mittelwert = 75ms
- Jetzt halten wir die Datenaufzeichnung im Wireshark mit der Schaltfläche Stop im Capture-Fenster an.
- Wireshark bereitet die aufgezeichneten Frames nun auf und zeigt sie an.
- Da beim Aufzeichnen keinen Filter gesetzt wurde, ist sämtlicher Netzwerkverkehr mitgeschnitten worden.
Filter
- Das wichtigste Instrument zum Auswerten von Traces sind Filter.
- Mit Filtern wird die Anzeige auf die interessanten Frames eingeschränkt.
- Um nur noch Traffic von und zu unserer eigenen IP-Adresse zu sehen, geben wir im Eingabefeld Filter von Wireshark folgenden Ausdruck ein:
ip.addr == 192.168.1.2
- Als IP-Adresse setzen wir die IP-Adresse des Sniffers ein (wurde unter Capture / Interfaces angezeigt).
- Wireshark zeigt nun nur noch Frames an, die diese Filterbedingung erfüllen.
- Mit der Schaltfläche Clear kann die Filterbedingung gelöscht werden.
Filter erweitern
- Anzeige weiter einschränken:
- Nur der Traffic des Ping-Kommandos ist interessant.
- Ping nutzt ein Protokoll namens ICMP.
- Filterbedingung entsprechend erweitern:
ip.addr == 192.168.1.2 && icmp
- Mit dem Operator && werden die einzelnen Filterbedingungen UND-verknüpft.
- icmp schränkt die Anzeige auf das Protokoll ICMP ein
- Anzeige: alle ICMP-Pakete
- In Anzeige sind jetzt nur noch ICMP-Pakete unserer eigenen IP-Adresse zu sehen.
Frames
- Das Hauptfenster von Wireshark teilt sich in drei Bereiche:
- die Paketliste (engl. packet list pane),
- die Paketdetails (engl. packet details pane) und
- die Hexadezimale Paketanzeige (engl. packet bytes pane).
- Die in der Paketliste angezeigten Spalten können über die Menüauswahl Edit / Preferences** ausgewählt werden.
Paketliste
- Die Spalte No. zeigt die Nummer des Frames an.
- Durch den aktiven Filter müssen die Nummern jetzt nicht fortlaufend sein.
- Die Spalte Source zeigt den Absender eine Frames an.
- In der Spalte Destination steht der Empfänger des Frames.
- Die Spalte Protocol gibt das Protokoll in diesem Frame an.
- Die Spalte Info enthält zusätzliche Angaben zum Frame.
- Alle ICMP Echo Request sollten von unserer eigenen IP-Adresse zu einer IP-Adresse von Google laufen.
- Die ICMP Echo Replies sollten als Source die Google-IP enthalten.
Paketdetails
- Im mittleren Teil des Bildschirm werden die Details zum ausgewählten Frame angezeigt.
- Zuerst ein ICMP Echo Request in der Paketliste auswählen.
- In den Paketdetails werden die Layer (Schichten) des Datenframes angezeigt.
- Durch Anklicken des Plus-Symbols kann der gewählte Layer erweitert werden.
- Ganz oben in den Paketdetails findet man Informationen von Wireshark zum betreffenden Frame:
- Größe des Frames,
- Aufgezeichnete Größe (Slicing),
- Zeit und Zeitdifferenz zum vorgehenden Frame.
Frame 6086 (74 bytes on wire, 74 bytes captured) Arrival Time: Feb 23, 2006 15:18:20.081749000 Time delta from previous packet: 3211.323936000 seconds Time since reference or first frame: 3211.323936000 seconds Frame Number: 6086 Packet Length: 74 bytes Capture Length: 74 bytes Protocols in frame: eth:ip:icmp:data
- Die nächste Zeile liefert Informationen zum OSI-Layer 2 (Ethernet).
- Dort ist die MAC-Adressen von Absender und Empfänger.
- Die MAC-Adresse des Empfängers wird im Normalfall die MAC-Adresse des Default Routers sein.
Ethernet II, Src: 192.168.2.157 (00:30:f1:ee:90:7b), Dst: 192.168.2.1 (00:30:f1:f5:0e:5b) Destination: 192.168.2.1 (00:30:f1:f5:0e:5b) Source: 192.168.2.157 (00:30:f1:ee:90:7b) Type: IP (0x0800)
- Layer 3: Internet Protocol (IP).
- Dort sind Angaben wie IP-Flags, die Time to live (TTL), das Protokoll und Absender- und Empfänger-IP-Adressen.
Technische Details
- Wireshark stellt entweder während oder nach der Aufzeichnung von Datenverkehr einer Netzwerk-Schnittstelle die Daten in Form einzelner Pakete dar.
- Dabei werden die Daten übersichtlich mit entsprechend auf die jeweiligen Protokolle angepassten Filter aufbereitet.
- So kann der Inhalt der mitgeschnittenen Pakete betrachtet oder nach diesem gefiltert werden.
- Wireshark kann auch Statistiken zum Datenfluss erstellen.
- Über spezielle Filter können gezielt binäre Inhalte wie Bilder u. a. extrahiert werden.
- Als Netzwerkschnittstellen, deren Datenverkehr analysiert werden kann, sind primär Ethernet mit den verschiedenen Internetprotokollfamilien wie TCP/IP zu nennen.
- Auch kann Wireshark drahtlosen Datenverkehr im Wireless Local Area Network (WLAN) und Bluetooth-Verbindungen aufzeichnen und analysieren.
- Über entsprechende Module lassen sich weitere übliche Schnittstellen wie USB in Wireshark integrieren.
- Unter Windows zeichnet Wireshark den Datenverkehr ab Version 3.0 transparent mit Hilfe von Npcap auf.
- Bis zur Version 3.0 wurde WinPcap verwendet.
- Voraussetzung dafür ist immer, dass der jeweilige Rechner, auf dem Wireshark betrieben wird, über die entsprechenden physischen Schnittstellen verfügt und der Benutzer entsprechende Zugriffsberechtigungen auf diese Schnittstellen hat.
- Neben der grafischen Wireshark-Version gibt es das auf demselben Netzwerkcode basierende Tshark.
- Tshark wird über Kommandozeilen-Optionen gesteuert.
- Für beide Versionen wurde das Aufzeichnungsformat der Messdaten von tcpdump entlehnt bzw. übernommen.
- Wireshark kann zusätzlich die Formate anderer LAN-Analyzer einlesen.
Besondere Leistungsmerkmale
- Wireshark fügt bei verschiedenen Protokollen Metainformationen zu Paketen hinzu.
- Diese ergeben sich nur aus dem Kontext des Datenflusses.
- So wird zu SMB-Paketen, die aus Operationen in Windows-Dateifreigaben stammen, der Datei- bzw. Verzeichnisname hinzugefügt. * Nur, wenn das Öffnen der Datei mit aufgezeichnet wurde.
- Diese speziellen Filter und Protokollmodule kann der Benutzer auch selber erstellen.
- Zum Beispiel um selbst entworfene Übertragungsprotokolle mittels Wireshark effizient untersuchen zu können.