|  |   | 
| (169 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | 
| Zeile 1: | Zeile 1: | 
|  | '''Wireshark''' ist eine freie Software zur Analyse und grafischen Aufbereitung von Datenprotokollen |  | '''Wireshark''' - Analyse und grafischen Aufbereitung von Datenprotokollen | 
|  | 
 |  | 
 | 
|  | =Einleitung= |  | == Beschreibung == | 
|  | * Solche Datenprotokolle verwenden Computer auf verschiedensten Kommunikationsmedien wie dem lokalen Netzwerk, Bluetooth oder USB.
 |  | [[Datei:Wireshark Logo.svg|mini|200px]] | 
|  | * Hilft  bei der Suche nach Netzwerkproblemen, der Ermittlung von Botnet-Verbindungen oder beim Netzwerk-Management.
 |  | 
|  | * Wiresharkzeigt 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.
 |  | 
|  | 
 |  | 
 | 
|  | =Menü-Übersicht=
 |  | '''Wireshark''' (Kabelhai) ist eine [[freie Software]] zur Analyse und grafischen Aufbereitung von Datenprotokollen ([[Sniffer]]), die 2006 als [[Abspaltung (Softwareentwicklung)|Fork]] des Programms '''Ethereal''' entstanden ist | 
|  | * Im Menü ''Ansicht''können einige Eigenschaften der Anzeige verändert werden.
 |  | * [[Netzwerkprotokoll|Datenprotokolle]] verwenden Computer auf verschiedensten Kommunikationsmedien wie dem lokalen Netzwerk, [[Bluetooth]] oder [[USB]] | 
|  | * So kanndie Anzahl undArt derPaketfenster bestimmt werden |  | * Wireshark kann Administratoren, Netzwerk-Experten und Sicherheits-Experten bei der Suche nach Netzwerkproblemen, der Ermittlung von Botnet-Verbindungen oder beim Netzwerk-Management behilflich sein | 
|  | * Nützlich ist dieUmschaltung des Formates derZeitanzeige: ''Ansicht/Format der Zeitanzeige''.  |  | * Wireshark zeigt bei einer Aufnahme sowohl den Protokoll-[[Header|Kopf]] als auch den übertragenen Inhalt an | 
|  | * Über ''Ansicht/Paketliste einfärben''kann das Einfärben derFrames aktiviert/deaktiviert werden.
 |  | * Das Programm stützt sich bei der grafischen Aufbereitung auf die Ausgabe von kleinen Unterprogrammen wie [[pcap]] oder usbpcap, um den Inhalt der Kommunikation auf dem jeweiligen Übertragungsmedium mitzuschneiden | 
|  |  | * 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 | 
|  |  | * Hersteller: Wireshark-Community | 
|  |  | * Betriebssystem: [[Unix]], [[Linux]], [[Solaris (Betriebssystem)|Solaris]], [[macOS|Mac]], [[Microsoft Windows|Windows]] und diversen [[Berkeley Software Distribution|BSD]]-Versionen | 
|  |  | * Programmiersprache: [[C (Programmiersprache)|C]] | 
|  |  | * Lizenz: [[GNU General Public License|GPL]] ([[freie Software]]) | 
|  | 
 |  | 
 | 
|  | =Technische Details=
 |  | ; Leistungsmerkmale | 
|  | * '''Wireshark''' stellt entweder während oder nach der Aufzeichnung vom Datenverkehr einer Netzwerk-Schnittstelle dieDaten in Form einzelner Pakete dar. 
 |  | Wireshark fügt bei verschiedenen Protokollen Metainformationen zu Paketen hinzu, die sich nur aus dem Kontext des Datenflusses ergeben | 
|  | * Dabei werden die Daten übersichtlich mit entsprechend auf die jeweiligen Protokolle angepassten Filter aufbereitet.
 |  | * So wird zu [[Server Message Block|SMB]]-Paketen, die aus Operationen in Windows-Dateifreigaben stammen, der [[Datei]]- bzw. [[Verzeichnisstruktur|Verzeichnisname]] hinzugefügt, wenn das Öffnen der Datei mit aufgezeichnet wurde | 
|  | * So kann der Inhalt der mitgeschnittenen Pakete betrachtet oder nach diesem gefiltert werden. |  | * Diese speziellen Filter und Protokollmodule kann der Benutzer auch selber erstellen, um zum Beispiel selbst entworfene Übertragungsprotokolle mittels Wireshark effizient untersuchen zu können | 
|  | * 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 zunennen. 
 |  | 
|  | * 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 inWireshark integrieren.
 |  | 
|  | * Unter Windowszeichnet Wireshark den Datenverkehr ab Version 3.0 transparent mitHilfe 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 Benutzerentsprechende 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=
 |  | <noinclude> | 
|  | * 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.
 |  | 
|  | 
 |  | 
 | 
|  | =Display-Filter= |  | == Anhang == | 
|  | Netzwerkverkehr aufzeichnen, filtern und auswerten.
 |  | === Siehe auch === | 
|  | *Zeigt nur STMP (Port 25) und ICMP-Traffic
 |  | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | 
|  |  | === Links === | 
|  |  | ==== Projekt ==== | 
|  |  | # https://www.wireshark.org | 
|  |  | ==== Weblinks ==== | 
|  |  | # https://de.wikipedia.org/wiki/Wireshark | 
|  | 
 |  | 
 | 
|  | [[Datei:start_ws.png|zentriert|mini|Startbildschirm]] |  | [[Kategorie:Wireshark]] | 
|  |   |  | </noinclude> | 
|  | * Schaltfläche ''...mit diesem Filter:'' wird der Filter eingegeben, mit dem gesucht werden soll.
 |  | 
|  | * Anschließend die gewünschte (aktive) Verbindung auswählen.
 |  | 
|  | * Die Aufzeichnung der Datenübertragung starten.
 |  | 
|  | * Die Aufzeichnung läuft und Wiresharkzeigt in einem Statusfenster die Anzahl der aufgezeichneten Frames (Captured Packets) an.
 |  | 
|  |   |  | 
|  | [[Datei:stopp_ws.png|zentriert|mini|Protokollverteilung beim Aufzeichnen]]
 |  | 
|  |   |  | 
|  | * Datenübertragung stoppen.
 |  | 
|  |   |  | 
|  | =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'' 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
 |  | 
|  | [[Datei:ip_adr_ws.png|mini|zentriert|Filtern]]
 |  | 
|  | * Als IP-Adresse setzen wir die IP-Adresse des Sniffers ein, also unsere eigene. 
 |  | 
|  | * 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
 |  | 
|  | [[Datei:icmp_ws.png|zentriert|mini|ICMP-Pakete]]
 |  | 
|  | * In der 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 ''Ansicht'' 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 anderen IP-Adresse laufen.
 |  | 
|  | * Die ICMP Echo Replies sollten als Source eine andere 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 vorhergehenden 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-02 (Ethernet).
 |  | 
|  | * Dort sind 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)
 |  | 
|  | * 03: 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)
 |  | 
|  | * In der letzten Zeile in den Paketdetails wird das Internet Control Message Protocol (ICMP) dekodiert.
 |  | 
|  | * ICMP nutzt eine Kodierung bestehend aus Type und Code.
 |  | 
|  | **  Type 8, Code 0 ist ein ICMP Echo Request. 
 |  | 
|  |  Internet Control Message Protocol
 |  | 
|  |     Type: 8 (Echo (ping) request)
 |  | 
|  |     Code: 0 
 |  | 
|  |     Checksum: 0x475c [correct]
 |  | 
|  |     Identifier: 0x0300
 |  | 
|  |     Sequence number: 0x0300
 |  | 
|  |     Data (32 bytes)
 |  | 
|  | * Im Hexdump des Frames ist zu erkennen, dass Windows beim Ping das Alphabet als Nutzlast (Payload) benutzt. 
 |  | 
|  |  0000  00 30 f1 f5 0e 5b 00 30 f1 ee 90 7b 08 00 45 00   .0...[.0...{..E.
 |  | 
|  |  0010  00 3c 0f d3 00 00 80 01 c7 47 c0 a8 02 9d 42 f9   .........G....B.
 |  | 
|  |  0020  5d 68 08 00 47 5c 03 00 03 00 61 62 63 64 65 66   ]h..G\....abcdef
 |  | 
|  |  0030  67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76   ghijklmnopqrstuv
 |  | 
|  |  0040  77 61 62 63 64 65 66 67 68 69                                wabcdefghi
 |  | 
|  |   |  | 
|  | =Capture Filter=
 |  | 
|  | *Im Gegensatz zu einem Display Filter wirkt der Capture Filter schon beim Aufzeichen der Frames.
 |  | 
|  | * Nur Traffic der dem Capture Filter entspricht, wird aufgezeichnet.
 |  | 
|  | * Capture-Filter werden eingesetzt, wenn nur ein kleiner Teil des Datenverkehrs aufgezeichnet werden soll.
 |  | 
|  |   |  | 
|  | ==Syntax==
 |  | 
|  | * Die grundsätzliche Syntax für Capture-Filter in Wireshark sieht wie folgt aus: 
 |  | 
|  |  [not] Filterausdruck [and|or [not] Filterausdruck ...]
 |  | 
|  | * Die folgenden Filterausdrücke stehen zur Verfügung:
 |  | 
|  |  [src|dst] host <host>
 |  | 
|  | * Mit diesem Ausdruck kann der Traffic nach IP-Adressen gefiltert werden.
 |  | 
|  | * Mit dem Zusatz '''src''' oder '''dst''' kann der Filter auf eine Absender- oder Empfänger-Adresse eingegrenzt werden.
 |  | 
|  |  ether [src|dst] host <host>
 |  | 
|  | * Dieser Ausdruck grenzt den Trace auf bestimmte MAC-Adressen ein.
 |  | 
|  | * Auch hier kann auf Absender und Empfänger eingeschränkt werden.
 |  | 
|  |  gateway host <host>
 |  | 
|  | * Dieser Ausdruck filtert auf Packete, die host als Gateway/Router nutzen.
 |  | 
|  |   |  | 
|  | ===Operatoren===
 |  | 
|  | * Auch in Capture Filtern erlaubt Wireshark die Nutzung einiger Operatoren.
 |  | 
|  | {| class="wikitable"
 |  | 
|  | |-
 |  | 
|  | !Operator !!Beschreibung
 |  | 
|  | |-
 |  | 
|  | | ! oder not ||Negation
 |  | 
|  | |-
 |  | 
|  | |&& oder and||logische UND-Verknüpfung
 |  | 
|  | |-
 |  | 
|  | | ll oder or ||logische ODER-Verknüpfung
 |  | 
|  | |-
 |  | 
|  | |& ||bitweise UND-Verknüpfung
 |  | 
|  | |}
 |  | 
|  |   |  | 
|  | ==Zugriff auf Inhalte ab einem Offset==
 |  | 
|  | * Neben den vordefinierten Filterausdrücken erlaubt Wireshark den Zugriff auf alle Inhalte eines Frames.
 |  | 
|  | * Dazu können Bytes ab einem Offset maskiert und verglichen werden.
 |  | 
|  | * Die Syntax für diesen Zugriff lautet:
 |  | 
|  |  protokoll[Offset in Bytes vom Beginn des Headers:Anzahl der Bytes]
 |  | 
|  | * Es können 1, 2 oder 4 Bytes verglichen werden. 
 |  | 
|  | * Wird keine Anzahl angegeben, wird nur 1 Byte verglichen.
 |  | 
|  | * Der Vergleichswert kann dezimal oder hexadezimal (0x) angegeben werden.
 |  | 
|  | {| class="wikitable"
 |  | 
|  | |-
 |  | 
|  | |ip[8] = 1 ||Filter auf das 8 Bytes des IP-Headers (TTL)
 |  | 
|  | |-
 |  | 
|  | |tcp[0:2] = 22||	Filter auf die ersten beiden Bytes des TCP-Headers (Port-Nummer)
 |  | 
|  | |-
 |  | 
|  | |tcp[13] = 2 ||Filter auf Byte 13 des TCP-Headers (Flags). Segemente die nur das SYN-Flag gesetzt haben passieren diesen Filter.
 |  | 
|  | |-
 |  | 
|  | |tcp[13] & 0x02 = 2 ||Hier wird das Byte 13 zuerst mit 0x02 maskiert. Dadurch passieren alle TCP-Segemente mit gesetztem SYN-Flag den Filter. Die anderen Flags sind ausgeblendet.
 |  | 
|  | |}
 |  | 
|  |   |  | 
|  | = Links =
 |  | 
|  | == Interne Links ==
 |  | 
|  | == Weblinks ==
 |  | 
|  | * https://de.wikipedia.org/wiki/Wireshark
 |  | 
|  | * http://www.nwlab.net/tutorials/wireshark
 |  | 
|  |   |  | 
|  |   |  | 
|  | [[Category:Netzwerkanalyse]]
 |  |