Wireshark

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung

Wireshark (früher Ethereal) ist ein Werkzeug zur Analyse von Netzwerk-Verbindungen. Es zeichnet den Datenstrom einer Netzwerk-Schnittstelle (meist eine Ethernet-Netzwerkkarte mit TCP/IP) auf und stellt die Daten als einzelner Pakete dar. Die gesammelten Daten listet Wireshark übersichtlich nach dem Zeit-Stempel und in einer für den Menschen lesbare Form auf. Der Inhalt der Datenpakete kann lässt sich einsehen und es ist auch möglich nach einem gewünschten Protokoll zu filtern.


Inhaltsverzeichnis

Installation

Die Installation von Wireshark gestaltet sich wie üblich einfach: es muss nur das Paket wireshark und wireshark-gui installiert werden (entweder mit yum, yumex oder mit pirut), da es im Repository von Fedora zur Verfügung steht, so werden auch eventuell fehlende Abhängigkeiten aufgelöst.

[root]# yum install wireshark wireshark-gui


Verwenden

Da die Netzwerkkarte in einen speziellen Modus geschaltet werden muss, ist es unumgänglich, dass Wireshark als root gestartet wird.

Starten

In einem Terminal kann zum Starten von Wireshark

[root]# wireshark

eingegeben werden oder

Anwendungen -> Internet -> Wireshark Network Analyser

Wireshark

Aktivieren der Netzwerkkarte

Es stehen alle Netzwerkkarten, welche im System verfügbar sind zur Verfügung. Jedoch macht die Verwendung bei Loop-Interface nur beschränkten Sinn. Durch Drucken von List the avaibale capture interfaces... kann das Interface gewählt werden, mit welchem der Datenverkehr aufgezeichnet werden soll.

Der Netzwerkkarten-Auswahl-Dialog

In Normalfall wird das Interface gewählt, welches mit dem lokalen Netzwerk verbunden ist.

Filtern

Bei Wireshark ist es möglich, den Datenverkehr vor der Auszeichnung oder danach beispielsweise nach einem bestimmten Protokoll zu filtern.

Aufzeichnen von bestimmten Paketen

Durch das geschickte Setzen von Filtern vor der Datenaufzeichnung kann die Dateigrösse der Capture-Datei kleingehalten werden. Im Feld neben Capture Filter: können die Filter definiert werden.

Setzen von Filtern

Durch Drücken auf Capture Filter: besteht die Möglichkeit aus einem Satz vordefininierter Filter auszuwählen.

Setzen von Filtern

Es stehen 14 vordefinierte Filter zur Verfügung. Wem dies nicht reicht oder spezielle Anforderungen gestellt werden, können eigene Filter erstellt werden.

Filtern nach der Aufzeichnung

Wurde der gesamten Datenverkehr aufgezeichnet, lassen sich die Pakete filtern und so nun noch die anzeigen, welche einem interessieren.

Filtern der Daten

Starten der Aufzeichnung

Durch Drücken des Capture-Knopfes wird der Aufzeichnungsvorgang gestartet.

Wird der Aufzeichnungsvorgang gestoppt, dann werden die gesammelten Daten in das Wireshark-Fenster übertragen. Im Hauptfenster sind die Daten gemäss ihrem Zeitstempel chronologisch geordnet. Im Fenster in der Mitte sind Informationen zu diesem Paket ersichtlich. Und zu unterst kann der Inhalt des Paketes eingesehen werden.


Anwendungsbeispiele

Nachfolgend sollen diverse Anwendungsfälle im einzelnen betrachtet werden. Diese Punkte sollten die Benutzer auch sensiblisieren im Umgang mit den persönlichen Daten.

Ping

Das Prüfen der Erreichbarkeit von anderen Systemen kann über das Senden eines Ping geschehen. Es wird das ICMP-Prokoll genutzt.

ping www.google.com

Die Ausgaben sehe ungefähr so aus. Ohne Parameter wird der Befehl unendlich oft ausgeführt.

PING www.l.google.com (209.85.129.147) 56(84) bytes of data.
64 bytes from fk-in-f147.google.com (209.85.129.147): icmp_seq=1 ttl=247 time=29.4 ms
64 bytes from fk-in-f147.google.com (209.85.129.147): icmp_seq=2 ttl=247 time=25.1 ms
64 bytes from fk-in-f147.google.com (209.85.129.147): icmp_seq=3 ttl=247 time=29.1 ms
64 bytes from fk-in-f147.google.com (209.85.129.147): icmp_seq=4 ttl=247 time=29.2 ms
64 bytes from fk-in-f147.google.com (209.85.129.147): icmp_seq=5 ttl=247 time=26.4 ms

--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 25.152/27.879/29.407/1.749 ms

Mit Ctrl + c wird das Pingen nach 5-6 Durchläufen abgebrochen. Wireshark hat nun die Daten aufgezeichnet.

Aufzeichnung der Ping-Daten

Nach der Aufzeichnung kann nun wie im Absatz "Filtern nach der Aufzeichnung" beschrieben, das aufgezeichnete Material gefiltert werden.

HTTP-Verkehr

Der gesamte HTTP-Datenverkehr läuft normalerweise über Port 80 und ist unverschlüsselt. Der Datenverkehr beim Besuch des Fedorawiki kann so aussehen.

No.     Time        Source                Destination           Protocol Info
      4 1.227973    192.168.10.45         88.198.43.11          HTTP     GET /index.php/Wireshark HTTP/1.1
      6 2.701306    88.198.43.11          192.168.10.45         HTTP     HTTP/1.1 304 Not Modified
     19 7.780671    192.168.10.45         88.198.43.11          HTTP     GET /phpmyvisites.php?url=http%3A//fedorawiki.de/index.php/Wireshark&pagename=&id=4&res=1400x1050&col=24&h=23&m=27&s=2...&ref= HTTP/1.1
     20 7.780783    192.168.10.45         88.198.43.11          HTTP     GET /images/thumb/a/af/Wireshark_fil01-1.png/400px-Wireshark_fil01-1.png HTTP/1.1
     24 9.102456    88.198.43.11          192.168.10.45         HTTP     HTTP/1.1 304 Not Modified
     29 9.211616    88.198.43.11          192.168.10.45         HTTP     HTTP/1.1 200 OK (GIF89a)

Die ganze Übertragung beginnt von der Quelle 192.168.10.45 mit dem Ziel 89.198.43.11 und der Übergabe des Seitennamens. Unter Info steht, was gemacht wurde. Es lässt sich erkennen, dass zum Beispiel die Auslösung des Monitor übertragen wird. Dann geht es hin und her. Und der Webserver liefert die Daten an das anfragende System.

Wirf man einen Blick auf die Paket-Informationen, lassen sich Informationen ausmachen, welche eigentlich nicht für die Öffentlichkeit bestimmt sind. Beispielsweise ein Login in einem Forum.

No.     Time        Source                Destination           Protocol Info
     43 14.157505   192.168.10.45         www.xxx.yyy.zzz       HTTP     POST /forum/login.php HTTP/1.1 (application/x-www-form-urlencoded)

Das Paket hat folgenden Inhalt:

0000   00 0f 66 c8 8c 3e 00 11 0a 81 41 5d 08 00 45 00  ..f..>....A]..E.
0010   00 b7 e4 c5 40 00 40 06 47 7e c0 a8 0a 2d d5 85  ....@.@.G~...-..
0020   6d a2 b3 ca 00 50 5e e6 e5 12 c4 4c 93 79 80 18  m....P^....L.y..
0030   00 b7 6d 98 00 00 01 01 08 0a 08 26 0e 24 13 71  ..m........&.$.q
0040   26 09 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20  &.Content-Type: 
0050   61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77  application/x-ww
0060   77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65  w-form-urlencode
0070   64 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74  d..Content-Lengt
0080   68 3a 20 36 30 0d 0a 0d 0a 72 65 64 69 72 65 63  h: 60....redirec
0090   74 3d 69 6e 64 65 78 2e 70 68 70 26 75 73 65 72  t=index.php&user
00a0   6e 61 6d 65 3d 66 61 62 26 70 61 73 73 77 6f 72  name=XXXX&passwor
00b0   64 3d 73 70 65 65 63 68 33 26 6c 6f 67 69 6e 3d  d=YYYY&login=
00c0   4c 6f 67 69 6e                                   Login

An der Position von XXXX stand der Benutzername und unter YYYY das Passwort im Klartext. Dieses einfache Beispiel zeigt, wie trivial es für einen Angreifer sein kann, an die Login-Daten zu kommen. Aus diesem Grund sollte man, wenn immer möglich, verschlüsselte HTTP-Verbindungen verwenden, wenn man sich irgendwo einloggen muss. Wenn dies nicht möglich ist, empfielt es sich, dass Passwort in kurzen und regelmässigen Abständen zu ändern.

HTTPS-Verkehr

Die sichere Version von HTTP ist HTTPS. Das S steht für secure. Diese Art der Datenübertragung wird im Browser mit einem kleinen Schloss an und vorwiegend bei heiklen Angelegenheiten wie Online-Banking, Bezahlung mit Kreditkarte und ähnlichem verwendet. Es werden häufig aber auch Webseiten mit einem Zertifikat gesichert, bei welchen man sich einloggen muss. In diesem Beispiel wird das Bugtracking-System https://bugzilla.redhat.com verwenden. Man muss sich dort mit E-Mail-Adresse und Passwort einloggen.

Der Auszug zeigt eine Übertragung der Daten von und zu https://bugzilla.redhat.com. ACK und SYN wurden entfernt.

No.     Time        Source                Destination           Protocol Info
 4 0.136593    192.168.10.41         66.187.233.198        TLSv1    Client Hello
 6 0.275399    66.187.233.198        192.168.10.41         TLSv1    Server Hello, Change Cipher Spec, Encrypted Handshake Message
 8 0.286284    192.168.10.41         66.187.233.198        TLSv1    Change Cipher Spec, Encrypted Handshake Message, Application Data
 9 0.468985    66.187.233.198        192.168.10.41         TLSv1    Application Data, Application Data
10 0.470068    66.187.233.198        192.168.10.41         TLSv1    Encrypted Alert
13 0.472454    192.168.10.41         66.187.233.198        TLSv1    Encrypted Alert
18 0.615423    192.168.10.41         66.187.233.198        TLSv1    Client Hello
20 0.753557    66.187.233.198        192.168.10.41         TLSv1    Server Hello, Change Cipher Spec, Encrypted Handshake Message
22 0.754298    192.168.10.41         66.187.233.198        TLSv1    Change Cipher Spec, Encrypted Handshake Message, Application Data
24 1.190030    66.187.233.198        192.168.10.41         TLSv1    Application Data, Application Data, 
25 1.193014    66.187.233.198        192.168.10.41         TCP      [TCP segment of a reassembled PDU]
40 1.519268    66.187.233.198        192.168.10.41         TLSv1    Application Data
42 1.613325    66.187.233.198        192.168.10.41         TCP      [TCP segment of a reassembled PDU]
44 1.615742    66.187.233.198        192.168.10.41         TLSv1    Application Data
45 1.616178    192.168.10.41         66.187.233.198        TLSv1    Encrypted Alert
50 85.803715   192.168.10.41         66.187.233.198        TLSv1    Client Hello
52 85.946837   66.187.233.198        192.168.10.41         TLSv1    Server Hello, Change Cipher Spec, Encrypted Handshake Message
54 85.948375   192.168.10.41         66.187.233.198        TLSv1    Change Cipher Spec, Encrypted Handshake Message, Application Data
56 86.129429   192.168.10.41         66.187.233.198        TLSv1    Application Data, Application Data, Application Data
58 87.380401   66.187.233.198        192.168.10.41         TLSv1    Application Data, Application Data, 
68 87.666113   66.187.233.198        192.168.10.41         TLSv1    Application Data
70 87.669075   66.187.233.198        192.168.10.41         TCP      [TCP segment of a reassembled PDU]
72 87.707257   66.187.233.198        192.168.10.41         TCP      [TCP segment of a reassembled PDU]
74 87.709873   66.187.233.198        192.168.10.41         TCP      [TCP segment of a reassembled PDU]
76 87.712640   66.187.233.198        192.168.10.41         TLSv1    Application Data
77 87.713254   192.168.10.41         66.187.233.198        TLSv1    Encrypted Alert

Es lässt sich kein Hinweis auf die Eingabe einer E-Mail-Adresse oder eines Passwortes finden.

FTP-Datenverkehr

Ein Schwachpunkt von FTP ist, dass die Benutzernamen und die Passwörter im Klartext übertragen werden. Wireshark wird mit einem Filter für das FTP-Protokoll gestartet. Beispielsweise eine Verbindung zu SWITCHmirror. ACK und SYN wurden entfernt.

No.     Time        Source                Destination           Protocol Info
4 0.040292    132.63.14.145          192.168.10.41         FTP      Response: 220-SWITCHmirror (formerly known as Swiss SunSITE) welcomes you!
6 0.041445    132.63.14.145          192.168.10.41         FTP      Response: 220 
8 0.041630    192.168.10.41         132.63.14.145          FTP      Request: USER fabianXXXXXXXX
10 0.060549    132.63.14.145          192.168.10.41         FTP      Response: 331 Please specify the password.
11 0.060629    192.168.10.41         132.63.14.145          FTP      Request: PASS fabianXXXXXX@XXXXXXXXXXXX
13 0.091663    132.63.14.145          192.168.10.41         FTP      Response: 230- Welcome to SWITCHmirror                     ftp://mirror.switch.ch/
14 0.092301    132.63.14.145          192.168.10.41         FTP      Response: 230- -----------------------                    http://mirror.switch.ch/
16 0.092680    132.63.14.145          192.168.10.41         FTP      Response: 230-
17 0.093084    132.63.14.145          192.168.10.41         FTP      Response: 230- SWITCHmirror is located in Zurich, Switzerland and operated by
19 0.093480    132.63.14.145          192.168.10.41         FTP      Response: 230- SWITCH (Swiss Education & Research Network)   http://www.switch.ch/

es lässt sich die erste Meldung des Servers

4 0.040292    132.63.14.145          192.168.10.41         FTP      Response: 220-SWITCHmirror (formerly known as Swiss SunSITE) welcomes you!

Der Benutzername

8 0.041630    192.168.10.41         132.63.14.145          FTP      Request: USER fabianXXXXXXXX

Das Passwort

11 0.060629    192.168.10.41         132.63.14.145          FTP      Request: PASS fabianXXXXXX@XXXXXXXXXXXX

Ab dem 14. Paket sendet der FTP-Server die Willkommensmeldung. Im FTP-Client, hier gFTP sieht die Meldung so aus.

230- Welcome to SWITCHmirror                     ftp://mirror.switch.ch/
230- -----------------------                    http://mirror.switch.ch/
230-
230- SWITCHmirror is located in Zurich, Switzerland and operated by
230- SWITCH (Swiss Education & Research Network)   http://www.switch.ch/
230-
230- If you have problems downloading and are seeing "Access denied"
230- or "Permission denied", please make sure that you started your

Für die Datenübertragung empfehlen sich Alternativen wie ssh und scp, welche ein Höchstmass an Sicherheit bieten. Wenn die Verwendung nicht möglich ist, sollte man wenn möglich auf anonyme FTP-Server zugreifen, da dort keine persönliche Daten preisgegeben werden müssen.

SSH-Datenverkehr

SSH ist eine anerkennte Methode für die sichere Benutzung von Remote-Systemen, den Zugriff auf entfernte Rechner und Server und die Datei-Übertragung. Es werden nur die TCP und die SSH aufgezeichnet. ACK und SYN wurden entfernt.

Es wird mit

 ssh -l root 192.168.10.11

eine Verbindung zu diesem System aufgebaut. Dieser Mitschnitt zeigt alle Daten bis zum Erscheinen des Promtes auf dem entfernten System.

No.     Time        Source                Destination           Protocol Info
 4 0.026461    192.168.10.11         192.168.10.41         SSHv2    Server Protocol: SSH-2.0-OpenSSH_4.3
 6 0.026671    192.168.10.41         192.168.10.11         SSHv2    Client Protocol: SSH-2.0-OpenSSH_4.3
 8 0.027632    192.168.10.41         192.168.10.11         SSHv2    Client: Key Exchange Init
10 0.031314    192.168.10.11         192.168.10.41         SSHv2    Server: Key Exchange Init
11 0.031448    192.168.10.41         192.168.10.11         SSHv2    Client: Diffie-Hellman GEX Request
12 0.042607    192.168.10.11         192.168.10.41         SSHv2    Server: Diffie-Hellman Key Exchange Reply
13 0.048250    192.168.10.41         192.168.10.11         SSHv2    Client: Diffie-Hellman GEX Init
15 0.130152    192.168.10.11         192.168.10.41         SSHv2    Server: Diffie-Hellman GEX Reply
16 0.136345    192.168.10.41         192.168.10.11         SSHv2    Client: New Keys
18 0.137150    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=48
20 0.138290    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=48
21 0.139067    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=64
22 0.140443    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=80
24 0.250557    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=528
25 0.253791    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=80
27 3.231227    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=144
28 3.237201    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=32
30 3.272729    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=64
31 3.274051    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=48
32 3.274234    192.168.10.41         192.168.10.11         SSHv2    Encrypted request packet len=448
33 3.300304    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=48
34 3.300648    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=96
36 3.492992    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=64
37 3.493353    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=48
39 3.510061    192.168.10.11         192.168.10.41         SSHv2    Encrypted response packet len=64

Es kann erkannt werden, welche SSH-Clients verwendet werden.

4 0.026461    192.168.10.11         192.168.10.41         SSHv2    Server Protocol: SSH-2.0-OpenSSH_4.3

und

6 0.026671    192.168.10.41         192.168.10.11         SSHv2    Client Protocol: SSH-2.0-OpenSSH_4.3

Dies zeigt sich auch im Paket-Inhalt.

0040   5e 7f 53 53 48 2d 32 2e 30 2d 4f 70 65 6e 53 53  ^.SSH-2.0-OpenSS
0050   48 5f 34 2e 33 0a                                                      H_4.3.

Der Inhalt der anderen Pakete lässt jedoch keine weiteren Rückschlüsse zu.

0000   00 11 0a 81 41 5d 00 b0 d0 3a 87 eb 08 00 45 10  ....A]...:....E.
0010   00 74 05 56 40 00 40 06 9f 99 c0 a8 0a 0b c0 a8  .t.V@.@.........
0020   0a 29 00 16 dd 68 5f 15 6e f4 ae da 9d 82 80 18  .)...h_.n.......
0030   00 ca 71 05 00 00 01 01 08 0a 00 09 67 4b 01 a1  ..q.........gK..
0040   ac ad 04 6c 79 6c 5a 26 00 8b 15 7c 94 73 8e 25  ...lylZ&...|.s.%
0050   3e 4c c4 bc 3d 67 83 53 e0 d1 78 82 9d ff e6 39  >L..=g.S..x....9
0060   18 fb 7e 3e 41 1c cb 3b 0d 88 05 e9 90 41 fa e5  ..~>A..;.....A..
0070   56 90 3f 54 ed 5a 44 7a 92 84 f1 cf 08 1e 49 11  V.?T.ZDz......I.
0080   d0 3f                                            .?

POP/IMAP-Zugriff

Der der Abfrage des persönlichen Posteinganges wird in vielen Fällen der Benutzername und das Passwort unverschlüsselt übertragen. Dies stellt ein erhebliches Sicherheitsrisiko dar, da es einem Angreifer so ermöglicht nicht nur ihre Nachrichten zu lesen, sondern auch über dieses Konto in ihrem Namen mit anderen zu kommunizieren oder Spam zu versenden.

Alternativen sind die Verwendung von den verschlüsselten Varianten der beiden Protokolle oder die Benutzung eines VPN-Tunnel.

DNS/DHCP

Für die Überwachung der Funktion oder Analyse von einem DNS-Server oder einem DHCP-Server ist Wireshark ausgezeichnet geeignet.


Weitere Funktionen

Merge

Wireshark hat eine eingebaute Funktion zum Zusammenfügen von mehreren einzelnen Capure-Dateien. So lassen sich auch vielen kleine eine grosse Datei bilden.

Export

Die aufgezeichneten Daten lassen sich zur weiteren Verarbeitung natürlich auch exportieren. Wireshark biete folgende Export-Formate an.

  • Plaintext
  • PostScript
  • CSV
  • XML PSML
  • XML PDML

Alle obigen Beispiele wurden mit der Plaintext-Option exportiert.


Links