inseguridad wifi
Overview
El uso de las redes inalámbricas, han permitido que dispongamos de servicios de red, en casi en cualquier lugar, de un modo que no habría sido posible con medios físicos como el cable, ayudando así a la expansión del uso de multitud de tecnologías.
Para que un sistema de comunicaciones se extienda tanto en uso personal como corporativo es necesario que cumpla ciertos requisitos: ha de proporcionar un medio seguro, ha de proporcionar un ancho de banda adecuado y el despliegue ha de ser fácil y económico. ¿O no? Como veremos a continuación no es necesario que se cumplan todos los requisitos listados anteriormente, tal vez solo el último.

No es el fin de este post el de comprometer las redes inalámbricas sino el listar distintos métodos de ataque para que así podamos asegurar nuestras redes o al menos conocer que riesgos pueden comprender.
Ataques online
Por ataques online me refiero a las distintas técnicas que aplicamos contra la infraestructura, puntos de acceso y routers, y/o clientes de forma directa.
Dentro de estos encontraremos distintas implementaciones en cuanto a la seguridad de la red inalámbrica.
Redes abiertas
Es la implementación típica, que no adecuada, en servicios públicos como aeropuertos, campings, hoteles y redes para invitados que puedan proporcionar algunas compañías.
Handshake y PMKID
En este tipo de redes tenemos que tener en cuenta que cualquiera puede husmear en nuestras comunicaciones ya que la red no dispone de ningún mecanismo de protección. Somo nosotros los que debemos aportar esa capa de seguridad, con el uso de vpn’s que protejan nuestros datos.
También destacar que podemos encontrar redes abiertas que permitan acceso a internet de forma directa y los que nos piden que nos registremos en un portal, normalmente para validar que hemos pagado por el servicio. En este segundo caso, usado en aeropuertos, campings y hoteles la seguridad suele depender de la MAC de nuestra tarjeta de red, que es fácilmente modificable.
Como ejemplo de lo fácil que resulta saltarse ese tipo de protecciones podéis ver este script publicado en github de Pau Oliva. Es algo a tener en cuenta cuando planteamos la puesta en marcha de un hotspot o red de invitados.
WEP
El cifrado WEP fue el primero en implementarse, en septiembre de 1999. Hace uso del algoritmo de cifrado RC4 para la confidencialidad, y del CRC-32 para proporciona la integridad.
Se consiguió vulnerar su protección en el 2001 y fue remplazado por WPA, del que hablaremos posteriormente, en el 2003.
Actualmente está en desuso y se recomienda no usarlo, bajo ninguna circunstancia.

Los ataques a las redes WEP son Café late, Hirte, Replay, Chop-Chop, Fragmentación, Falsa asociación, … no entraremos al detalle de cómo realizarlos ya que como hemos comentado las redes WEP están ya en desuso, pero nos servirá para presentar una de las suits de herramientas para las auditorias wifis más conocidas aircrack.
Primero es necesario poner la tarjeta en modo monitor, lo realizaremos con el siguiente comando:
1 | ~:$ airmon-ng start wlan0 |
Una vez realizado ya podemos poner nuestra tarjeta de red a escuchar el tráfico:
1 | ~:$ airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output wlan0 |
Si esperáramos a obtener los paquetes necesarios solo con el tráfico de red lícito tendríamos que esperar varias horas o días. Para acelerar el proceso reinyectaremos tráfico.
1 | ~:$ aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 wlan0 |
Una vez dispongamos de los suficientes paquetes ivs ejecutaríamos aircrack.
1 | ~:$ aircrack-ng -b 00:14:6C:7E:40:80 output*.cap |
Con esta técnica es posible romper la seguridad WEP en unos pocos minutos, es por eso que se desaconseja su uso.
KRACK / Kr00k
Estos dos ataques, que son los más recientes y de los que hablaremos en este post, no nos proporcionarán la clave de la red inalámbrica, sino que nos permiten, descifrar el tráfico, en tiempo real y convertir una red cifrada en una red abierta.
Se puede encontrar la información detallada en la web de Mathy Vanhoef, el investigador que lo encontró.
Disponemos de una prueba con concepto publicada en el github de hexway.
Una vez instaladas las dependencias lo podemos ejecutar del siguiente modo, siendo –b el bssid (punto de acceso wifi) que estemos “comprobando”, –c la mac del cliente asociado y –l para el canal``` bash
~:$ en el que se encuentren.
1 | ~:$ python3 r00kie-kr00kie.py -i wlan0 -b D4:38:9C:82:23:7A -c 88:C9:D0:FB:88:D1 -l 11 |
Empresarial
En este tipo de redes, a pesar de que el cifrado es el mismo WPA del cual hablaremos más adelante, se añade un sistema que gestione las identidades, normalmente un directorio activo que hará uso de un nombre de usuario y contraseña para cada uno de los clientes que se conecten a la red.
wifiphisher
También decir que, aunque pueda ser posible obtener las credenciales, dependiendo de la implementación, puede que no nos sea posible conectarnos a la red dado que es una buena práctica hacer uso de certificados u otros medios de autenticación que nos permitirán identificar fehacientemente no solo el usuario sino también el dispositivo.
Roge AP
Para las redes empresariales se suele usar el ataque conocido como roge ap, en el que levantaremos una infraestructura falsa con la que suplantar la legitima y así poder obtener las credenciales de acceso.
Para ello podemos apoyarnos en hostapd, esta aplicación nos permite crear un punto de acceso que suplantara el original.
Con esta técnica, conseguiremos que los dispositivos se conecten a nuestro punto de acceso, pudiendo capturar las credenciales de les usuarios. Es por ello, que es importante el uso de los certificados para identificar los dispositivos que se conectaran a nuestra red y no basar toda la seguridad en las credenciales.
Ataques offline
Una de las fortalezas de los ataques offline es que suelen ser más rápidos que los online, ya que no dependemos de la velocidad del protocolo, respuesta de los dispositivos, etc … obtenemos el control, ya que la velocidad dependerá, aparte del cifrado con el que estemos trabajando, de la potencia de nuestro equipo.
WPA / WPA2
El cifrado WPA llegó para remplazar el cifrado WEP, que fue comprometido en el 2001, y sigue en uso hasta hoy en día. Actualmente WPA2 es la mejor opción de cifrado de que disponemos para proteger nuestras redes inalámbricas.
Para obtener la clave de una red WPA o WPA2, de momento, solo es posible mediante técnicas de fuerza bruta. Esto significa que probaremos todas las contraseñas posibles. Como veremos posteriormente con las capacidades del hardware actual es un ataque bastante eficaz.
Según un benchamrking de hashcat, una herramienta que comentaremos más adelante, es posible probar 1065.9000 contraseñas por segundo, si disponemos de la tarjeta gráfica adecuada. Es un numero lo suficientemente elevado, que junto con otras técnicas que nos permitirán limitar el número de contraseñas a probar, nos permite, en tiempo razonable, adivinar las contraseñas de este tipo de redes.
Handshake y PMKID
Para que podamos probar las distintas contraseñas, uno de los métodos es la obtención del handshake o el PMKID, en ambos casos estamos obteniendo ciertos paquetes que son compartidos entre el cliente y el punto de acceso.

Este tipo de paquetes se comparten durante el inicio de la conexión, es por ello que, para obtenerlos, tendremos que forzar que los dispositivos reconecten de nuevo.
Primero tendremos que poner nuestra tarjeta de red en modo monitor, lo podemos realizar con el siguiente comando, donde wna0 es la tarjeta de red.
1 | ~:$ sudo airmon-ng wlan0 |
Después pondremos nuestra tarjeta de red a la escucha, indicando el canal, la dirección MAC del punto de acceso bssid, el fichero en el que queremos almacenar las claves obtenidas y la interfaz de red.
1 | ~:$ sudo airodump-ng -c 6 --bssid 28:9E:FC:06:51:9E -w /tmp/demoAP wlan0mon |
Si no disponemos de estos datos podemos ejecutar airodump-ng indicando únicamente la tarjeta de red para monitorizar todos los puntos de acceso que se encuentren a nuestro alrededor.
Para capturar el handshake ejecutaremos la siguiente sentencia, que desconectara momentáneamente al cliente seleccionado del puto de acceso.
1 | ~:$ sudo aireplay-ng -0 1 -e demoAP -c 44:00:49:4B:E7:0D wlan0mon |
Cuando veamos aparecer en el terminal en el que estamos estábamos capturando el tráfico [WPA handshake …] ya podemos detener la captura. Como veremos esta operación suele tardar unos pocos segundos.
1 | CH 6 ][ Elapsed: 24 s ][ 2021-02-20 13:26 ][ WPA handshake: 28:9E:FC:06:51:9E |
Veremos que, en ocasiones, nos capturará el PMKID en vez del handshake, pero nos servirá igual para el objetivo de obtener la clave.
En los próximos puntos emplearemos distintas técnicas para afrontar la parte que nos queda, adivinar la contraseña.
Fuerza bruta
Existen varios métodos para adivinar la clave, la fuerza bruta es el más básico de todos ellos, se trata de probar todas las combinaciones posibles. Esta técnica puede funcionar en claves relativamente cortas y poco complejas.
Antes de iniciar este tipo de ataque debemos definir qué tipo de claves vamos a probar, longitud y caracteres. En el caso de las redes inalámbricas de uso particular podemos hacer uso de tablas de referencia como la siguiente, obtenida de la página de hack5.

Este tipo de tablas nos ayudaran a configurar hashcat a la hora de iniciar el ataque. Supongamos que tenemos una red * Orange-AA0A00*, con 12 caracteres de longitud y caracteres alfanuméricos del 0 al 9 y de la a a la z.
1 | ~:$ ./hashcat.bin -m 2500 -w3 -a3 demoAP.hccapx -1 ?l?d ?1?1?1?1?1?1?1?1?1?1?1?1 |
En este caso, con la tarjeta gráfica de mi portátil, una GeForce GTX 1050 el tiempo necesario para completar todas las combinaciones posibles es de unos cuantos años, por lo que en este caso será necesario buscar otras estrategias para limitar el número de claves a verificar.
Podemos constatar pues que, la fuerza bruta, puede ser útil en contadas ocasiones, solo cuando las claves son cortas y sin gran variedad de caracteres.
Diccionarios
Los diccionarios son una estrategia para reducir la cantidad de claves a probar. Es obvio que en ocasiones la clave buscada no se encontrará en nuestro diccionario, es por ello necesario que escojamos el más adecuado y que apliquemos estrategias que aumenten nuestras posibilidades.
En la cuestión que estamos analizando, las redes inalámbricas tendríamos que diferenciar entre dos grandes opciones:
- Las redes que no disponen de la configuración “por defecto”, que han sido modificadas, y aunque por el ESSID podemos averiguar fácilmente cual es el fabricante, daremos por supuesto que la clave ha sido también cambiada.
En este caso podemos hacer uso de diccionarios como los proporcionados por berzerk0 en su github donde se incluyen las claves más usadas en las redes inalámbricas. Podréis observar que es un trabajo ampliamente documentado, por lo que merece la pena dedicarle algo de tiempo a leerlo.
En el siguiente ejemplo ejecutamos uno de sus diccionarios combinado con uno de sus ficheros de transformaciones. Estos ficheros aplican distintas transformaciones a las claves del diccionario aumentando las posibilidades de éxito, aunque también el tiempo de ejecución, por lo que es importante que los apliquemos con sentido.
1 | ~:$ ./hashcat.bin -m 2500 -w3 --hwmon-temp-abort=94 demoAP.hccapx -r ProbWL-547-rule-probable-v2.rule Top1575-probable2.txt |
Podéis encontrar más ejemplos del uso de hashcat en el post de cracking passwords de este mismo blog.
- Las redes que mantienen el nombre original y que podemos suponer que mantienen también la clave por defecto. Como hemos observado anteriormente, en la mayoría de los casos, verificar todas las posibilidades según los datos que hemos observado en la tabla anterior, en el apartado de la fuerza bruta, puede no ser efectivo. Debido a filtraciones o a trabajos de ingeniería inversa es posible obtener scripts que nos ayuden a acortar las posibilidades.
Un ejemplo de ello son los scripts de goyscript que podemos encontrar en el github de 0x90 que nos proporcionan posibles claves WPS. Si buscamos bien, seguro encontramos el script adecuado a nuestro objetivo. Todos los grandes proveedores han sido vulnerados en un momento u otro y se han exfiltrado sus algoritmos de creación de claves.
Ingeniería social
Otra estrategia que puede ser de utilidad en ciertos escenarios es el de la ingeniería social. Si nos encontramos en un lugar público, como un centro comercial, un aeropuerto, hotel o camping, podemos intentar que sea algún usuario el que nos proporcione sus claves.
Para este propósito, wifiphisher puede que sea la opción más conocida. Podemos encontrar información más detallada en su página web wifiphisher.org.
Con esta aplicación podemos crear un punto de acceso falso, que preguntara las credenciales a los usuarios cuando estos se conecten. Nos permite tanto usar plantillas ya creadas como diseñar las nuestras.
Conclusiones
Las redes inalámbricas pueden proporcionarnos una seguridad adecuada siempre que apliquemos las medidas de seguridad necesarias.
En el caso de las redes domésticas, cambiar el nombre de la red, por uno que no proporcione información que no permita relacionarla con nosotros, pero que nos permita identificarla. Desactivar WPS y poner una clave lo suficientemente larga y compleja.
Para facilitar la introducción de la clave a todos nuestros dispositivos podemos crear un código QR, por ejemplo, desde la página de qrcode-monkey que nos ayude a distribuir la clave.
Para redes corporativas mi recomendación es la de emplear un sistema NAC, network access control, con el que tengamos un mayor control del acceso y en el que podamos aplicar políticas y el uso de certificados para validar la identidad de los equipos que se vayan a conectar a la red.
Hasta aquí el post de hoy. Espero haya sido de vuestro interés.
No dudéis en contactar mediante el formulario para hacerme llegar vuestros comentarios.