Hotspots WIFI

Types de vulnérabilités

Approche de base

Les hotspots présents dans le monde sont pour la plupart en accès non sécurisé. Chaque utilisateur n'a pas besoin de fournir une clé WEP, WPA ... Ce qui implique que toutes les connexions établies par l'utilisateur seront diffusées par voie hertziennesans chiffrement. Ainsi, un utilisateur lamda pourra écouter et capturer l'ensemble des actions de chaque utilisateur présent sur le réseau wifi.

Pour parer à cette vulnérabilité, on peut utiliser du tunnelling. Certains outils comme openvpn, ssh permettent de  le faire parfaitement. Ainsi en configurant pour faire passer l'ensemble des communications par le tunnel, il sera ainsi plus difficile pour l'attaquant de capturer des mots de passe ou autre.

Pour pouvoir tirer profit du nombre important de hotspots wifi, certaines personnes malveillantes peuvent utiliser ces services pour se connecter sans login/mot de passe. Ainsi, elles pouront utiliser la liaison internet sans être facturées (si ce sont des hotspots payants) Pour cela, elles vont passer par certains services qui doivent nécessairement être ouverts. Le service DNS en est un exemple. En effet, comme l'authentification se fait par le navigateur, et que la plupart des adresses de sites internet sont des FQDN et pas des IP, ce service est obligatoire pour que la redirection vers la page de login puisse avoir lieu. D'autres protocoles comme ICMP peuvent parfois être autorisés sans authentification. L'ouverture de ces services permet ainsi à la personne d'encapsuler les données dans ces protocoles ouverts.

Encapsulation

Lorsque certains services sont disponibles (ex DNS, ICMP), il existe un moyen simple de pour faire circuler nos informations à travers ceux-ci. Pour cela, c'est le mécanisme d'encapsultation qui peut être utilisé.

Pour que ces attaques puissent se faire, il faut obligatoirement posséder un serveur situé sur le réseau Internet. Ainsi, on pourra créer un tunnel entre notre machine et le serveur disponible sur Internet. Ce serveur est obligatoire dans la mesure où toutes nos données vont ensuite passer par celui-ci. Lorsque l'on souhaite encapsuler les données, il faut nécessairement une machine pour les désencapsuler. Le serveur jouera alors ce rôle. Lorsque cette liaison est créée, il ne reste plus qu'à établir une connexion de plus haut niveau. Celle-ci depend des protocoles supportés (TCP et/ou UDP).

Voici un schéma montrant une encapsulation dans ICMP de paquets IP :

Etant donné que ICMP est au niveau de la couche 4 du modèle TCP/IP les paquets qui seront encapsulés dans celui-ci seront directement des paquets IP (même type de IP Header). Dans le cas du protocole DNS par exemple, fonctionnant sur UDP, celui-ci est au niveau Application. On pourra donc remplacer le protocole ICMP par UDP. Le protocole DNS sera alors dans les paquets UDP. Enfin IP Header + data seront eux-mêmes encapsulés dans DNS.

Par exemple, le serveur pourra utiliser des services proxy afin d'assurer le relais entre notre machine et Internet. Pour faire proxy, le serveur devra utiliser un service comme SSH (avec proxy socks), SQUID .... Ainsi, la connexion au hotspot initialement bloquée pourra  être contournée par l'un de ces services nouvellement installés.

La majeure partie des freeware permettant de mettre en place des fonctions d'encapsulation fonctionnent sur le même principe.

Etapes de connexion

Afin de montrer les différentes étapes à réaliser pour réaliser cette attaque, le schéma ci dessous regroupe les principales étapes de configuration. Celles ci sont détaillées en trois parties.

Dans un premier temps, on doit s'assurer d'avoir lancé le programme serveur sélectionné qui sera chargé de relayer les informations obtenues d'internet ou d'autres sources au PC client.
Une fois ce programme mis en place, on doit configurer le client pour qu'il réussisse à joindre ce serveur.

(1) Dès que le client se connecte à un réseau wifi hospot, il va ainsi pouvoir établir un canal de communication entre client/serveur via le protocole choisi . Au lancement du client, on doit configurer une option très importante qui est le port local. Si le port choisi est 2222 par exemple l'adresse sur lequel le tunnel va être disponible est : 127.0.0.1:2222. C'est cette sockets qu'il faudra utiliser pour faire passer les données voulues à travers le protocole qui va les encapsuler.

(2) Dans un second temps, pour garantir un sécurité optimale de nos données qui transitent, il est nécessaire de chiffrer la communication. Pour ce faire, l'utilisation des protocoles SSH,VPN ou autre peut s'avérer très utile. Pour SSH par exemple, on peut activer des options particulières lors de la connexion. L'une de ces options est le proxy socks, elle est activable par l'option -D local port. Celle-ci est très utile car elle transforme le serveur en proxy et ainsi elle va permettre de se connecter à internet à travers le serveur.

(3) Pour pouvoir tester la configuration, il reste à configurer son navigateur pour utiliser ce proxy en paramètrant ses options par exemple.