Sie sind auf Seite 1von 3

WPA/2 Enterprise - Cracking de EAP-MD5

Recientemente me he encontrado con un punto de acceso con configuracin WPA2


Enterprise y autenticacin EAP-MD5. Seguramente uno de los ltimos que quedan, ya
que est configuracin es insegura, incluso ms que WEP. Pero para mi sorpresa, la
contrasea era bastante robusta.

Antes de entrar al tajo, permitidme que haga una pequea introduccin.

Tanto WPA como WPA2 soportan dos mtodos de autenticacin distintos:
1.- Contrasea compartida o PSK de sus siglas Pre Shared Key, tan simple como que
ambas partes, punto de acceso y todos los clientes, conocen la contrasea. Siempre la
misma.
2.- "Enterprise" 802.1x, donde mediante un segundo servicio de autenticacin
denominado radius se valida cada uno de los distintos usuarios y sus contraseas usando
alguna de las extensiones disponibles en EAP (Extensible Authentication Protocol). Una
de estas extensiones es MD5.

En el caso de EAP-MD5, la comprobacin de estas credenciales se hace mediante un
desafo y su respuesta de la siguiente forma:
1. Hasta que se ha realizado la validacin el punto de acceso tan solo transmite
desde el radius hasta el cliente sin intervenir en el proceso.
2. El primer paso es la identificacin del cliente que trata de conectar con el
nombre de usuario "Identity" hasta el radius.
3. El radius contesta con un paquete que contiene el identificador de la peticin,
por ejemplo la "1", y un desafo que es hash md5 obtenido al azar, por
ejemplo: 6119212b50e2c9eba01fd618288f316c
4. El cliente obtiene ambos valores y junto a la contrasea, por ejemplo "test",
genera un nuevo hash de la siguiente forma: md5(requestid + contrasea +
desafo), lo que se traduce como:
md5(\x01test\x61\x19\x21\x2b\x50\xe2\xc9\xeb\xa0\x1f\xd6\x18\x28\x8f\x31\6
c) y lo manda nuevamente al radius. En el ejemplo anterior:
a4f3d177f37cff946daa45b8327e80c8
5. El radius har el mismo md5 con la contrasea que l conoce para ese usuario y
si obtiene el mismo hash que le mand el cliente como
respuesta (a4f3d177f37cff946daa45b8327e80c8), es que la contrasea es vlida.


Esquema de 802.1x (imagen de http://www.juansa.net/)
Todo este trfico se manda en texto claro, por lo que una captura de como conecta un
cliente permite generar fcilmente un ataque de diccionario sobre la contrasea,
generando tantos md5 como sean necesarios hasta que se obtenga el mismo que el
cliente mand en el ltimo paso.

Con este concepto hay un par de scripts: eapmd5crack y eapmd5pass que hacen la labor.
Pero por desgracia estas utilidades no estn optimizadas para probar un elevado nmero
de contraseas en poco tiempo.

Para intentar optimizar el proceso he modificado eapmd5crack. Ahora en vez de tratar
de obtener la contrasea directamente, creara la configuracin necesaria para ejecutar
posteriormente hashcat (en caso de CPU) o oclhashcat si disponemos de GPU
mostrando el comando a ejecutar.

El script est disponible en el repositorio de SbD.


epamd5hcgen.py

Respondiendo a un comentario aado esta informacin explicando los parmetros de
hashcat:
-m 10: que identifican que es un MD5 del tipo hash:salt
--quiet: para que no muestre la salida completa y solo el resultado.
--hex-salt: para indicarle que el salt (challange enviado por el radius) es binario
y no un string en hexadecimal
--outfile-format 7: para que muestre la salida con el resultado tambin en
hexadecimal
ToPwn: es el fichero que contiene el hash:salt
/usr/share/wordlists/rockyou.txt: el diccionario
-r eap.rule: se utiliza para aadir el ID del paquete al inicio de cada palabra
probada.Necesario como se vio en la explicacin de como se compone el MD5.
awk...sed, simplemente es para eliminar de la contrasea el ID del paquete.

Das könnte Ihnen auch gefallen