
MacStealer : Contournement de l'isolation des clients Wi-Fi
Ce dépôt contient MacStealer. Il permet de tester les réseaux Wi-Fi pour les contournements de l'isolation des clients (CVE-2022-47522). Notre attaque peut intercepter (voler) le trafic destiné à d'autres clients au niveau de la couche MAC, même si les clients sont empêchés de communiquer entre eux. Cette vulnérabilité affecte les réseaux Wi-Fi avec des initiés malveillants, où notre attaque peut contourner l'isolation des clients, parfois également appelée isolation AP. L'attaque peut également être utilisée pour contourner l'inspection ARP dynamique (DAI), et peut probablement aussi être utilisée pour contourner d'autres méthodes qui empêchent les clients de s'attaquer mutuellement. L'attaque est également connue sous le nom d'attaque de substitution de contexte de sécurité (security context override attack), voir la section 5 de notre article USENIX Security '23 (dépôt).
Des exemples concrets de réseaux potentiellement affectés sont :
Les réseaux d'entreprise où les utilisateurs peuvent se méfier les uns des autres, et où des techniques telles que l'isolation des clients ou l'inspection ARP sont utilisées pour empêcher les utilisateurs de s'attaquer mutuellement. Par exemple, les réseaux d'entreprise avec des comptes pour les invités et le personnel, des réseaux comme eduroam et govroam, etc.
Les points d'accès publics protégés par Passpoint (anciennement Hotspot 2.0). Ce sont des points d'accès auxquels vous pouvez vous connecter automatiquement et en toute sécurité. Par exemple, il peut vous authentifier de manière transparente en utilisant la carte SIM de votre téléphone.
Les réseaux domestiques WPA2 ou WPA3 avec l'isolation des clients activée. Cela inclut les réseaux avec un SSID séparé pour les invités ou pour les appareils (IoT) non sécurisés. Cela inclut également les réseaux où plusieurs mots de passe sont utilisés pour isoler davantage les appareils, également connus sous le nom de Multi-PSK, Identity PSK, per-station PSK, ou EasyPSK. Voir la discussion sur le modèle de menace pour plus d'informations.
Les points d'accès publics basés sur WPA3 SAE-PK. Ce sont des points d'accès protégés par un mot de passe public partagé, mais où un adversaire ne peut pas abuser de ce mot de passe public.
Nous notons que notre attaque ne peut pas contourner les VLANs. En d'autres termes, d'après les expériences actuelles, notre attaque ne peut pas être utilisée pour exploiter un appareil dans un autre VLAN.
Le dépôt des autres résultats de notre article USENIX Security '23 est également disponible.
L'idée centrale de l'attaque est que la manière dont les clients sont authentifiés n'a aucun lien avec la façon dont les paquets sont routés vers le bon client Wi-Fi. En effet, l'authentification est effectuée sur la base de mots de passe, de noms d'utilisateur, d'identités 802.1X et/ou de certificats, mais une fois que le client est connecté, le routage des paquets est effectué sur la base des adresses MAC. Un initié malveillant peut abuser de cela pour intercepter des données destinées à un client Wi-Fi en déconnectant une victime puis en se connectant sous l'adresse MAC de la victime (en utilisant les identifiants de l'adversaire). Tous les paquets encore en route vers la victime, comme les données d'un site web que la victime était encore en train de charger, seront désormais reçus par l'adversaire à la place.
Plus précisément, l'attaque se compose de trois étapes :
Laisser la victime demander des données : L'adversaire attend d'abord que la victime (client)
établisse une connexion Wi-Fi avec le point d'accès (AP) vulnérable. Nous supposons que la victime
enverra ensuite une requête à un serveur sur Internet. Par exemple, la victime peut envoyer une
requête HTTP au site web (en clair) example.com. L'objectif de l'adversaire est d'intercepter
la réponse qui sera envoyée par le site web.
Se connecter sous l'adresse MAC de la victime : Une fois que la victime a demandé des données, par exemple
en envoyant un paquet de requête HTTP, l'adversaire déconnectera de force la victime du
réseau avant que la réponse n'arrive au point d'accès
vulnérable. Dans notre exemple, cela signifie que la victime est déconnectée avant que la réponse de
example.com n'arrive au point d'accès. Une fois la victime déconnectée, l'adversaire usurpe
l'adresse MAC de la victime et se connectera au réseau en utilisant ses propres identifiants.
Cela signifie que l'adversaire est un initié malveillant qui peut se connecter au réseau avec ses propres
identifiants, par exemple en utilisant son propre nom d'utilisateur et mot de passe dans un
réseau Wi-Fi d'entreprise.
Intercepter la réponse : Une fois que l'adversaire s'est connecté sous l'adresse MAC de la victime,
le point d'accès associera les nouvelles clés de chiffrement générées par l'adversaire à l'adresse MAC de la victime.
Par conséquent, lorsque la réponse du serveur arrive au réseau Wi-Fi, ou tout trafic entrant
destiné à la victime en général, le routeur transférera ces paquets entrants à l'adresse MAC de la
victime. Dans notre exemple, cela signifie que la réponse de example.com est transférée par le routeur
à l'adresse MAC de la victime. Cependant, l'adversaire utilise désormais cette adresse MAC. Cela signifie que le
point d'accès chiffrera la réponse en utilisant les clés de l'adversaire. En d'autres termes, l'adversaire
recevra désormais tout trafic en attente encore en route vers la victime.
Nous notons que le trafic intercepté peut être protégé par un chiffrement de couche supérieure, tel que TLS et HTTPS. Néanmoins, même si un chiffrement de couche supérieure est utilisé, notre attaque révèle toujours l'adresse IP avec laquelle une victime communique. Cela révèle à son tour les sites web qu'une victime visite, ce qui peut être des informations sensibles en soi.
Par défaut, l'attaque n'intercepte pas le trafic envoyé par la victime, mais ne peut intercepter que le trafic envoyé vers la victime. Cependant, un adversaire peut tenter des attaques ultérieures pour intercepter également le trafic envoyé par la victime. En particulier, en interceptant une réponse DNS destinée à la victime, l'adversaire peut usurper une réponse DNS et intercepter tout le trafic IP à la fois envoyé vers la victime et envoyé par la victime.
Effectuer l'attaque ci-dessus n'a de sens que lorsque l'isolation des clients est activée sur le réseau cible. Sinon, si l'isolation des clients est désactivée, un initié malveillant peut simplement attaquer directement d'autres clients en utilisant des techniques telles que l'usurpation ARP (voir les tests d'isolation des clients).