Sicherheit

Netzwerk-Sniffen mit Wireshark und dem Raspberry Pi

22.01.2016 von Markus Mizgalski
Mitunter kann es sehr aufschlussreich sein, Datenströme im Netzwerk zu kontrollieren. Nicht etwa, um zu spionieren, sondern um Probleme aufzuspüren. Der Raspberry ist dafür ein perfektes Werkzeug.

Sniffing oder auf Deutsch „Schnüffeln“ hat ja immer etwas Halbseidenes. Tatsächlich ist das Beobachten von Datenpaketen im Netzwerk bei Böswilligkeit auch dazu geeignet, herauszufinden, was Menschen der Welt mitteilen oder mitgeteilt bekommen. Aber es ist letztlich wie dem berühmten Hammer oder Küchenmesser: auch das sind Werkzeuge, die normalerweise nutzbringend einsetzbar sind, aber eben auch zweckentfremdet werden können, um Schaden anzurichten. Gleiches gilt für eben jene Sniffing-Tools, die keineswegs nur dazu dienen, Kollegen oder Familienmitgliedern hinterherzuspionieren. Sie lassen sich in erster Linie einsetzen, um Probleme in Netzwerken aufzuspüren. Und zwar solche, die sich mit herkömmlichen Analyse-Programmen nicht unbedingt finden lassen. Beispielsweise lässt sich feststellen, ob einer oder mehrere Rechner im Netz auffällig viel Traffic verursachen. Das wiederum deutet womöglich darauf hin, dass man es hier mit Spambots zu tun hat oder aber mit jemandem, der Filesharing betreibt. Auch Latenzzeiten kann man mit manchen Tools feststellen. Das kann wichtig sein, wenn man sich über solche Dinge wie Quality of Service Gedanken machen muss, weil beispielsweise eine Anwendung priorisiert Daten transferieren muss. Vernünftige Gründe, sein Netzwerk zu überwachen, gibt es also durchaus und auch ohne böse Absichten.


Das Man-in-the-middle-Problem

Erschwert wird die Sicht auf die sinnvollen Aspekte des Sniffings leider durch einige Anleitungen im Netz, die den Sniffing-Computer als Man-in-the-middle-Device bezeichnen. Leider ist der Begriff mit einer bestimmten Form von Cyberattacken verknüpft, bei der Datenpakete abgefangen und manipuliert weitergegeben werden. Es ist also letztlich korrekter, von Monitoring oder Capturen im Promiscuous-Mode zu sprechen, weil es schlussendlich auch genau darum gehen soll. Und das ist zumindest in kleinen Netzwerken eine ideale Aufgabe für den Raspberry, weil er so unproblematisch überall einsetzbar ist.

Das richtige Werkzeug

Das wahrscheinlich bekannteste Tool zur Überwachung von Datenströmen ist Wireshark. Ursprünglich vor allem als Sniffer eingesetzt, erlangte es große Berühmtheit im Zuge des Wardrivings und der Aushebelung der WEP-Verschlüsselung bei WLANs. Allerdings gibt es heute sogar Lehrgänge, wie das Programm für Netzwerk-Monitoring verwendet wird. Es ist auch mit dem Raspberry nutzbar, beispielsweise unter Raspbian oder Noobs.

Zunächst sollte man mit

sudo apt-get update

und

sudo apt-get-upgrade

sein System auf den neuesten Stand bringen. Anschließend lässt man, sofern nicht von Anfang an geschehen, den Raspberry mit angeschlossenem WLAN-Stick neu starten, wenn die Überwachung drahtlos erfolgen soll, was, wie wir noch sehen werden, ausgesprochen sinnvoll ist.

Mit Root-Rechten hat Wireshark ein Problem...

Mit

sudo apt-get install wireshark

wird das Monitoring-Tool installiert, mit

sudo wireshark

startet man es. Das Erste, was wahrscheinlich passiert, ist das Aufpoppen einer Fehlermeldung, die am Ende „dofile has been disabled“ lautet. Man kann diese Meldung ignorieren, sie hängt mit der Rechtevergabe zusammen.

...und spuckt Fehlermeldungen aus

Mit

cd /usr/share/wireshark nano init.lua

und einer Änderung der Zeile 29 in

disable_lua = true

kann man das allerdings dahingehend korrigieren, dass man Wireshark dazu bringt, mit Superuser-Rechten zu laufen. Man wird zwar darauf hingewiesen, dass dies riskant sein kann, aber ohne größere Modifikationen bekommt man sonst keinen Zugriff auf die Netzwerk-Schnittstellen. Und ohne diesen Zugriff ist das Sniffen nicht möglich.

Auf die Netzwerkkarte kommt es an

Sobald sich übrigens ein Switch sich um die Verteilung der Datenpakete kümmert, ist der Promiscuous Mode auf dem kabelgebundenen Ethernet-Adapter alleine wenig hilfreich. Denn ein Switch sorgt letztlich für eine zielgerichtete Verteilung von Datenpaketen, die dann am Sniffer vorbeilaufen. Darum ist die Verwendung eines WLAN-Adapters im Monitoring Mode angesagt; das erfasst alle Datenpakete, die durch das Netzwerk wabern. Man muss sich übrigens von dem Gedanken verabschieden, dass der Monitor-Rechner völlig unsichtbar im Netz ist. Denn ohne Authentifizierung kann er kaum Datenpakete sammeln; entsprechend kann er bestenfalls so betrieben werden, dass er auf klassische Netzwerkerkennungsverfahren wie ein Ping nicht reagiert. Falls Sie sich übrigens fragen, wie man dann den Rechner bei einer Man-in-the-Middle-Attacke tarnt, ist die Antwort relativ simpel: sehr häufig als Proxy, was dazu führt, dass das „böse“ System erst einmal niemandem auffällt.


Wireshark für den Raspberry konfigurieren

Hat man die Startprobleme gelöst, so geht es daran, Wireshark einzurichten. Das Programm ist recht mächtig, weshalb es sinnvoll ist, vorher relativ exakt festzulegen, was man eigentlich möchte.

1. Richtige Netzwerkkarte auswählen

1. Richtige Netzwerkkarte auswählen

Zunächst geht es darum, die richtige Netzwerkkarte auszuwählen. Wie schon erwähnt, empfiehlt sich in einem geswitchten Netz ein WLAN-Adapter, sofern dort auch ein Funknetz zur Verfügung steht.

2. Monitoring-Mode aktivieren

2. Monitoring-Mode aktivieren

Über die erweiterten Optionen sollte man den Monitoring-Mode aktivieren und alle anderen Modi ausschalten. So lässt sich das Maximum an Datenpaketen sammeln.

3. Namen und Speicherort festlegen

3. Namen und Speicherort festlegen

Als Nächstes legt man einen Namen und einen Speicherort für die Dump-Datei fest. Hier sollte man nicht unbedingt eine Partition wählen, auf der nur noch 20 MB frei sind. Je nach Dauer kann die Datei sehr schnell relativ groß werden.

4. Optionen wählen

4. Optionen wählen

Um mehr Kontrolle in das Sammeln zu bringen, bietet Wireshark einige Optionen. So ist es zum Beispiel möglich, die Aufzeichnungsdauer festzulegen. Oder aber die Datenmenge, nach deren Erreichen das Sniffen beendet wird. Auch die Zahl der Pakete kann vorgegeben werden.

5. Paketfilter einrichten

5. Paketfilter einrichten

Außerdem lässt sich filtern, welche Pakete überhaupt von Interesse sind. Es stehen hier zahlreiche Paketfilter zur Verfügung. Zudem kann man eigene Filter einrichten, wenn man ganz bestimmte spezielle Anwendungen kontrollieren will.

6. Erfassung starten

6. Erfassung starten

Hat man alles konfiguriert, startet man die Erfassung. Wer will, kann nun beobachten, wie in Sekundenbruchteilen die Liste der erfassten Datenpakete länger und länger wird.

7. Relevante Pakete festlegen

7. Relevante Pakete festlegen

Über die Dekodieroptionen kann man nachträglich, also nach dem Beenden des Sniffings, festlegen, welche Pakete letztlich relevant sind.

8. Kontrolle über das Netzwerk

8. Kontrolle über das Netzwerk

Und dann lässt sich relativ schnell erkennen, von welchem Rechner oder Gerät etwas welche Seiten angesurft wurden. Im unteren Fenster kann teilweise im Klartext abgelesen werden, was für Inhalte dabei übertragen wurden.

(PC-Welt/ad)