
MacStealer: Bypass de aislamiento de clientes Wi-Fi
Este repositorio contiene MacStealer. Puede probar redes Wi-Fi para detectar bypasses de aislamiento de clientes (CVE-2022-47522). Nuestro ataque puede interceptar (robar) tráfico hacia otros clientes en la capa MAC, incluso si los clientes no pueden comunicarse entre sí. Esta vulnerabilidad afecta a redes Wi-Fi con usuarios internos malintencionados, donde nuestro ataque puede evadir el aislamiento de clientes, que a veces también se conoce como aislamiento de AP. El ataque también puede usarse para evadir la inspección dinámica de ARP (DAI), y probablemente también pueda usarse para evadir otros métodos que impiden que los clientes se ataquen entre sí. El ataque también se conoce como ataque de anulación de contexto de seguridad (security context override attack); consulte la Sección 5 de nuestro artículo de USENIX Security '23 (repositorio).
Ejemplos concretos de posibles redes afectadas son:
Redes empresariales donde los usuarios pueden desconfiar unos de otros, y donde se utilizan técnicas como el aislamiento de clientes o la inspección de ARP para evitar que los usuarios se ataquen entre sí. Por ejemplo, redes empresariales con cuentas tanto para invitados como para personal, redes como eduroam y govroam, etc.
Puntos de acceso públicos protegidos por Passpoint (anteriormente Hotspot 2.0). Estos son puntos de acceso a los que puede conectarse de forma automática y segura. Por ejemplo, pueden autenticarlo sin problemas usando la tarjeta SIM de su teléfono.
Redes domésticas WPA2 o WPA3 que tienen habilitado el aislamiento de clientes. Esto incluye redes con un SSID separado para invitados o para dispositivos inseguros (IoT). También incluye redes donde se utilizan múltiples contraseñas para aislar aún más los dispositivos, lo que también se conoce como Multi-PSK, Identity PSK, PSK por estación, o EasyPSK. Consulte la discusión sobre el modelo de amenaza para obtener información adicional.
Puntos de acceso públicos basados en WPA3 SAE-PK. Estos son puntos de acceso protegidos por una contraseña pública compartida, pero donde un adversario no puede abusar de esta contraseña de conocimiento público.
Señalamos que nuestro ataque no puede evadir VLANs. En otras palabras, según los experimentos actuales, nuestro ataque no se puede utilizar para explotar un dispositivo en otra VLAN.
El repositorio de otros resultados de nuestro USENIX Security '23 también está disponible.
La idea central detrás del ataque es que la forma en que se autentican los clientes no está relacionada con cómo se enrutan los paquetes al cliente Wi-Fi correcto. Es decir, la autenticación se realiza con base en contraseñas, nombres de usuario, identidades 802.1X y/o certificados, pero una vez que el cliente se ha conectado, el enrutamiento de paquetes se realiza con base en direcciones MAC. Un usuario interno malintencionado puede abusar de esto para interceptar datos dirigidos a un cliente Wi-Fi al desconectar a una víctima y luego conectarse bajo la dirección MAC de la víctima (usando las credenciales del adversario). Cualquier paquete que todavía estuviera en camino hacia la víctima, como datos de un sitio web que la víctima aún estaba cargando, ahora será recibido por el adversario en su lugar.
Más precisamente, el ataque consta de tres pasos:
Hacer que la víctima solicite datos: El adversario primero espera hasta que la víctima (cliente)
establezca una conexión Wi-Fi con el Punto de Acceso (AP) vulnerable. Suponemos que la víctima
enviará entonces una solicitud a un servidor en Internet. Por ejemplo, la víctima puede enviar una
solicitud HTTP al sitio web (en texto plano) example.com. El objetivo del adversario es
interceptar la respuesta que enviará el sitio web.
Conectarse bajo la dirección MAC de la víctima: Después de que la víctima solicite datos, por ejemplo
al enviar un paquete de solicitud HTTP, el adversario desconectará forzosamente a la víctima de la
red antes de que la respuesta llegue al
AP vulnerable. En nuestro ejemplo, esto significa que la víctima se desconecta antes de que la respuesta de
example.com llegue al AP. Una vez que la víctima está desconectada, el adversario suplanta
la dirección MAC de la víctima y el adversario se conectará a la red usando sus propias
credenciales. Esto significa que el adversario es un usuario interno malintencionado que puede conectarse usando sus propias
credenciales a la red, por ejemplo, usando su propio nombre de usuario y contraseña en una
red Wi-Fi empresarial.
Interceptar la respuesta: Una vez que el adversario se conectó bajo la dirección MAC de la víctima,
el AP asociará las claves de cifrado recién generadas del adversario con la dirección MAC de la víctima.
Como resultado, cuando la respuesta del servidor llegue a la red Wi-Fi, o cualquier tráfico entrante
hacia la víctima en general, el enrutador reenviará estos paquetes entrantes a la dirección MAC de la
víctima. En nuestro ejemplo, esto significa que la respuesta de example.com es reenviada por el enrutador
a la dirección MAC de la víctima. Sin embargo, el adversario ahora está usando esta dirección MAC. Esto significa que el
AP cifrará la respuesta usando las claves del adversario. En otras palabras, el adversario
ahora recibirá cualquier tráfico pendiente que todavía esté en camino hacia la víctima.
Señalamos que el tráfico interceptado puede estar protegido por cifrado de capas superiores, como TLS y HTTPS. No obstante, incluso si se utiliza cifrado de capas superiores, nuestro ataque aún revela la dirección IP con la que una víctima se está comunicando. Esto a su vez revela los sitios web que una víctima está visitando, lo que puede ser información sensible por sí misma.
Por defecto, el ataque no intercepta el tráfico enviado por la víctima, sino que solo puede interceptar el tráfico enviado hacia la víctima. Sin embargo, un adversario puede intentar ataques posteriores para también interceptar el tráfico enviado por la víctima. En particular, al interceptar una respuesta DNS dirigida a la víctima, el adversario puede suplantar una respuesta DNS e interceptar todo el tráfico IP tanto enviado hacia como enviado por la víctima.
Realizar el ataque anterior solo tiene sentido cuando el aislamiento de clientes está habilitado en la red objetivo. De lo contrario, si el aislamiento de clientes está deshabilitado, un usuario interno malintencionado puede simplemente atacar directamente a otros clientes usando técnicas como suplantación de ARP (consulte las pruebas de aislamiento de clientes).