Los que me conocen saben que odio las redes WiFi por sus muchas vulnerabilidades, con lo que me he propuesto hacer una saga de "mini-tutoriales", a modo de recetas, para que salgan un poco más a la luz lo débiles que pueden ser algunos sistemas y lo peligroso que puede ser tener una WiFi activa, sobre todo si no se tienen los conocimientos adecuados para fortalecer la seguridad y prevenir ataques.

De modo que ahí va la primera entrega: Romper claves WPA por la vulnerabilidad del WPS mediante Bully.

Como de costumbre, vamos a responder a una serie de preguntas antes de empezar y entrar en materia:

¿Qué es eso de WEP, WPA y WPA2 y qué implicaciones tiene?

No son más que siglas que identifican el tipo de encriptación (es decir, cómo se ocultan las contraseñas y los datos que viajan por el aire) que se utiliza en los sistemas WiFi. No tiene nada que ver con el estándar WiFi que aplica (ya sabéis, eso de WiFi b/g/n...), ya que esto va más con el tipo de señal radioeléctrica (para los telecos, tipo de modulación -PAM, OFDM, PSK...-, codificación binaria de los símbolos -64-QAM, 4-PSK...-, niveles de campo radiado, potencia radiada aparente, etc.) que se utiliza en la interfaz aire y que, a fin de cuentas nos va a dar el caudal (throughout) o tasa binaria que es capaz de mantener el canal: 54, 300 Mbps...

Tal y como están puestas en la pregunta están en orden creciente de "fortaleza" o cuán difícil es descifrar su clave mediante ataques de fuerza bruta. De este modo, para ciertos router WiFi que estén encriptados con WEP, bastará con capturar 4 paquetes y seremos capaces de desencriptar la clave, mientras que para WPA2 con claves alfanuméricas de más de 10 caracteres podríamos estar literalmente días o semanas con superordenadores intentando sacar la clave por fuerza bruta.

En este sentido, conviene cambiar la encriptación (si el router y todos los equipos de nuestro domicilio lo permiten) a WPA2 y cambiar la clave que venga de fabrica por una personal que intercale letras (mayúsuculas y minúsculas), números y caracteres especiales, como por ejemplo: Pro#tO-ti!pAn;Do.

¿Qué significa WPS y cómo puedo saber si mi router lo tiene?

 WPS viene de WiFi Protected Setup y es un invento de la WiFi Alliance para ayudar a proliferar las redes WLAN (Wireless Local Area Network), ya que parecía ser que [MODO IRONÍA = ON]era muy complicado configurar una red WiFi doméstica o para una pequeña oficina[MODO IRONÍA = OFF].

En fin, al final el WPS se traduce en que los router traen un botón o algún mecanismo similar por el que no se tenga que introducir la clave de encriptación (la del router, la WEP, WPA o WPA2) a manopla, sino que hay un autonegociado mediante un PIN numérico de 4 a 8 dígitos y, si el negociado es satisfactorio, el dispositivo huésped es alojado en la WLAN.

Como comprenderéis, esto de cara a la seguridad es una basura... Y efectivamente lo es, ya que muchos router incorporan "ese botón o mecanismo similar" mediante una pulsación remota, pulsación software, etc. Con lo que al final el agujero de seguridad crece aún más.

¿Qué es Bully y cómo actúa?

 Bueno Bully no es más que una de tantas herramientas para hacer un ataque de fuerza bruta contra un router que soporte WPS. Está basada en Reaver, a la que dedicaremos otro artículo próximamente ya que fue la original y primigenia, escrita en C (¡no podía ser de otra forma!), y es idéntica a ésta, salvo algunas optimizaciones de recursos y de algoritmos.

El concepto es fácil: Bully hace un poco de Bullying (sí, está muy bien puesto el nombre) al router en cuestión que soporta WPS. ¿Cómo? Pues sencillamente le manda un paquete especial que le dice: "Oye, quiero conectarme a tu red por WPS, y el PIN es xxxxxxxx", a lo que el desgraciado del router no tiene otra cosa que hacer que responder con un mensaje como: "Vaya, el PIN no es correcto, espera 'n' segundos y vuélvelo a intentar".

El agujero de seguridad se solucionaría como alguno puede intuir haciendo un incremento exponencial del tiempo de espera de 'n' segundos, pero... ¡es que hay router que 'n' es cero! Además, se puede falsear la MAC, con lo que el router cree que no es el mismo PC haciendo un ataque de fuerza bruta, sino que son distintos dispositivos y entonces no penaliza con 'n' segundos... En fin, que entremos en materia y dejémonos de historias.