OCULTAR MENU LATERAL >>

Usar Aircrack para obtener claves de red wireless

Aircrack-ng es una suite de seguridad inalámbrica, diseñada para trabajar sobre distribuciones Linux (aunque también existe una versión para Windows que no es muy estable debido a conflictos con drivers) y compuesta por el siguiente conjunto de herramientas:
  • Airodump-ng, un sniffer de red.
    En una red el medio de transmisión es compartido por varias computadoras y dispositivos. Eso hace posible que un ordenador capture las tramas de información no destinadas a él. De eso es de lo que se encarga un sniffer, de "esnifar" toda la información que viaja por la red, aunque no vaya dirigida al equipo que lo usa.
  • Aircrack-ng, un crackeador de redes WEP y WPA/WPA2-PSK. WEP, WPA y WPA-PSK son distintos sistemas de cifrado utilizados para que la información que viaja por una red inalámbrica sea confidencial y no pueda ser "leída" por cualquiera que la capture, por ejemplo, con un sniffer. Estos sistemas de cifrado encriptan la información que viaja por la red a partir de una contraseña conocida por el administrador de la misma. El crackeador de red es un software que sirve para obtener esas contraseñas a partir de la información que viaja por la red. Aircrack-ng realiza un conjunto de ataques de tipo estadístico desarrollados por un talentoso hacker llamado KoreK para conseguir la buscada clave.
  • Airmon-ng, una herramienta para cambiar el modo de "escucha" de las tarjetas de red inalámbricas. Las tarjetas de red pueden capturar sólo la información que va dirigida a ellas, o por el contrario se pueden configurar para que capturen cualquier información que viaje por el medio.
  • Aireplay-ng, un programa para "inyectar" información extra que viaje por el medio de transmisión de una red. En ocasiones es necesario aumentar el tráfico de una red. Con este programa es posible.
  • Airdecap-ng, desencriptador de archivos cifrados mediante claves WEP, WPA o WPA-PSK. La información que se captura con Airodump-ng viene cifrada en estos formatos.
  • Airbase-ng, Airdecloak-ng, Airdriver-ng, Airolib-ng, Airserv-ng, Airtun-ng, Easside-ng, Packetforge-ng, Tkiptun-ng, Wesside-ng, Airdecloak-ng, un conjunto de herramientas de auditoría inalámbrica complementarias a las anteriormente mencionadas. Cumplen funciones varias para configuración, monitorización y tratamiento de redes.

Esta suite es ampliamente conocida en la actualidad gracias a su utilidad para recuperar las claves de redes wireless y a la propagación que han tenido estas redes en los últimos años.

Antes de explicar como utilizarla me gustaría aclarar que el uso de estas herramientas con el fin de obtener contraseñas que no nos pertenecen, manipular redes a las que no tenemos acceso legal o simplemente para acceder a información ajena privada es algo ilícito. El fin de estos softwares es la manipulación y auditoría de redes propias o a las que tenemos permiso de acceso. El uso fraudulento está penado en la mayor parte del mundo, asi que que cada cual sea responsable de sus actos.

Aclarado esto, veamos como recuperar una clave WEP utilizando estos programitas. La idea básica es:
  1. Instalar la suite en nuestra máquina.
  2. Capturar tanto tráfico encriptado como sea posible usando el sniffer.
  3. Usar el crackeador sobre el archivo que almacena la información capturada para obtener la contraseña buscada.


Ahora vamos a explicar como hacerlo paso a paso:
  1. INSTALAR LA SUITE EN UBUNTU:
    1. Abrimos una Terminal (Aplicaciones->Accesorios->Terminal).

    2. Instalamos el paquete corresondiente a la suite:
      NOTA: Debido a dependencias, si no se encontraba ya instalado se instalará adicionalmente el paquete iw
      ~$ sudo apt-get install aircrack-ng

  2. PONER LA TARJETA DE RED EN MODO PROMISCUO PARA CAPTURAR DATOS:

    La información que se transmite dentro de una red se envía en forma de paquetes. Cada uno de esos paquetes lleva incorporados datos adicionales que ayudan a que la transmisión se pueda realizar. Uno de esos datos incorporados en cada paquete es la dirección física de quien debe recibir la información.

    Por defecto las tarjetas de red (o NIC) sólo capturan los paquetes cuya dirección de destino corresponde con la suya propia. Para que la tarjeta de red no filtre el tráfico entrante y capture todos los paquetes es necesario configurarla en "modo promiscuo" (también llamado "modo monitor" en el caso de redes WI-FI). En este modo será posible capturar todo el tráfico que viaja por la red.

    Para poner nuestra NIC en modo promiscuo haremos los siguiente:
    1. Abrimos una Terminal (Aplicaciones->Accesorios->Terminal).

    2. Buscamos el nombre identificativo de la tarjeta de red que deseamos configurar:
      ~$ sudo airmon-ng
      
      Interface Chipset  Driver
      wlan0  Ralink 2573 USB rt73usb - [phy0]
      
      Como se ve, al ejecutar el comando "airmon-ng", se nos devuelve el nombre de interface, el chipset y el driver de nuestra tarjeta de red wireless. En el ejemplo que aquí expongo he marcado en color rojo el nombre de interface identificativo, que es lo que nos interesa.
      NOTA: El nombre puede ser cualquier otro, incluso haber varios si hay instaladas más de una NIC WI-FI. En ese caso es necesario identificar cual se desea usar.

    3. Ahora ponemos dicha tarjeta en "modo promiscuo":
      NOTA: Para poder ejecutar el comando de configuración sin problemas se deben tener instalados los drivers correctos correspondientes a la NIC y, además, estos deben tener implementada la función correspondiente al "modo promiscuo". En caso contrario no será posible activarlo.
      NOTA: La suite aircrack-ng se diseño incialmente para trabajar con tarjetas inalámbricas cuyo chipset es marca Atheros y con algunas de chipset Railink. Aunque se ha logrado usar la suite en otros muchos chipsets, a veces es necesario realizar configuraciones especiales para un correcto funcionamiento.
      ~$ sudo airmon-ng start wlan0 
      Y se ha de sustituir "wlan0" por el nombre de la NIC obtenido en el paso anterior.
      Ya está configurada. Nuestra NIC está lista para capturar todos los paquetes WI-FI que tiene a su alcance.
      NOTA: Otra forma de hacerlo es utilizando la herramienta del sistema "iwconfig". Habría que ejecutar:
      ~$ sudo iwconfig wlan0 mode monitor

  3. DETECTAR LA RED CUYA CLAVE WEP DESEAMOS:

    Como dijimos al principio la proliferación de redes wireless está muy extendida, por lo que es probable que tengas más de una a tu alcance. Si no tienes toda la información necesaria de la red que deseas auditar, es necesario obtenerla de entre todas y cada una de las redes cercanas a tu equipo.

    Para obtener la información correspondiente a la red deseada haremos lo siguiente:
    1. Abrimos una Terminal (Aplicaciones->Accesorios->Terminal).

    2. Monitorizamos durante unos instantes todas las redes a nuestro alcance:
      ~$ sudo airodump-ng wlan0
      NOTA: Recuerda cambiar "wlan0" por el nombre obtenido en pasos anteriores.

      Esta orden comenzará a monitorizar el entorno en busca de redes wireless, capturando información en cada una de las frecuencias posibles.

      Podemos ver que se va creando una lista de redes inalámbricas detectadas, con la siguiente información para cada una:
      • BSSID -> Es la dirección física de la puerta de enlace de la red. Es decir la dirección MAC del aparato que gestiona la red (suele ser un router).
      • PWR -> Es la intensidad con que es detectada la señal inalámbrica. Cuanto mas bajo es el valor mejor es la recepción.
      • CHN -> Es el canal en el que se encuentra la red.
      • ENCR -> Es el tipo de contraseña que tiene la red. En este tutorial explico tan sólo como conseguir contraseñas WEP.
      • ESSID -> Es el nombre de la red inalambrica.
      • STATION -> Es la dirección física de un equipo que forma parte de la red, pero que no es la puerta de enlace. Es decir, la dirección MAC de algún PC que está conectado y usando la red.
      • Otros datos -> Se muestra más información pero solo vamos a utilizar la mencionada.

    3. Cuando hayamos obtenido la información relacionada con la red que deseamos auditar la copiamos donde podamos recuperarla después y paramos el proceso pulsando [CTRL]+[C].

  4. CAPTURAR SUFICIENTE TRÁFICO DE LA RED CUYA CLAVE WEP DESEAMOS:

    Ahora lo que necesitamos es capturar suficientes paquetes de la red deseada para posteriormente obtener la clave gracias a las pautas de encriptado que siguen.

    Para hacerlo:
    1. Vamos a una Terminal (Aplicaciones->Accesorios->Terminal).

    2. Ejecutamos el comando de captura:
      ~$ sudo airodump-ng -c 6 -w PAQUETESCAPTURADOS --bssid 66:77:88:99:00:11 wlan0
      Donde:
      • 6 -> Es el numero del canal de la red que estamos atacando. Debes cambiarlo por el canal que obtuviste en el paso anterior.
      • PAQUETESCAPTURADOS -> Es el archivo donde se van a guardar los paquetes que se van capturando (por defecto están en la dirección /root).
      • 66:77:88:99:00:11 -> Es la BSSID de la red que estamos auditando.
      • wlan0 -> Es el nombre de nuestra tarjeta inalámbrica.

    3. Una vez ejecutado el comando anterior comenzará la captura de datos. Podemos ver el campo "DATA", el cual indica el número de paquetes que llevamos capturados.

      El siguiente paso sería parar la captura de paquetes. Pero no debemos hacerlo hasta tener suficientes capturados.

      Para saber si tenemos suficientes paquetes capturados tendremos en cuenta lo siguiente. Cada paquete de datos "esnifado" tiene asociado un "Vector de Inicialización" (IV) de 3 bytes. Es a partir de dichos IVs obtenidos de donde sacamos la contraseña que buscamos. Es por ello que debemos conseguir suficientes IVs.

      ¿Y cuantos son suficientes IVs? Pues la recuperación de claves WEP no es una ciencia exacta y el número de IVs necesarios depende de la longitud de la clave WEP y de la suerte. Normalmente, una clave WEP de 40 bits puede ser recuperada con unos 300.000 IVs y una de 104 bits con 1.000.000 de IVs aproximadamente; pero teniendo mala suerte se pueden necesitar más de 2 millones de IVs.

      Como la longitud de la clave WEP, si no es conocida de antemano, no es posible saberla durante el proceso de captura, se recomienda probar a obtener la contraseña cuando se tienen unos 300.000 IVs y, en caso de fracaso, volver a intentarlo con números mucho mayores.

      Pero los verdaderos problemas que surgen durante la captura son los siguientes:
      • Si se está demasiado lejos del punto de acceso la mayoría de paquetes capturados estarán incompletos y, por tanto, los IVs no son recuperables. Sólo se puede solventar acercándonos al punto de acceso o amplificando la señal (con una antena mayor, por ejemplo).
      • Hay algún problema con la NIC que influye en la captura. Si la NIC no es adecuada es posible que la captura sea muy lenta o devuelva errores. En este caso la única solución es cambiar la NIC o buscar un driver mejor.
      • Hay tráfico de tipo G pero estás capturando en modo B.
      • No se está generando suficiente tráfico en la red. Sin tráfico de paquetes suficiente alcanzar la cifra de IVs necesarios podría llevar días (incluso semanas). Para solucionarlo en el punto siguiente explico como inyectar más tráfico.

    4. Para inyectar nuevo tráfico que acelere el proceso de captura de IVs es necesario primero asociarnos a la red. Para ello nos haremos por cualquiera de los equipos que hay dentor de la red. Usando los datos de la red obtenidos en puntos anteriores, haremos sobre la Terminal:
      ~$ aireplay-ng -1 0 -a 66:77:88:99:00:11 -h 00:11:22:33:44:55 -e WLAN_7F wlan0
      Donde:
      • 66:77:88:99:00:11 -> Es el BSSID de la red.
      • 00:11:22:33:44:55 -> Es la dirección de un equipo, diferente a la puerta de enlace, que pertenece a la red. Es decir, una MAC autorizada.
      • WLAN_7F -> es el nombre de la red que estamos atacando.
      • wlan0 -> Es el nombre de nuestra tarjeta de red.
      Unos instantes después de ejecutar esto, saldrán 4 líneas de códigos y un mensaje indicando que la conexión está "succesfull". Esto significa que estas conectado a la puerta de enlace (es decir, al router).
      NOTA: Si el mensaje devuelto es "unsuccesfull" no estaremos conectados. Algunas de las razones pueden ser: que la red a la que quieres atacar esté muy lejos; que la tarjeta de red no puede hacer inyección de paquetes; que el router esté protegido para evitar este tipo de ataques;... En cualquiera de los casos no hay solución, asi que el proceso de captura de IVs será más lento de lo esperado.

      Una vez dentro de la red, pasaremos a inyectar el trafico. Para hacerlo introduce el siguiente comando en la Terminal:
      ~$ aireplay-ng -3 -b 66:77:88:99:00:11 -h 00:11:22:33:44:55 wlan0
      Donde:
      • 66:77:88:99:00:11 -> Es el BSSID de la red.
      • 00:11:22:33:44:55 -> Es la dirección del equipo por el que nos estamos haciendo pasar. Es decir, la MAC autorizada.
      • wlan0 -> Es el nombre de nuestra NIC.
      Tras esto se verá que empiezan a inyectarse paquetes y, en la Terminal donde estamos capturando se podrá ver como la captura va más rápida.

    5. Una vez alcanzados el número de paquetes necesarios, pulsamos sobre las Terminales donde estamos capturando y donde estamos inyectando [CTRL]+[C] para parar ambos procesos. Y luego proceder a la obtención de la contraseña WEP.

    NOTA: Recuerda tornar a "modo normal" tu tarjeta de red una vez hayas terminado la operación de captura de paquetes, ya que existen métodos de detección de equipos en modo promiscuo y, en ciertos lugares es ilegal dicha configuración. Para hacerlo ejecuta:
    ~$ sudo airmon-ng stop wlan0 
    O también puedes hacer:
    ~$ sudo iwconfig wlan0 mode managed

  5. OBTENER LA CLAVE WEP A PARTIR DE LOS IVs CAPTURADOS:

    Ahora sólo nos queda usar el crackeador para obtener la clave WEP a partir del archivo donde se almacenaron todos os IVs capturados.

    Para hacerlo:
    1. Abrimos una Terminal (Aplicaciones->Accesorios->Terminal).

    2. Realizamos el ataque sobre fichero con el aircrack-ng:
      ~$ sudo aircrack-ng /root/*.cap
      Donde:
      • /root/ -> Es la ruta donde se guardó el fichero de paquetes capturados.
      • *.cap -> Es el nombre del fichero de paquetes capturados. Poniendo "*" tomará todos los ficheros de captura que tengamos en la ruta (por si hemos hecho varias capturas, no sólo una).
      NOTA: Si sólo hemos capturado unos 300.000 IVs y queremos hacer un ataque para buscar claves WEP de 40 bits añadimos la opción "-n 64", de la siguiente manera:
      ~$ sudo aircrack-ng -n 64 /root/*.cap

    3. Dejamos que el comando que ejecutamos en el punto anterior siga trabajando hasta que devuelva el mensaje "KEY FOUND!!". Esto significa que la contraseña se a descifrado y se mostrara al lado derecho de la siguiente forma:
      KEY FOUND!! Key found [XX:XX:XX:XX:XX:XX]
      Donde las XX son las letras o números de la contraseña, por ejemplo: Si te muestra [12:34:56:78:90], la contraseña para esa red inalámbrica será 1234567890.

  6. COMPROBAR SI LA CLAVE WEP ES CORRECTA:

    A pesar de que este paso puede obviarse (es lógico pensar que basta con comprobar si podemos acceder a la red), se ha de tener en cuenta que hay dos modos de autenticación WEP y eso puede darnos algún quebradero de cabeza. Los 2 modos son:
    • Open-System Authentication -> Este es el modo predeterminado. El punto de enlace acepta todos los clientes y nunca comprueba la clave (siempre concede la asociación). Sin embargo, si la clave es incorrecta no se podrá recibir o enviar paquetes (porque fallará la desencriptación), y por tanto DHCP, ping,... acabarán interrumpiéndose.
    • Shared-Key Authentication -> En este caso el cliente debe encriptar la petición antes de que le sea concedida la asociación por el punto de enlace. Este modo tiene fallas y provoca la recuperación de la clave, por lo que nunca está activado de modo predeterminado.

    En resumen, sólo por que parezca que te conectas de forma satisfactoria al punto de enlace no significa que tu clave WEP sea la correcta. Para comprobar tu clave WEP, se recomienda desencriptar un archivo capturado (con airodump-ng, tal y como se explicó antes) con el programa airdecap-ng. Para hacerlo, en una terminal ejecutaremos:
    ~$ sudo airdecap-ng PAQUETESCAPTURADOS.cap
    donde:
    • PAQUETESCAPTURADOS.cap -> Es el fichero donde se almacena la información "esnifada".


Para terminar aclararé una duda que me han preguntado en alguna ocasión: ¿Por qué no hay una versión completa de aircrack-ng para Windows? Aunque la gente que desarrolla el proyecto está trabajando activamente en la versión para Windows, se están encontrando algunos problemas con las APIs, sobre todo en la implementación de Aireplay-ng. Esto es porque el controlador PEEK (usado en Win32) no soporta la inyección de paquetes.
De todos modos, para los "güindouseros" hay alternativas comerciales para dicha herramienta que podemos encontrar en la mayoría de páginas oficiales de las propias tarjetas de red.

Y eso es todo. Espero que os sea de utilidad.


Salu2,
elSant0

ALGUNOS ARTICULOS RELACIONADOS

3 comentarios:

Anónimo dijo...

Exelente how to... andaba buscando plugins para Gimp y nu pude parar de leer algunas otras entradas, Gracias por compartir tus conocimientos

elSant0 dijo...

Anónimo(16/07/11)@ Pues quizás también te interese este otro.

Salu2

Anónimo dijo...

que resultado deberia arrojar airdecap-ng si desencripto satisfactoriamente? muy buen tutorial

Publicar un comentario

Escribe aquí tus valoraciones, dudas, sugerencias,... Son sólo unos instantes y ayuda a mejorar el blog.