Skip to content

Von außen durch den Client in den Router

In der vorherigen Folge lernten Sie die Angriffe und Schwachstellen kennen, aus denen Craig Heffner seinen auf der Konferenz "Black Hat USA 2010" vorgestellten Angriff auf das Web-basierte Administrations-Interface des lokalen Routers zusammengestellt hat. In dieser Folge erfahren Sie, wie der Angriff funktioniert.

Bauanleitung für den Angriff

Craig Heffner hat zur Demonstration des Angriff das Tool Rebind (.tar.gz) entwickelt. Es führt nicht nur den DNS-Rebinding-Angriff durch, sondern agiert im Browser des Opfers auch als Proxy, über den der Angreifer dann auf den Router zugreifen kann. Dadurch muss der eingeschleuste Schadcode die Antworten des Routers nicht verarbeiten, das kann der Angreifer persönlich erledigen. Für den Angriff wird dann nur noch ein registrierter Domainname benötigt, außerdem muss der Server des Angreifers auch als Nameserver für diese Domain dienen. Das klingt einfach? Das ist einfach!

Los gehts...

Zuerst registriert der Angreifer bei einem beliebige Domain-Registrar seine Domain, dass soll für das Beispiel angreifer.example sein. Außerdem registriert er einen Nameserver, ns.angreifer.example, der auf die IP-Adresse seines Servers zeigt. angreifer.example und ns.angreifer.example sind also der selbe Server. Dieser Nameserver ist der primäre Nameserver für angreifer.example.

Schritt 1:
Die IP-Adresse des Servers des Angreifers, auf dem Rebind läuft, ist 1.2.3.4 (=angreifer.example=ns.angreifer.example), die öffentliche IP-Adresse des Opfers 9.8.7.6.

Der Angriff, Schritt 1

Schritt 2:
Das Opfer wird auf die Seite http://angreifer.example/init gelockt, woraufhin der Webbrowser des Opfers eine DNS-Abfrage für die Domain angreifer.example sendet.

Der Angriff, Schritt 2

Schritt 3:
Der Nameserver ns.angreifer.example, auf dem ja Rebind läuft, antwortet darauf mit der IP-Adresse 1.2.3.4.

Der Angriff, Schritt 3

Schritt 4:
Der Browser des Opfers ruft die Seite /init vom Server angreifer.example auf.

Der Angriff, Schritt 4

Schritt 5:
Rebind empfängt den Request, protokolliert die öffentliche IP-Adresse des Webbrowsers (d.h. die seines Routers) und sendet den Benutzer über einen Redirect zu http://foobar.angreifer.example/exec.

Der Angriff, Schritt 5

Schritt 6:
Der Browser stellt eine DNS-Abfrage nach der Subdomain foobar.angreifer.example von angreifer.example.

Der Angriff, Schritt 6

Schritt 7:
Der Nameserver empfängt die Abfrage und antwortet mit seiner IP-Adresse und der öffentlichen IP-Adresse des Routers des Opfers, die in Schritt 5 protokolliert wurde: 1.2.3.4 und 9.8.7.6.

Der Angriff, Schritt 7

Schritt 8:
Der Browser des Opfers ruft die Seite /exec vom Server foobar.angreifer.example auf.

Der Angriff, Schritt 8

Schritt 9:
Rebind sendet den JavaScript-Schadcode und blockt weitere Verbindungsversuche von der IP-Adresse des Opfers zum HTTP-Port 80 des Servers des Angreifers ab.

Der Angriff, Schritt 9

Schritt 10:
Der JavaScript-Schadcode sendet einen XMLHttpRequest an foobar.angreifer.example.

Der Angriff, Schritt 10

Schritt 11:
Da Rebind alle weiteren Verbindungsversuche blockiert, wird die Anfrage mit einem TCP-RST-Paket (Reset) beantwortet.

Der Angriff, Schritt 11

Schritt 12:
Der Browser des Opfers probiert automatisch die zweite ihm bekannte IP-Adresse für foobar.angreifer.example aus, die mit der öffentlichen IP-Adresse seines Routers identisch ist. Der Router akzeptiert diesen Verbindungsaufbau, obwohl er an einem für diese IP-Adresse nicht zuständigen Interface eintrifft.

Der Angriff, Schritt 12

Schritt 13:
Da die Subdomain foobar.angreifer.example des Angreifers nun mit der öffentlichen IP-Adresse des Routers verbunden ist, kann der Angreifer über den in Rebind enthaltenen HTTP-Proxy Requests an den Router des Opfers schicken, die von Rebind gecached werden.

Der Angriff, Schritt 13

Schritt 14:
Der JavaScript-Schadcode im Browser des Opfers lädt nun Anweisungen von Rebind nach. Da foobar.angreifer.example mit der öffentlichen IP-Adresse des Routers verknüpft ist, werden die Anweisungen von angreifer.example geladen, statt Port 80 (der weiterhin blockiert ist) wird Port 81 verwendet.

Der Angriff, Schritt 14

Schritt 15:
Rebind antwortet mit den Requests des Angreifers, die in seinem Cache gespeichert sind.

Der Angriff, Schritt 15

Schritt 16:
Der Schadcode im Browser des Opfers sendet die Requests des Angreifers über XMLHttpRequests an foobar.angreifer.example, d.h. den Router des Opfers.

Der Angriff, Schritt 16

Schritt 17:
Die Antworten des Routers werden an den Server des Angreifers gesendet.

Der Angriff, Schritt 17

Schritt 18:
Rebind leitet die Antwort des Browsers des Opfers an den Angreifer weiter. Der Angreifer kann die Weboberfläche des Routers nun so bedienen, als befände er sich im lokalen Netz des Opfers.

Der Angriff, Schritt 18

Einschränkungen

Ein kleines Problem gibt es bei diesem Angriff: Wieso kann der Angreifer auf den Router zugreifen, er kennt doch die Zugangsdaten gar nicht? In vielen Fällen braucht er das auch nicht bzw. er kennt sie eben doch. Ist das Opfer gerade im Administrations-Interface des Routers eingeloggt, kann der Angreifer diese laufende Session nutzen, es handelt sich also quasi um eine Art von Cross-Site Request Forgery. Das heißt nicht ohne Grund auch "Session Riding". Wenn der Benutzer nicht eingeloggt ist, bekommt der Angreifer die Login-Seite des Routers angezeigt und kann die Default-Zugangsdaten ausprobieren oder einen Brute-Force-Angriff starten.

Gegenmaßnahmen

Gegen den Missbrauch einer laufenden Session schützt man sich am einfachsten, indem man für die Nutzung des Administrations-Interfaces ein neues Fenster öffnet, vorher alle anderen schließt und während der Nutzung des Interfaces nicht im Internet surft. Außerdem muss man sich natürlich beim Router abmelden, wenn man fertig ist. Dass man die Default-Zugangsdaten schon bei der Installation durch sichere Zugangsdaten ersetzt, sollte selbstverständlich sein.

Ein Restrisiko bleibt: Sollte man Opfer eines Angriffs werden, kann der Angreifer zwar keine laufende Session übernehmen und bekommt nur die Login-Seite des Routers angezeigt, dessen sicher gewählten Zugangsdaten er nicht erraten kann, er könnte aber evtl. eine im Router vorhandene Schwachstelle ausnutzen. Und dagegen ist man als Benutzer i.A. machtlos. Sofern möglich, sollte man natürlich veröffentlichte Firmware-Updates zum Beheben von Schwachstellen immer installieren. Aber meist interessieren sich die Router-Hersteller gar nicht für veröffentlichte Schwachstellen, so dass diese ungepatcht bleiben.

Außerdem gibt es weitere für den Angreifer interessante Angriffspunkte wie z.B. UPnP (Universal Plug and Play) oder HNAP (Home Network Administration Protocol). Alles, was man nicht braucht, sollte man natürlich sowieso im Router deaktivieren, aber oft lassen zumindest die Administrations-Interfaces das gar nicht zu.

Craig Heffner schlägt für Benutzer folgende Gegenmaßnahmen zum Schutz vor Angriffen vor, die aber alle nicht besonders praktikabel sind:

  • Mit einer Firewall-Regel auf dem Router kann Netzwerkverkehr an die öffentliche IP-Adresse, die an einem internen Interface ankommt, blockiert werden. Da diese Regel bei jeder Änderung der öffentlichen Adresse angepasst werden muss, ist sie wohl nur für Netze mit fester öffentlicher IP-Adresse interessant.
  • Mit einer Firewall-Regel auf jedem Rechner im lokalen Netz kann Netzwerkverkehr an die öffentliche IP-Adresse des Routers blockiert werden. Auch diese Regel muss bei jeder Änderung der öffentlichen Adresse angepasst werden, außerdem müssen wirklich alle lokalen Rechner damit ausgestattet werden.
  • Wenn möglich, können die Dienste des Routers nur an die jeweils zuständigen Interfaces gebunden werden. I.A. braucht man am Interface für das WAN/Internet keinen Webserver, aber viele Router lassen diese Konfigurationsänderung gar nicht zu.
  • Der Zugriff auf das Administrations-Interface sollte über HTTPS erfolgen, sofern der Router dies unterstützt. Oft bleibt aber HTTP trotzdem aktiviert, so dass man nichts gewonnen hat.
  • Man kann das Webbasierte Administrations-Interface deaktivieren

Soviel zumindest vorerst zu diesem äußerst trickreichen Einsatz altbekannter Angriffe. In der nächsten Folge geht es um einen neuen Angriff auf Ciscos WPA Migration Mode, durch den der WEP-Schlüssel ermittelt werden kann.

Carsten Eilers


Übersicht über alle Artikel zum Thema

WEP, WPA, WPA2 - WLAN-Schutz, aber richtig!
"Hole196" - Eine neue Schwachstelle in WPA2
DNS-Rebinding - Ein altbekannter Angriff kompromittiert Router
Von außen durch den Client in den Router
Ciscos "WPA Migration Mode" öffnet den Weg ins WLAN
NAT-Pinning, Angriffe auf Cisco-WLANs und ein Tool
Angriffe auf den WLAN-Client
BEAST - Ein neuer Angriff auf SSL und TLS 1.0
Konfigurationsänderungen am Router per UPnP - aus dem Internet
WLAN-Sicherheit - Stand der Dinge
WPS-Schwachstelle gefährdet WLANs

Trackbacks

ahthionline.co.cc am : PingBack

Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.