Wireshark

Aus Foxwiki

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.

Capture Interfaces
  • 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.
Protokollverteilung beim Aufzeichnen

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
Filtern
  • 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
    Alle ICMP-Pakete
    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:
  1. Größe des Frames,
  2. Aufgezeichnete Größe (Slicing),
  3. 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.
Internet Protocol, Src: 192.168.2.157 (192.168.2.157), Dst: 66.249.93.104 (66.249.93.104)
   Version: 4
   Header length: 20 bytes
   Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
       0000 00.. = Differentiated Services Codepoint: Default (0x00)
       .... ..0. = ECN-Capable Transport (ECT): 0
       .... ...0 = ECN-CE: 0
   Total Length: 60
   Identification: 0x0fd3 (4051)
   Flags: 0x00
       0... = Reserved bit: Not set
       .0.. = Don't fragment: Not set
       ..0. = More fragments: Not set
   Fragment offset: 0
   Time to live: 128
   Protocol: ICMP (0x01)
   Header checksum: 0xc747 [correct]
       Good: True
       Bad : False
   Source: 192.168.2.157 (192.168.2.157)
   Destination: 66.249.93.104 (66.249.93.104)

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.

Links

extern