· 

Passwörter in HTTP mit Wireshark mitschneiden

1. Einführung

Wenn du in die URL-Leiste deines Browsers schaust, dann wirst du feststellen, dass auf den meisten Webseiten vor der eigentlichen Adresse ein geschlossenes Schloss zu finden ist. Das bedeutet, dass das HTTP-Protokoll hier mit dem sicheren Secure Socket Layer (SSL) bzw. Transport Layer Security (TLS) verwendet wird. Dies ist notwendig, um die zwischen dem Client und dem Server ausgetauschten Informationen zu verschlüssel und so unlesbar für Angreifer zu machen, die mit Netzwerk-Sniffern wie bspw. Wireshark Pakete mitschneiden.

Auf einigen Webseiten ist es aber dennoch möglich, sie über das HTTP-Protokoll ohne die Verwendung von SSL/TLS aufzurufen. Dies kompromittiert jedoch massiv die Sicherheit deiner Daten, da die an die Webseite übermittelten Informationen wie Benutzernamen und Passwörter so im Klartext übertragen werden. Jeder, der diese Pakete mitschneidet, kann dadurch an dein Passwort kommen, ohne eine hohe Security-Barriere überqueren zu müssen! Nicht umsonst wird man von vielen Webbrowsern bei der Verwendung von HTTP darauf hingewiesen, dass diese Webseite "unsicher" sei und die eingegebenen Informationen nicht hinreichend geschützt seien. Diese Meldung darfst du nicht ignorieren. Gib niemals auf Webseiten, die dir keinen Schutz durch SSL bzw. TLS bieten, irgendwelche Informationen von dir ein! Diese können im Klartext mitgelesen werden.

Wie einfach das funktioniert und dass dies tatsächlich der Fall ist, werden wir uns in diesem Artikel anschauen.


2. Wireshark

Wir werden den Packet Sniffer Wireshark für unsere Analyse der Sicherheit des HTTP-Protokolls verwenden. Diesen kannst du dir hier herunterladen. Mit diesem Werkzeug kannst du den Verkehr in einem Netzwerk mitschneiden. Bevor du dich nun aber munter in ein Schnellrestaurant deiner Wahl setzt, dich dort in den Monitor-Mode versetzt und den Datenverkehr aufnimmt, um ihn später auszuwerten, lasse dir gesagt sein, dass du dich damit strafbar machst. Du darfst Wireshark nur in deinen privaten Netzwerk verwenden. Im Netzwerk deines Unternehmens oder in öffentlichen Netzwerken ist das nur erlaubt, wenn du die Erlaubnis des Netzwerkbetreibers hast. Ansonsten machst du dich ggf. gemäß § 202c StGB strafbar.


3. Starten des Angriffs

Da ich mich zum Zeitpunkt der Aufnahme in meinem Netzwerk befinde und ich den Angriff anhand meiner Webseite demonstriere, bewegt sich dieser Artikel im rechtlich sicheren Rahmen. Ich wiederhole es an dieser Stelle noch einmal: Du darfst den Netzwerkverkehr nicht einfach ohne Erlaubnis mitlesen!

Starte Wireshark und wähle das Netzwerk aus, das du überwachen möchtest. Danach kannst du die Aufnahme starten, d. h. alles, was du in diesem Moment über das ausgewählte Netzwerk an Datenpaketen empfängst, wird gespeichert. Diese Vorgehensweise wird vor allem bei sogenannten Replay-Attacken gerne eingesetzt und wenn du die Daten einmal hast, dann kannst du dich auch im Nachhinein in aller Ruhe an das Entschlüsseln der aufgeschnappten Informationen begeben.

Ich habe zu Demonstrationszwecken temporär die automatische Umleitung auf https für meine Seite informatikstudium.net deaktiviert, d. h. wenn ich in die URL-Leiste http://informatikstudium.net eingebe, dann lande ich (wie gewohnt) auf meinem Fragenportal, habe aber nicht mehr den Schutz durch SSL bzw. TLS. Ein erster Indikator dafür ist, dass vorne in der URL-Leiste das sonst verschlossene Schloss durchgestrichen ist.

Hovert man mit der Maus dort drüber, wird man darüber informiert, dass die Verbindung nicht sicher ist. Wann immer du eine solche Meldung siehst, sollten bei dir direkt die Alarmglocken anspringen und du solltest tunlichst davon absehen, irgendwelche Informationen in Felder einzutragen (schon gar nicht in Felder, die zur Authentifizierung gedacht sind).

Wenn du dich nun anmelden möchtest, dann findest du im Firefox-Browser bereits beim Anklicken des Felds für den Benutzernamen den Hinweis, dass die Verbindung nicht verschlüsselt ist und die dort eingegebenen Informationen in falsche Hände geraten könnten ... nämlich in unsere. 

Nach der Eingabe des Benutzernamens folgt dann die Passworteingabe. Hier erscheint erneut der Hinweis über die nicht verschlüsselte Verbindung, wobei dieses Feld noch kritischer als das vorherige ist, da hier ein Passwort an den Server übermittelt wird.

Nach dem Einloggen wechseln wir wieder in Wireshark und stoppen die Aufnahme. Wir haben nämlich alles, was wir wissen wollten. Da neben den Informationen, die uns eigentlich interessieren, noch weitere Pakete verschiedener Protokolle mitgeschnitten wurden, sollten wir einen Filter über die Daten legen. Da wir Daten, die über das HTTP-Protokoll ausgetauscht wurden, suchen, tragen wir als ersten Teil des Filters http ein. Danach können wir noch filtern, welche Ziel-IP-Adresse wir betrachten wollen. Um die IP-Adresse von informatikstudium.net herauszufinden, öffnen wir ein Konsolenfenster und pingen informatikstudium.net an. Dann sehen wir, dass die IP-Adresse 81.169.145.158 lautet. Diese IP-Adresse können wir im ip.dst-Feld eintragen und somit zusätzlich auf das Anfrageziel informatikstudium.net filtern.

Nachdem nun der entsprechende Filter gesetzt wurde, wählst du das HTTP-Paket mit dem Kommando POST aus, denn bei der Passworteingabe schickst du Daten an den Server. Wenn du dir dieses Paket näher ansiehst, dann findest du weiter unten die Informationen zum eingegebenen Benutzernamen und dem dazugehörigen Passwort direkt im Klartext! 

Dieser Benutzer hat mittlerweile selbstverständlich ein anderes Passwort, d. h. du brauchst nicht versuchen, diesen Account mit dem Passwort 123456sieben zu kapern. Auch die automatische 301-Weiterleitung auf SSL ist wieder aktiv, d. h. selbst wenn du http://informatikstudium.net statt https://informatikstudium.net in die URL-Leiste einträgst, wirst du automatisch auf die sichere Variante weitergeleitet.


4. Schutzmaßnahme

Wie bereits angesprochen besteht die einzig effektive Schutzmaßnahme darin, auf Webseiten, die kein SSL/TLS unterstützen, keine Informationen von dir einzugeben. Viele Webseiten (so auch meine) erzwingen HTTPS, sodass du selbst beim Eingeben von HTTP statt HTTPS in die URL-Leiste auf die sichere HTTPS-Seite weitergeleitet wirst.