NOTA: Este tutorial debe ser usado únicamente con fines de aprendizaje y pruebas en tu propia red. El intento de acceso ilícito a redes  puede ser considerado como delito penal. No nos hacemos responsables del uso que le déis 🙂

Introducción

WEP

Hasta hace algunos años, se había estado utilizando el cifrado WEP para la interconexión de dispositivos wifi a través de la frecuencia de 2.4Ghz. La rotura del protocolo allá por el, creo, 2006, permitió a hackers y, posteriormente, a todos los script kiddings conectarse a redes ajenas para su uso ilícito.captura wifislax airoscript

Ojo, del mismo modo que la gente se aprovechó de estas redes WEP, también aparecieron individuos maliciosos que dejaron sus redes abiertas o con cifrado inseguro con objeto de que terceros se conectaran a las mismas consiguiendo husmear el tráfico que emitían/recibían los terceros o, incluso, montar webs falsas (phising) para capturar datos personales del incauto.

La explicación de la obtención de las claves de redes WEP ya no tiene sentido ya que está muy bien explicado y tenéis scripts que lo hacen por pasos en el Wifislax (menú principal->Wifislax->Suite aircrack-ng->airoscript wifislax). Hoy día será difícil encontrar alguna red con cifrado WEP y, si la encuentras, sospecha de ella ya que puede ser una trampa.

 

WPA/WPA2

Se trata del Wireless Protected Access, o acceso protegido a redes wifi. La pretensión inicial de este tipo de cifrado es su uso con autenticación por terceros, es decir, añadir un servidor (RADIUS) que, una vez conectado a la red usando la clave WPA especificada, se encargue de autenticar al usuario y le dé paso a la misma. De este modo aumentaríamos la seguridad en los accesos ya que no bastaría con obtener la clave wifi, además sería necesario obtener un usuario y su clave de acceso creados en el servidor RADIUS.

Puesto que es poco probable que exista un RADIUS en una red doméstica o en pequeña empresa, podemos esperar que, una vez obtenida una clave WPA tengamos acceso a la red de destino.

A priori, una WPA es imposible de romper debido a la fortaleza de su cifrado. Según este tipo (Cristopher Smith), usando John the Ripper (al final del artículo tenéis la referencia) y un buen diccionario, podría llevar entre 1 segundo y 100.000 años, así que es virtualmente imposible conocer el tiempo.

El problema aparece cuando se requiere simplicar la instalación y uso de las redes en el entorno doméstico y las pequeñas empresas que no cuentan con un profesional informático en su plantilla: Se requiere preparar el sistema para que cualquier usuario (o Luser, como lo llama el colega Wardog) pueda conectar sus dispositivos de un modo sencillito y sin quebraderos de cabeza. Para ello, se inventaron el WPS.

WPS

Para facilitar la tarea a los usuarios, se inventaron el WPS que es, básicamente, un botoncillo que traen los routers y puntos de acceso y que permite vincular los dispositivos sin necesidad de conocer la clave. Además, permite vincular usando un número PIN de 8 cifras bastante más fácil de recordar que el “chorizo” usado para el WPA.

El problema es que facilitar las cosas implica, probablemente, fallos en la seguridad, como ha resultado ser el caso. Así tenemos que, según esta web, de los 100 millones de combinaciones posibles que nos ofrece tener un PIN de 8 dígitos usando números del 0 al 9, podemos pasar a sólo 11.000 combinaciones por un error al usar bloques de 4 dígitos (dos mitades) que se verifican por separado. La primera mitad con 10^4 combinaciones (10.000) a 1 PIN por segundo se puede escanear completa en apenas 2 horas y pico. La segunda mitad tiene sólo 10^3 (1000 combinaciones) debido a que uno de los números es el valor checksum, con lo que en sólo 16 minutos pasamos por todas las combinaciones posibles.

Vale, como humanos podemos ir probando combinaciones una a una hasta encontrar la clave correcta, pero es implicaría ir tecleando claves en la casilla en un bucle de 11.000 disparos, terminando con callos en los dedos y las uñas desgastadas, así que un tipo llamado Craig Heffner (<cheffner@tacnetsol.com>) ha creado un programa que se encarga de comprobar combinaciones hasta obtener la clave WPA de la red wifi atacada.

Tutorial paso a paso

¿Qué necesitarás?

  • Un portátil o sobremesa con tarjeta WIFI
  • Una distro linux cualquiera o, mejor, una Wifislax o Kali Linux (porque ya vienen con las herramientas necesarias). Para esta práctica usaremos Kali Linux. Si no sabes cómo montarlo en un pendrive para hacerlo live, te dejo aquí un minitutorial.
  • Si ya tienes linux, necesitarás: airmon-ng, reaver, wifite, wash.
  • Redes WPS vulnerables en la zona. Vulnerables significa que deben tener el WPS activado.
  • Paciencia y tiempo. En las pelis crackean a toda velocidad y son capaces de hacer zoom infinito sobre cualquier bitmap, pero es ficción, ya sabes.

 

Empezamos

Una vez arrancado el escritorio del Kali, abre un par de terminales:

hack-wpa-abrir-terminales

Abrir dos terminales nos permite trabajar en ambas al mismo tiempo por referencia.

Antes de empezar la tarea, debemos activar el modo monitor en la tarjeta de red wifi que vayamos a usar. En el portátil que estamos utilizando ahora tenemos dos, que identificaremos usando el siguiente comando:

ifconfig 

que nos dará una salida similar a la siguiente:

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 54:234:LL:JK:50:1c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 10  bytes 578 (578.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 578 (578.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.0.101  netmask 255.255.255.0  broadcast 172.16.0.255
        inet6 fe80::62d8:56QW:fe3c:b308  prefixlen 64  scopeid 0x20<link>
        ether 60:d8:b3:08  txqueuelen 1000  (Ethernet)
        RX packets 6863  bytes 6089789 (5.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5713  bytes 2384063 (2.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:TT:TU:PL:00:17  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

En nuestro caso, activaremos la “wlan1”:

airmon-ng start wlan1 

La tarjeta se “convertirá” en “wlan1mon” y podremos usarla para escanear las proximidades.

Ahora buscamos las redes susceptibles de recibir nuestros piropos:

wash -i wlan1mon 

hack-wash-wps-wpa-informaticacoslada
Por motivos obvios, he tapado las BSSID y las MACs de las redes localizadas. Ahora es momento de preparar el comando que nos permitirá obtener la clave WPA de las redes. Elige el objetivo que más te guste y dispara con el siguiente comando:

time reaver -i wlan1mon -b F8:100:LL:31:93:E0 -c 3 -v 

Donde el “chorizo” numérico es la BSSID de la red que obtuvimos en el listado del comando “wash”; la opción “-c 3” indica el canal 3 y el parámetro “-v” te muestra lo que va haciendo el programa.

Usar el comando “time” antes de “reaver” hace que el sistema controle el tiempo que tarda hasta terminar la ejecución, permitiéndote saber cuánto ha tardado en realizarse la operación.

El resultado en caso de éxito debe ser parecido a este:

hack-wpa-informaticacoslada-con-reaver

AP SSID: es el nombre de la red que has comprobado

WPA PSK: te devuelve el código WPA para conectarte a esa red.

Si tienes suerte, será rápido pero es cierto que hay 11.000 opciones, con lo que el tiempo puede llegar a ser de 10h.

Obtener claves usando WIFITE

Wifite es un programa para linux que optimiza, automatiza y facilita la anterior gestión:

wifite-informaticacoslada

Da una pasada por todos los canales buscando y marcando las redes por proximidad o potencia de emisión, dejando las más potentes las primeras de la lista:

wifite-lista-de-redes-informaticacoslada

Una vez obtenidas todas las redes de la zona, paras el escaneo pulsando CTRL+C, quedando el programa a la espera de la selección de redes que quieres preparar.

Si eliges “all”, el sistema entra en modo automático pasando todas las combinaciones a cada una de las redes. Es ideal para dejar el equipo trabajando mientras te dedicas a otros menesteres más productivos como leer, trabajar o buscar pokémons.

También puedes indicar redes individuales o una selección de ellas separando por comas los números de orden: “1,2,3,15,30”.

El proceso puede ser lento o rápido dependiendo de las vulnerabilidades de cada red.

FIN

Como decía al principio del artículo, ten en cuenta que es ilegal romper claves de redes ajenas. También lo es conectarse a las mismas y obtener datos o información husmeando. Usa este tutorial para escanear y asegurar tu red o para practicar temas de seguridad. No nos hacemos responsables del uso que realices de estos programas.

Te recomiendo que eches un vistazo a las referencias y definiciones a continuación. Siempre es bueno aprender 😉

Referencias y definiciones:

http://www.isaac.cs.berkeley.edu/isaac/wep-faq.html (In)Seguridad de WEP

Pixie Dust explicado en español

Pixie Dust en inglés

Pixie Attack en el foro de Kali. Muy muy interesante.

La inseguridad del WPS. Explicación completa.

Cifrado WEP en wikipedia

WPA en wikipedia

Script Kidding: Persona que presume de tener conocimientos que no posee y que no tiene intención de aprender.

Distribución Wifislax para hackeo de redes

Servidor RADIUS en wikipedia

¿Cuánto tiempo se necesita para romper una WPA por fuerza bruta?

John the Ripper crackeador de claves por fuerza bruta

Un informático en el lado del mal. Algunos tutoriales para la obtención de claves usando la fuerza bruta y diccionarios.