Slipstreaming NAT, une attaque de contournement donne accès à n'importe quel service TCP / UDP

sami kamkar (un célèbre chercheur en sécurité connu pour créer divers dispositifs d'attaque sophistiqués, comme un keylogger sur un chargeur de téléphone USB) a introduit une nouvelle technique d'attaque appelée "NAT slipstreaming".

L'attaque permet, lors de l'ouverture d'une page dans un navigateur, d'établir une connexion depuis le serveur de l'attaquant à n'importe quel port UDP ou TCP sur le système de l'utilisateur derrière le traducteur d'adresses. La boîte à outils d'attaque est publiée sur GitHub.

La méthode repose sur tromper le mécanisme de suivi de connexion ALG (Application Level Gateways) dans les traducteurs d'adresses ou les pare-feu, qui sont utilisés pour organiser le transfert NAT des protocoles qui utilisent plusieurs ports réseau (un pour les données et un pour le contrôle), tels que SIP. H323, IRC DCC et FTP.

L'attaque est applicable aux utilisateurs qui se connectent au réseau en utilisant des adresses internes de la plage intranet (192.168.xx, 10.xxx) et permet d'envoyer toutes les données vers n'importe quel port (pas d'en-têtes HTTP).

Pour mener une attaque, il suffit à la victime d'exécuter le code JavaScript préparé par l'attaquantPar exemple, en ouvrant une page sur le site Web de l'attaquant ou en affichant une publicité malveillante sur un site Web légitime.

Dans un premier temps, l'attaquant obtient des informations sur l'adresse interne de l'utilisateur, Cela peut être déterminé par WebRTC ou, si WebRTC est désactivé, par des attaques par force brute avec mesure du temps de réponse lors de la demande d'une image cachée (pour les hôtes existants, une tentative de demander une image est plus rapide que pour les hôtes inexistants en raison du délai d'attente avant le retour) une réponse TCP RST).

Dans la deuxième étape, le code JavaScript exécuté dans le navigateur de la victime génère une grande requête HTTP POST (qui ne rentre pas dans un paquet) au serveur de l'attaquant en utilisant un numéro de port réseau non standard pour initier le réglage des paramètres de fragmentation TCP et de la taille MTU sur la pile TCP de la victime.

En réponse, le serveur de l'attaquant renvoie un paquet TCP avec l'option MSS (Taille maximale du segment), qui détermine la taille maximale du paquet reçu. Dans le cas d'UDP, la manipulation est similaire, mais repose sur l'envoi d'une grande requête WebRTC TURN pour déclencher une fragmentation au niveau IP.

«NAT Slipstreaming exploite le navigateur de l'utilisateur en conjonction avec le mécanisme de suivi de connexion Application Level Gateway (ALG) intégré au NAT, aux routeurs et aux pare-feu en enchaînant l'extraction IP interne via une attaque temporelle ou WebRTC, la découverte de fragmentation d'IP distante automatisée et MTU, TCP le massage de la taille des paquets, l'utilisation abusive de l'authentification TURN, le contrôle précis des limites de paquets et la confusion de protocole due à l'utilisation abusive du navigateur », a déclaré Kamkar dans une analyse.

L'idée principale est qui, connaissant les paramètres de fragmentation, peut envoyer une grosse requête HTTP dont la file d'attente tombera sur le deuxième paquet. Dans le même temps, la file d'attente qui entre dans le deuxième paquet est sélectionnée afin qu'elle ne contienne pas d'en-têtes HTTP et soit coupée sur les données qui correspondent complètement à un autre protocole pour lequel la traversée NAT est prise en charge.

Dans la troisième étape, en utilisant la manipulation ci-dessus, le code JavaScript génère et envoie une requête HTTP spécialement sélectionnée (ou TURN pour UDP) au port TCP 5060 du serveur de l'attaquant, qui, après fragmentation, sera divisé en deux paquets: a paquet avec en-têtes HTTP et une partie des données et un paquet SIP valide avec l'adresse IP interne de la victime.

Le système de suivi des connexions sur la pile réseau considérera ce paquet comme le début d'une session SIP et il permettra le transfert de paquets pour tout port sélectionné par l'attaquant, en supposant que ce port est utilisé pour la transmission de données.

L'attaque peut être menée quel que soit le navigateur utilisé. Pour résoudre le problème, les développeurs de Mozilla ont suggéré de bloquer la possibilité d'envoyer des requêtes HTTP aux ports réseau 5060 et 5061 associés au protocole SIP.

Les développeurs des moteurs Chromium, Blink et WebKit prévoient également de mettre en œuvre une mesure de protection similaire.

source: https://samy.pl


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.