Mostrando entradas con la etiqueta WEP. Mostrar todas las entradas
Mostrando entradas con la etiqueta WEP. Mostrar todas las entradas

jueves, junio 14, 2018

Wild Wild Wifi "Dancing with wolves": 5 WEP/WPA/WPA2-TOTP-Biometry

La última parte de esta serie dedicada a Wild Wild WiFi tiene que ver con el último de los trabajos que hicimos en este área de estudio. Se trata de dar una vuelta de tuerca a la idea del protocolo WEP-TOTP, WPA-TOTP y WPA2-TOTP de la que os hablé en la parte 4 de esta serie. Se trata de no utilizar una Pre-Shared Key en el proceso, y sustituirla por un derivado biométrico del usuario de la red.

Figura 34: Wild Wild Wifi "Dancing with wolves": 5 WEP/WPA/WPA2-TOTP-Biometry

Este método lo depositamos en una patente en Julio de 2017, debido a que la idea tenía suficientes avances tecnológicos como para merecer la invención, y el funcionamiento es bastante sencillo una vez vistas las partes anteriores.

Figura 35: Patente registrada en Julio de 2017

El objetivo es generar una clave de una red WEP, WPA o WPA que sigan utilizando el protocolo PSK estandarizado, pero hacer que la clave PSK que tienen los protocolos estándares se cambie cada cierto tiempo, utilizando una clave generada por un algoritmo TOTP. Este algoritmo generará la clave final utilizando como parte del proceso un derivado de la biometría de la persona que quiere usar la red WiFi.

Figura 36: Parte biométrica del proceso de enrollment.

Para ello, durante la fase de aprovisionamiento inicial de la red WiFi se hará un proceso de enrollment de la biometría del usuario - solo una vez - en el Access Point. El proceso generará un hash de la biometría que será utilizado posteriormente.

Con el valor biométrico como dato de entrada se generará un valor aleatorio que será parte de la semilla del algoritmo TOTP que generará las claves que la red WEP, WPA o WPA2 TOTP utilizará para cifrar los datos del usuario por la red. Este valor será pasado al cliente usando algún método, como mostrarlo por pantalla con un QRCode o de cualquier otra forma.

Figura 37: Parte aleatoria del proceso de aprovisionamiento

En cualquier intento de conexión el cliente pedirá conexión, y el servidor (Access Point) le hará un "Challenge" que deberá cumplir. Para ello, el cliente pedirá las credenciales biométricas al usuario para hacer el derivado de la misma. Después extraerá el valor aleatorio que el Access Point le entregó como parte final del proceso de enrollment, y con la suma de ambos tendrá la semilla del algoritmo TOTP para generar la clave de cifrado temporal.

Figura 38: Proceso de establecimiento de conexión a la red WiFi

Con este valor, cifrará un mensaje "Hello" que podrá ser descifrado solo por el Access Point que tiene el valor biométrico del usuario (que obtuvo durante el proceso de enrollment) y el valor aleatorio que se generó, lo que le permitirá tener el mismo algoritmo TOTP de generación de claves en ambos puntos de la comunicación.

Conclusiones

Al final, el trabajo que hemos visto en esta serie no es más que una reflexión continua sobre cómo se pueden mejorar las medidas de seguridad que tienen los protocolos conocidos y cómo podrían funcionar de manera diferente.

A lo largo de las partes hemos visto que se podrían mejorar las opciones de seguridad que tienen los clientes WiFi de dispositivos móviles o sistemas operativos para detectar ataques en la red, para acotar los ataques de Rogue AP utilizando SSID Pinning. Cómo se pueden reducir las ventanas de exposición de las claves PSK en protocolos WEP, WPA o WPA2-PSK utilizando algoritmos TOTP, y cómo se puede hacer este proceso más robusto haciendo uso de biometría.

Figura 39: Wild Wild Wifi

Para poder seguir el trabajo completo, os dejo las diapositivas subidas a SlideShare, y la lista completa de todos los artículos publicados en esta serie, con las explicaciones correspondientes.
1.- Mummy 
2.- SSDI Pinning 
3.- PsicoWiFI 
4.- WEP/WPA/WPA2-TOTP
5.- WEP/WPA/WPA2-TOTP-Biometry
Saludos Malignos!

****************************************************************************
- Wild, Wild, WiFi: 1.- Mummy
- Wild, Wild, WiFi: 2.- SSID Pinning
- Wild, Wild, WiFi: 3.- PsicoWifi
- Wild, Wild, WiFi: 4.- WEP/WPA*-TOTP
- Wild, Wild, WiFi: 5.- WEP/WPA/WPA2-TOTP-Biometry
****************************************************************************

lunes, abril 09, 2018

Wild Wild Wifi "Dancing with wolves": 4 WEP/WPA*-TOTP

En la primera parte de esta serie os conté los pensamientos que en el año 2010 tuvimos para crear Mummy y ayudar a hacer un cliente Wi-Fi que protegiera un poco más a los usuarios en el cada vez más beligerante entorno de ataques en redes inalámbricas, en la segunda parte os hablé de lo que nos llevó a pensar en el concepto de SSID Pinning y en la tercera entrega os hablé de PsicoWiFi, la PoC para Windows y Android de estos conceptos. En esta cuarta entrega os voy a hablar de la PoC que hicimos con WEP-TOTP y con WPA-TOTP.

Figura 25: WEP/WPA*-TOTP

El objetivo de este hack era ver cómo podíamos dificultar los ataques que se producen a la clave en las protocolos de redes Wi-Fi que teníamos hoy en día, haciendo algo muy sencillo. La idea era ver cómo clientes que no pudieran ser migrados a entornos empresariales con EAP (Extended Authentication Protocol) - donde se pudieran utilizar sistemas de autenticación basados en certificados digitales -, pudieran ser modificados ligeramente para hacer que el cambio de clave WEP, WPA o WPA2 en entornos PSK se controlara como si fuera un token temporal, tipo TOTP que se cambiara de forma continuada y periódica.

Si repasamos los ataques WEP que tenemos hoy en día, necesitan un alto número de paquetes inyectados y manipulados para conseguir romper la clave en muy poco tiempo con un ataque Online, o tener muchos paquetes para poder hacer un ataque Offline en una captura grabada del tráfico de red en la que no se pueda inyectar tráfico.

Figura 26: Ataque Krack a WPA2

En el caso de los ataques WPA-PSK o WPA2-PSK los escenarios existentes (hasta la llegada de Krack) se basaban en capturar el paquete de autenticación y hacer un ataque de fuerza bruta o diccionario a la clave configurada, lo que lleva un coste en tiempo alto - dependiendo de la dificultad de la clave -.

Con la llegada de Krack esto deja de ser así, ya que el ataque es un fallo lógico del protocolo que no depende de la fortaleza de la clave, y es WPA3 el destinado a corregir estos fallos lógicos de seguridad, y se pueden fortalecer los entornos empresariales con soluciones WPA2-EAP-TLS o WPA2-PEAP-TLS (con una capa TLS en la negociación EAP) para conseguir entornos más robustos.

WEP-TOTP & WPA/2-TOTP

En nuestro hack lo que buscábamos era ver si una persona se podría configurar una capa de cambio de contraseña sincroniza mediante un algoritmo TOTP en un entorno en el que su dispositivo cliente, por ejemplo un hardware IoT o un terminal antiguo, como una impresora con conexión Wi-Fi solo para protocolos WEP, haciendo uso de una configuración de semillas TOTP.

Tómese esta parte como un hack de laboratorio para entornos en los que clientes empresariales o el soporte para criptografía moderna no está disponible y se quiere establecer un cambio de contraseña sincronizado para cada muy poco tiempo, limitando la ventana de oportunidad de un ataque a la clave al tiempo que esta se encuentra activa: 1 minuto, 2 minutos, 1 hora, 1 día, etcétera. Lo que se quiera configurar en la generación de las claves TOTP y que llamamos TTR (Time To Renew).


Figura 27: PoC de Ping en MacOS con un WPA2-TOTP

Este modo de funcionamiento lo habíamos probado ya en Pigram, donde el cifrado de los mensajes SMS que se envían entre la app móvil, y el servidor de backend utilizan claves TOTP, lo que sirve para cifrar y firmar los mensajes al mismo tiempo.


Figura 28: PoC de HTTP Dowwnload en MacOS con un WPA2-TOTP

Para ello, en las pruebas de nuestro laboratorio en lugar de configurar una clave en el cliente, y en el AP Wi-Fi, configuramos una semilla de un algoritmo TOTP, y mediante un servicio, la clave Wi-Fi utilizada en la red WEP o WPA/WPA2 se va cambiando. Por supuesto, si el tiempo es muy corto, el reinicio de los clientes y el daemon del servidor puede ser incómodo, pero el entorno sigue siendo totalmente funcional.

Figura 29: Esquema de generación de clave WEP/WPA/WPA2-TOTP

Para configurar la clave de WEP, WPA-PSK o WPA2-PSK utilizando el algoritmo TOTP, lo que hacíamos era generar un derivado de la combinación del código TOTP más una Pre-Shared Password (en la siguiente parte os contaremos más de esto) que genera una clave Wi-Fi del tipo que se puede ver en la siguiente imagen.

Figura 30: Claves WEP/WPA/WPA2-TOTP generadas

Después de probar que este función y ver que tiraba, hicimos un par de clientes para Andorid y para Windows y vimos cuál era la experiencia de uso en un entorno de pruebas.

Wild Wild WiFi

Para la prueba configuramos un Router Wi-Fi Amper 26555 de Telefónica con un OpenWRT y un interfaz LUCI personalizado para añadir las opciones de, en este caso, WPA2-TOTP del lado del AP Wi-Fi.

Figura 31: WPA2-TOTP en Interfaz LUCI de un OpenWRT

Por otro lado, del lado del cliente hicimos un par de herramientas que llamamos WildWildWiFi para Android y para Windows. En la imagen siguiente se ve el interfaz del cliente para Windows, y en el vídeo siguiente la demo con el cliente Android.

Figura 32: Cliente Wild Wild WiFi para Windows

En el cliente Windows hicimos un pequeño servicio que cambiaba la clave del cliente Wi-Fi cada cierto tiempo (lo marcado por el valor TTR) y lo mismo para un cliente Android.

Figura 33: Demo de WildWildWiFi en Android

En el vídeo se puede ver un ejemplo con Wild Wild WiFi funcionando en Android. En este caso, el cliente Android no requiere que se haga ningún tipo de rooting. En la siguiente parte os contaremos cómo continuamos con estos trabajos.

Saludos Malignos!

****************************************************************************
- Wild, Wild, WiFi: 1.- Mummy
- Wild, Wild, WiFi: 2.- SSID Pinning
- Wild, Wild, WiFi: 3.- PsicoWifi
- Wild, Wild, WiFi: 4.- WEP/WPA*-TOTP
- Wild, Wild, WiFi: 5.- WEP/WPA/WPA2-TOTP-Biometry
****************************************************************************

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares