NAT-Slipstreaming, ein Bypass-Angriff, ermöglicht den Zugriff auf alle TCP / UDP-Dienste

Samy Kamkar (ein bekannter Sicherheitsforscher, der für die Entwicklung mehrerer ausgeklügelter Angriffsgeräte, wie beispielsweise eines Keyloggers in einem USB-Handyladegerät, bekannt ist) hat eine neue Angriffstechnik namens „NAT Slipstreaming“ vorgestellt.

Der Angriff ermöglicht es, beim Öffnen einer Webseite im Browser eine Verbindung vom Server des Angreifers zu einem beliebigen UDP- oder TCP-Port auf dem System des Nutzers herzustellen, der sich hinter dem Adressübersetzer befindet. Das Angriffstoolkit ist auf GitHub veröffentlicht.

Die Methode beruht darauf, den ALG-Verbindungsverfolgungsmechanismus (Application Level Gateway) in Adressübersetzern oder Firewalls zu täuschen, der zur Organisation der NAT-Weiterleitung von Protokollen verwendet wird, die mehrere Netzwerkports nutzen (einen für Daten und einen für die Steuerung), wie z. B. SIP, H323, IRC DCC und FTP.

Der Angriff ist für Benutzer anwendbar, die sich über interne Adressen im Intranetbereich (192.168.xx, 10.xxx) mit dem Netzwerk verbinden, und ermöglicht das Senden beliebiger Daten an beliebige Ports (ohne HTTP-Header).

Für die Durchführung eines Angriffs genügt es, wenn das Opfer den vom Angreifer vorbereiteten JavaScript-Code ausführt , beispielsweise indem es eine Seite auf der Website des Angreifers öffnet oder eine schädliche Werbung auf einer legitimen Website ansieht.

Im ersten Schritt erlangt der Angreifer Informationen über die interne Adresse des Benutzers. Diese kann entweder über WebRTC oder, falls WebRTC deaktiviert ist, durch Brute-Force-Angriffe mit gemessener Antwortzeit beim Anfordern eines versteckten Bildes ermittelt werden (bei bestehenden Hosts ist der Versuch, ein Bild anzufordern, schneller als bei nicht existierenden Hosts, da vor der Rückgabe einer TCP-RST-Antwort eine Wartezeit entsteht).

In der zweiten Phase erzeugt der im Browser des Opfers ausgeführte JavaScript-Code eine große HTTP-POST-Anfrage (die nicht in ein einzelnes Paket passt) an den Server des Angreifers unter Verwendung einer nicht standardmäßigen Netzwerkportnummer, um die Anpassung der TCP-Fragmentierungsparameter und der MTU-Größe im TCP-Stack des Opfers zu initiieren.

Als Reaktion darauf sendet der Server des Angreifers ein TCP-Paket mit der MSS- Option (Maximum Segment Size) zurück, welche die maximale Größe des empfangenen Pakets festlegt. Bei UDP ist die Manipulation ähnlich, beruht aber auf dem Senden einer großen WebRTC-TURN-Anfrage, um eine Fragmentierung auf IP-Ebene auszulösen.

«NAT Slipstreaming nutzt den Browser des Benutzers in Verbindung mit dem in NAT, Routern und Firewalls integrierten ALG-Verbindungsverfolgungsmechanismus (Application Level Gateway), indem es die interne IP-Extraktion über einen WebRTC- oder Timing-Angriff verkettet und die Fragmentierung automatisierter Remote-IP- und MTU-, TCP-Pakete fragmentiert Größenmassage, Missbrauch der TURN-Authentifizierung, präzise Kontrolle der Paketlimits und Protokollverwirrung durch Browser-Missbrauch ", sagte Kamkar in einer Analyse.

Die Grundidee besteht darin , dass man, wenn man die Fragmentierungsparameter kennt, eine große HTTP-Anfrage senden kann, deren letzter Teil im zweiten Paket landet . Gleichzeitig wird der eingehende Teil des zweiten Pakets so ausgewählt, dass die HTTP-Header entfernt und die Daten auf das beschränkt werden, was vollständig einem anderen Protokoll entspricht, für das NAT-Traversal unterstützt wird.

In der dritten Stufe generiert der JavaScript-Code mithilfe der obigen Manipulation eine speziell ausgewählte HTTP-Anforderung (oder TURN für UDP) und sendet sie an den TCP-Port 5060 des Servers des Angreifers, der nach der Fragmentierung in zwei Pakete aufgeteilt wird: ein Paket mit HTTP-Headern und einem Teil der Daten sowie einem gültigen SIP-Paket mit der internen IP des Opfers.

Das System zur Verfolgung von Verbindungen im Netzwerk-Stack betrachtet dieses Paket als Beginn einer SIP-Sitzung und erlaubt die Weiterleitung von Paketen an jeden vom Angreifer ausgewählten Port, vorausgesetzt, dieser Port wird für die Datenübertragung verwendet.

Der Angriff kann unabhängig vom verwendeten Browser durchgeführt werden . Um das Problem zu beheben, schlugen die Mozilla-Entwickler vor, das Senden von HTTP-Anfragen an die Netzwerkports 5060 und 5061 zu blockieren, die mit dem SIP-Protokoll verknüpft sind.

Die Entwickler der Chromium-, Blink- und WebKit-Engines planen ebenfalls die Implementierung einer ähnlichen Schutzmaßnahme.

Quelle: https://samy.pl


Als bevorzugte Quelle in Google hinzufügen