Atacando la autenticación por PIN de los routers. Temed al WPS insensatos!

En esta quinta entrega del tutorial de hacking / pentesting básico veremos una forma de ataque a un router un poco más óptima que un ataque por fuerza bruta. La verdad es que vamos a aprovechar un errorrazo de diseño de seguridad llamado WPS. Bueno, en un principio no se diseñó como un error, sino como una forma alternativa de conectarse al Router.

Antes de empezar, veamos un resumen de lo visto hasta ahora en el tutorial:
Hemos montado un laboratorio de seguridad con Kali Linux. Nos hemos dado una vuelta por la deep web. Hemos realizado un escaneo de puertos para descubrir quien esta escuchando y hemos atacado una WiFi por fuerza bruta y ya de paso hemos visto la herramienta de generación de contraseñas.

Entendiendo el WPS

Lo primero, y que más nos servirá para entender este ataque es entender cómo funciona WPS. Lo que no vamos a entender es porque lo implementaron, y ya os avanzo que lo que entenderemos menos es cómo narices han llegado a implementarlo tan mal. Aunque para ser honestos, eran otros tiempos (creo que 2006) y a toro pasado todo es más sencillo.

Un router que tiene identificación por WPS (Casi todos los fabricados posteriormente a 2006) nos permite identificarnos introduciendo un PIN de 8 posiciones. Muy bien, ahora lo comparamos con la clave de 12 posiciones que esta apuntada en nuestro router y que puede contener tanto letras como números. Pasamos de esta clave alfanumérica a una de menor longitud y con muchisimas menos combinaciones posibles. La complejidad se ha reducido mucho, somos bastante más vulnerables a un ataque de fuerza bruta….

Pero no es todo, No. Alguien debió pensar que la cosa se podía mejorar y nadie, nadie saber porque tomo la siguiente decisión:
La contraseña se va a validar en dos partes, primero cuatro posiciones y después las cuatro siguientes.

Vamos a poner los números para que lo tengamos más o menos claro:

  • Contraseña de 10 posiciones con letras y números: 365.615.844.006.297 posibles combinaciones, no sé ni pronunciar el número.
  • PIN de 8 posiciones: 100.000.000 combinaciones posibles. Son muchas, pero la complejidad se ha reducido bastante.
  • PIN de 4 posiciones: 10.000 diferentes combinaciones. Es decir en el peor de los casos 20.000 intentos. ¿Por qué?
  • Vale, ahora ya lo tenemos bastante claro, el WPS no es ni de lejos un sistema seguro, es totalmente atacable, usando un sistema de fuerza bruta, o bueno el que sea.

    El WPS es inseguro, pero mucho

    Atacando el WPS de una WIFI

    Primero vamos a seguir los mismo paso que en el tutorial anterior, el del ataque por fuerza bruta.
    Ponemos la tarjeta en modo monitor.

    ifconfig wlan0 down
    iwconfig wlan0 mode monitor
    ifconfig wlan0 up
    

    Matamos todos los procesos que pueden interferir con nuestra tarjeta:

    airmon-ng check wlan0
    Found 4 processes that could cause trouble.
    If airodump-ng, aireplay-ng or airtun-ng stops working after
    a short period of time, you may want to run 'airmon-ng check kill'
    PID Name
    400 NetworkManager
    624 wpa_supplicant
    632 dhclient
    891 dhclient
    kill 400 624 632 891
    

    Tened en cuenta que a vosotros os pueden salir unos procesos diferentes. Una vez matados todos con el comando kill volvemos a mirar con airmon-ng no sea que se haya quedado alguno.
    Vamos a ver que redes wi-fi tenemos cerca y cuales tiene el WSP activo:

    wash -i wlan0
    
    Resultado del comando WASH.

    Como podemos ver, la ejecución de este comando ya nos da información suficiente sobre todas las redes que tenemos a nuestro alcance. En un principio cualquier red que contenga en un NO en la columna WPS Locked es vulnerable a este ataque. O dios!
    *Atención. Algunas veces el comando WASH falla, a mi me pasa, de tanto en tanto, dando el error: Failed to compile packet filter. En estos casos la secuencia a ejecutar es:

    airmon-ng check kill
    ifconfig wlan0 down
    iwconfig wlan0 mode monitor
    ifconfig wlan0 up
    wash -i wlan0
    

    Ejecutando el ataque:
    El comando wash nos ha dado toda la información que necesitamos para provar este ataque de fuerza bruta, que lo único que necesita por nuestra parte es de paciencia. Es verdad que los router han ido poniendo medidas paliativas ante estos ataques, como hacer esperar a partir de la tercera petición, o incluso desconectar la posibilidad de realizar una ,conexión WPS después de unos cuantos intentos fallidos. Pero nada de esto es insalvable, tan solo retrasa lo inevitable. Ahhh, y estos paliativos tan solo los tienen los routers mas nuevos, digamos que hay muchos que simplemente permiten que entres en unos pocos minutos.

    reaver -i --:--:--:--:--:-- -c 1 -r 2:65 -vv
    

    Los parámetros son bastante deducible, pero vamos a verlos: primeros pasamos la MAC, después el canal, y le indicamos que haga tan solo dos intentos cada 65 segundos. Este último parametro no hace falta, pero así nos evitamos que sea el modem quien tome medidas más drásticas si detecta que está siendo atacado.
    Vale, si vamos tan poco a poco, esto va a ser lento ¿no? Pues sí, pero no importa, porque podemos guardar la sesión. Mientras se esté ejecutando el comando podemos interrumpir en cualquier momento con Ctrl+C. Cuando lo volvamos a introducir nos preguntará si queremos continuar por el punto donde lo dejamos y obviamente vamos a contestar que Sí!

    Bonus track

    Bueno, en todo momento, estoy asumiendo que hacemos las pruebas con nuestro router. Por eso obvio algunos consejos, que si que siguen la gente que se dedica a realizar estos ataques, como por ejemplo cambiar nuestra mac. Si señor! ¿Sabéis ese identificador único que tiene cada dispositivo de red? Pues se puede cambiar como si nada, con solo diez segundos y vais a saber como buscandolo por google. No creo que nadie tarde mas de cinco minutos en encontrar cómo se puede cambiar.

    ¿Qué podemos hacer si el router desconecta el WPS de forma automática? Pues forzar a que el administrador o usuario lo reinicie lanzado un ataque DoS. Los usuarios no podrán conectarse y lo mas normal es que reinicien el router, con lo que se volverá a activar el WPS. Valeeee, que si lo haces seis veces seguidas se van a cansar. ¿Que como lanzamos un ataque DoS? La forma más sencilla es ejecutar:

    airodump-ng --bssid --:--:--:--:--:-- wlan0
    

    Con esto tendría que bastar.

    Y ahora llega la repanocha:
    Por si esto fuera poco hay fabricantes que su PIN se calcula mediante un algoritmo con la única entrada de su MAC! Claro, como la MAC es única el PIN generado es único. Pero hay un problema, el algoritmo se ha comprometido y circulan por Internet unos cuantos programas que les das la MAC y te devuelven el PIN! Así sin ataque ni nada….
    Para poner un ejemplo, en github podemos encontrar el código en python que nos da el PIN de los routers D-LINK si introducimos su MAC.
    https://github.com/devttys0/wps/blob/master/pingens/dlink/pingen.py

    ¿Qué hacemos ahora?
    Si no lo has hecho todavía… CORRE!!!! VE A LA CONFIGURACION DE TU ROUTER Y DESACTIVA EL WSP!!!!! POR DIOS!
    Si no sabes entrar en la configuración de tu router lo que tienes que hacer es poner su IP en el navegador. La ip del router es la mas baja dentro de tu rango de IP’s. Para saberlo ejecuta ifconfig y si por ejemplo tu ip es 192.168.0.105 la ip de tu router será 192.168.0.1. Seguramente te pedira un usuario y un password para entrar, no te preocupes, buscalo por internet, seguramente lo encuentres poniendo “usuario password de router [mi compañía de internet]” suelen ser públicos, mas que nada que para conectarte con este usuario antes debes haber establecido una conexión con el router…. esto nos lleva otra vez a: DESACTIVA POR DIOS LA WPS ya que cualquiera que se conecte a tu router puede entrar en su configuración.
    Ahhh por cierto, otra cosa de la que preocuparnos, una vez alguien conoce nuestro PIN, lo conoce para siempre, este no se puede cambiar, lo pusieron tatuado a fuego dentro del chipset de nuestro router. No importa que cambiemos la contraseña, quien lo sepa podrá adivinarla en cuestión de minutos o segundos. El comando Reaver te la devuelve cuando descubre el PIN, y si ya lo sabe, pues no le va a costar mucho averiguar qué contraseña nueva has puesto.

    Recordad que este post forma parte del tutorial de Hacking / Pen Testing Básico

    Comentarios.