wxWepLab
cracking WEP for phun and prophit

txipi@sindominio.net

hackmeeting 2005 Menorca

Introducción a las redes Wi-Fi

Una red Wi-Fi es una red inalámbrica para intercambio de datos en la que suele haber:

Ordenadores / PDAs / etc. con tarjetas de red Wi-Fi.

Puntos de Acceso Wi-Fi.

Antenas.

Una red cableada a la que se accede inalámbricamente.

Introducción a las redes Wi-Fi

Introducción a las redes Wi-Fi

Tarjetas Wi-FI: varios modos de funcionamiento:

Ad-hoc: interconexión sin la necesidad de un AP.

Managed o Infrastruture: conectada a un AP que gestiona las conexiones.

Master: funcionando como un AP, da servicio y gestiona las conexiones.

Monitor: permite capturar paquetes sin asociarse a un AP o red ad-hoc.

Introducción a las redes Wi-Fi

Diferentes siglas y protocolos:

802.11, 802.11a, 802.11b, 802.11g.

802.11i, 802.1x, WEP, WPA, WPA2, RSN.

802.1Q (VLAN), VPNs, etc.

Seguridad en redes Wi-Fi

Por su seguridad las redes Wi-Fi pueden ser:

Abiertas, sin cifrado ni autenticación.

Cifradas, utilizando algún algoritmo de cifrado.

Autenticadas, utilizando algún mecanismo de autenticación.

Seguridad en redes Wi-Fi

Por su seguridad las redes Wi-Fi pueden ser:

Abiertas, algunas medidas de protección:

Filtrado por IP o por MAC:

IP/MAC Spoofing.

Ocultar el ESSID:

ESSID “ANY”.

Forzar desasociación y mirar PROVE_REQUEST.

Ataques de cracking: solamente hace falta el BSSID.

Seguridad en redes Wi-Fi

Por su seguridad las redes Wi-Fi pueden ser:

Cifradas:

WEP: cifrado RC4 implementado pobremente.

Múltiples ataques y vulnerabilidades.

WPA:

WPA-TKIP: cifrado RC4 con claves temporales.

Ataques de prueba de concepto contra contraseñas estáticas (WPA-PSK).

WPA-CCMP: cifrado AES.

No hay ataques conocidos.

Seguridad en redes Wi-Fi

Por su seguridad las redes Wi-Fi pueden ser:

Autenticadas:

Open Authentication: protocolo de autenticación nulo, sin autenticación.

Shared Key Authentication: usado típicamente con WEP, usa RC4 con desafío-respuesta.

802.1x: protocolo de autenticación genérico: suplicantes, autenticadores, servidores de autenticación.

Portales cautivos: autenticación vía HTTPS.

¿Qué es WEP?

W.E.P. (Wired Equivalent Privacy) es parte del estándar IEEE 802.11 (1999).

Utiliza protocolo de cifrado simétrico RC4

RC4  “Stream cipher” diseñado por Ron Rivest en 1987 (¡código cerrado!).

Liberado anónimamente en Septiembre de 1994 en la lista de correo de “Cypherpunks”.

Posee ciertas vulnerabilidades si es utilizado inadecuadamente.

Utilizado en SSL, WEP, WPA1 (¡no todas las implementaciones son vulnerables!).

WEP

CLAVE WEP 40,104,248 bits

(IV)

Vect. Inicialización

0

1

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

(...)

255

2

54

32

231

24

90

9

172

112

221

43

16

142

207

24

82

184

200

1

(...)

143

13

54

32

231

24

90

9

172

112

221

43

16

142

207

24

82

184

200

(...)

13

170

170

0

0

54

81

112

7

0

0

21

232

76

0

0

14

7

(...)

6

156

138

231

24

108

88

160

119

221

43

5

153

131

24

82

182

(...)

207

11

CLAVE RC4

State Array

Key Stream

IV

WEP Packet

Orig Packet

1

2

XOR

ICV

Conceptos clave en WEP

Clave RC4:

Contraseña WEP: 40, 104, etc. bits.

Vector de Inicialización: 24 bits.

State array:

Array de bytes “desordenado” en función de la clave.

Keystream:

Array de bytes “desordenado” para un IV concreto.

ICV:

Validador de la integridad del paquete (CRC del payload).

Ataques a WEP

Ataque por construcción del alfabeto.

Ataque por fuerza bruta o diccionario contra la clave.

Ataques estadístico:

FMS clásico.

FMS avanzado.

Korek’s attacks.

Ataques de reenvío (replay attacks).

Ataques inductivos.

Ataque de construcción del alfabeto

“Key Stream” es derivable mediante un ataque de texto plano conocido.

Existen 2^24 (3 bytes) “Key Streams”  uno por cada IV.

Una vez derivados los 2^24 KS es posible cifrar y descifrar paquetes WEP, ¡¡sin conocer la clave!!

Herramienta: WEPWedgie.

Problemas:

Tiempo.

Espacio en memoria.

Condiciones necesarias (texto plano conocido de paquetes grandes).

Ataques por diccionario y fuerza bruta

Un paquete de datos cifrados por WEP permite lanzar un ataque por fuerza bruta o diccionario contra la clave.

La verificación de paquete correcto se realiza por comprobación de CRC y cabeceras conocidas.

Datos relativos al ataque basado en fuerza bruta:

Clave 64-bit  40-bits  2^40 combinaciones  200.000 c/s [p4 3Ghz single processor] = 63 dias

Clave 128-bit  104-bits  2^104 combinaciones  200.000 c/s [p4 3Ghz single processor] = 3215754947306518014 años

Un ataque pordiccionario crackea en poco tiempo claves derivadas de frases clave predecibles (generadas o extraídas de un fichero).

Ataques de diccionario y fuerza bruta

Herramienta: weplab (weplab.sourceforge.net)

Permite “cracking” en modo diccionario con integración con “John the Ripper”. Soporta diferentes mapeos de frases clave.

Permite “cracking” basado en fuerza bruta con soporte para multiprocesador y clustering.

Soporta “cracking” estadístico:

FMS clásico

FMS avanzado

Ataques Korek

Altamente personalizable. Diseñada con fines educativos.

Ataques de diccionario y fuerza bruta

Herramienta: wxWepLab.

Front-end en wxWidgets (C++) de WepLab (C).

Implementación de los ataques de fuerza bruta, diccionario y estadísticos.

Actualmente en desarrollo:

Hay que adaptar parte del código C para que pueda comunicarse con el interfaz de forma más amigable.

Ataques en threads diferentes para no hacerlos bloqueantes.

Captura desde el interfaz gráfico.

wxWepLab

wxWepLab

wxWepLab

wxWepLab

Ataques de diccionario y fuerza bruta

Herramienta: aircrack.

En versiones posteriores a la 2.2 incorpora los ataques por fuerza bruta, tanto para WEP como para WPA-PSK.

Además permite realizar ataques estadísticos, inductivos y de reenvío de paquetes.

Ataques estadísticos: FMS clásico

Vulnerabilidades en RC4, y su implementación en el cifrado WEP, permiten derivar estadísticamente la clave utilizada para cifrar un determinado conjunto de paquetes.

Ataque FMS clásico (Fluhrer-Mantin-Shamir), permite derivar la clave (40, 128 bits) una vez capturados unos 8 millones de paquetes de datos cifrados por WEP (con IV únicos):

Se basa en la existencia de “weak keys” o claves débiles.

Herramientas: airsnort, wepcrack.

Existen firmwares que evitan la generación de IV débiles (weak keys).

Ataques estadísticos: FMS clásico

Segunda fase del RC4  Primer byte del keystream es

S[ S[1] + S[ S[1] ] ]

Primer byte del texto plano es conocido!  Cabecera SNAP (0xAA).

El IV es también conocido y es el inicio de la clave. Podemos COMENZAR a desarrollar la primera fase del RC4 con los 3 primeros bytes de la clave (IV).

La probabilidad de que un elemento del StateArray , intercambiado en una iteración, vuelva a intercambiarse es de un 60%  40% veces permanecerá.

Si S[1] + S[ S[1] ] ==numero byte clave  Podemos deducir el numero de la clave si los 3 elementos no cambian!  Probabilidad 5%.

Ataques estadísticos: FMS avanzado

El ataque FMS clásico (airsnort), detectaba las claves débiles de forma “estática”, tal y como se sugería en el artículo original de FMS (A+3,N-1,X).

Existen muchas mas de 256 claves débiles por cada byte de la clave WEP.

Es necesario realizar el primer paso del RC4 (KSA) con el IV a verificar, para ver si cumple la condición de debilidad.

Es posible realizar el mismo ataque para el segundo byte (¡e incluso para otros!).

Herramienta: dwepcrack (*bsd), weplab (<0.0.7).

El resultado es una mejora sustancial sobre el FMS clásico. Es posible derivar la clave desde 2 millones de paquetes.

Existen algunos firmware (muy pocos) que evitan la generación del conjunto completo de “weak-keys”.

Ataques estadísticos: Korek attacks

A principios de 2004 alguien llamado Korek diseña unos nuevos ataques experimentales contra el cifrado WEP, basados en la filosofía FMS. Los ataques no son liberados.

En Mayo 2004 recién liberada la version 0.0.7 de weplab (y recién salida la versión 1.0 de aircrack), tanto al creador de Aircrack como a mi, se nos remite anónimamente por correo electrónico la idea e implementación de dichos ataques.

Weplab implementa los nuevos ataques (denominados Korek por el nick de su creador) en su versión 0.0.8 a la vez que aircrack los implementa en su versión 1.2.

¡Resultados espectaculares! Es posible crackear claves de 40-bits desde 90.000 paquetes y claves de 128-bit desde 300.000 !!!

Los ataques Korek son un total de 15 (añadidos a los 3 clásicos y avanzados), con distintos niveles de estabilidad.

Es necesaria cierta heurística para ajustarlos y cierta práctica para lanzarlos.

Ataques de reenvío de paquetes

El mayor problema para crackear WEP, incluso con weplab 0.1.5 y los Korek attacks es conseguir suficientes paquetes de datos cifrados (al menos 300.000).

Dependiendo del tráfico de la red, esto puede tardar de 5 minutos a varias horas o días.

Utilizando un “ataque de repetición” es posible acelerar el proceso forzando a ciertos hosts de la red a que generen paquetes de datos cifrados con nuevos IVs.

Ataques de reenvío de paquetes

La idea es capturar un paquete de datos cifrado susceptible de generar una respuesta por parte de otro host, y reinyectarlo para generar ‘n‘ respuestas (cada una con un IV diferente).

Paquetes candidatos son: ARP, ICMP, segmentos TCP...

Se pueden utilizar heurísticas para ver cuales producen respuestas, o simplemente seleccionar paquetes ARP identificándolos por su tamaño.

Es posible generar el tráfico suficiente para romper una clave de 128-bits en menos de 5 minutos.

Herramienta: aireplay.

Ataques inductivos

Ideado por Arbaugh en 2001.

Aprovecha el CRC para la “inducción” de nuevos bytes del keystream.

Para realizar el ataque es necesario, en principio, disponer del texto plano de un paquete cifrado.

Proceso:

Iterativamente se generan 256 paquetes con un byte mas añadido que tome sus 256 valores distintos.

El AP solo repetirá el paquete con el CRC correcto (últimos 3 bytes).

El atacante puede calcular el nuevo CRC del nuevo paquete ya que tiene su texto plano. Por tanto puede calcular el nuevo byte del keystream haciendo 3er_BYTE_CRC_PLANO XOR 3er_BYTE_CRC_CIFRADO(del paquete repedido por el AP).

Ataques inductivos: ataque inductivo inverso

Inventado por Korek (el creador de los Korek-attacks) y publicado en Octubre de 2004 con la herramienta “chopchop”.

Se basa en un ataque inductivo tipo Arbaugh (2001), pero efectuado de forma inversa.

Aprovecha las propiedades lineales del CRC para, partiendo de un paquete de datos cifrados por WEP y decrementándolo iterativamente byte a byte (con fuerza bruta), derivar el “Key Stream”.

El AP solo repetirá aquellos paquetes que verifiquen el CRC.

Tras 256 intentos, se encontrará el byte válido de dicha iteración.

Poco a poco se puede derivar todo el “Key Stream”.

Una vez derivados los “Key Stream” para cada IV, se pueden cifrar y descifrar paquetes ¡sin conocer la clave!

Herramientas: chopchop, aireplay.

Conclusiones sobre WEP

Hace unos años se decía que WEP era malo, pero era mejor que nada.

Hoy en día es casi lo contrario: proveer a una red con WEP hace apetecible su crackeo, porque supone un reto accesible a los crackers ocasionales.

Existen nuevos protocolos de seguridad, por lo que WEP debería ser descartado SIEMPRE.

WPA

Apareció como solución provisional a la aprobación final de 802.11i (WPA2).

También conocido como WEP2.

Distribución dinámica de claves:

duración limitada (TKIP).

IV más robusto:

48 bits, minimizando la reutilización de claves.

Técnicas de integridad y autenticación:

MIC o Michael

Implementación:

Empresas: WPA-Enterprise.

Arquitectura 802.1x.

Servidor RADIUS.

Usuarios Domésticos: WPA-Personal.

También conocido como WPA-PSK (Pre-Shared Key): Clave inicial compartida para autenticación (PSK).

WPA

Debilidades:

El sistema utilizado por WPA para el intercambio de información utilizada para la generación de claves es débil.

Claves preestablecidas “inseguras” (WPA-PSK):

Sujetas a ataques de diccionario.

No es necesario captura de gran cantidad de tráfico: solo capturamos el intercambio de claves.

Herramientas:

Cowpatty.

Wpa_crack.

WPA

802.1x

Authenticator/EtherNAS

(e.g. Access Point or Bridge)

Supplicant

Enterprise or ISP Network

Semi-Public Network /

Enterprise Edge

AuthenticationServer

RADIUS

EAP Over Wireless (EAPOW)

EAP over LAN (EAPOL)

EAP Over RADIUS

PAE

PAE

EtherCPE

Supplicant

Non-802.1X

802.11i

Aprobado por el IEEE y aceptado por Wi-Fi Alliance en Sept 2004.

Autenticación mediante una arquitectura 802.1x.

Utiliza algoritmo AES con claves de 128 bits:

¡Requiere nuevo hardware!

Nuevo sistema de Integridad: CCM.

Soporte para redes ad-hoc.

Comparativa

802.1x, 802.11i, WPA

Implementación en GNU/Linux:

Cliente:

WPA_supplicant.

Xsupplicant (http://www.open1x.org), sin WPA.

Autenticador:

hostapd, demonio de HostAP.

Servidor de Autenticación:

RADIUS: FreeRADIUS.

Sistema de validación de clientes para nodos wireless.

Según el tipo de usuario asigna ancho de banda y da acceso a servicios diferentes.

Basado normalmente en “tokens” temporales gestionados por HTTP-SSL (443/TCP).

Portales Cautivos

Diferentes implementaciones:

NoCat Auth: http://nocat.net

LANRoamer: http://www.lanroamer.net

Wireless Heartbeat: http://www.river.com/tools/authhb/

NetLogon - Linköping University

FisrtSpot (PatronSoft): http://www.patronsoft.com/firstspot/

WiCap (OpenBSD): http://www.geekspeed.net/wicap/

Portales Cautivos

NoCat:

Portales Cautivos

NoCat, Características:

Autenticación segura basada en SSL (navegador).

Autoriza mediante usuario contraseña.

Informa de la entrada y salida del usuario en la red.

Añade la implementación de QoS por usuarios y grupos.

Portales Cautivos

NoCat, Proceso de autenticación:

El cliente se asocia con un AP y le asigna una IP.

El AP reenvía las peticiones al gateway.

El gateway redirige a la página de login del Auth Server:

iptables -t nat -A PREROUTING -s 10.10.21.0/24 -p tcp --dport 80 –j REDIRECT -d 10.10.21.2 --to-port 443

La conexión es autenticada vÌa SSL.

Portales Cautivos

NoCat, Proceso de autenticación:

El Auth Server pide usuario y contraseña al cliente (via SSL) y la comprueba con la Auth Database.

Los mensajes de autorización van firmados con PGP/GnuPG, el gateway utiliza la clave pública del Auth Server.

Si la autenticación ha sido satisfactoria, el gateway redirige el tráfico a la LAN y/o Internet.

Portales Cautivos

NoCat, Proceso de autenticación:

Portales Cautivos

Portales Cautivos

NoCat, Necesidades del cliente:

Navegador (Mozilla, Netscape, Opera, Galeon, Konqueror o MSIE) con soporte SSL.

Independiente del SO.

No necesita plugins.

Tarjeta wireless.

Cuenta de acceso.

Referencias

Presentaciones y trabajos de Topo[LB], Irontec, PoF, Dmescal, Tony F. Díaz, Santiago Estepa y Arturo Martínez, Ricardo Galli, Cisco Networks, Lucent, Avaya, Intel.

Todas las imágenes son propiedad de sus respectivos dueños.

1

1

1

1

1

1

1

1

1

1

wxWepLab cracking WEP for phun and prophit

quark

2005-10-25T10:48:06