Como activar y configurar el servicio WPS en OpenWrt

[h]Procedimiento[/h]

Voy a explicar como activar y configurar el servicio WPS en un router con OpenWrt. En mi caso lo he realizado a un amper ASL-26555.

Para realizar el proceso necesitamos abrir un terminal SSH en el router, por ejemplo mediante Putty:

http://s26.postimg.org/3pdi5z9yx/Putty.png

Para los que no estén acostumbrados, recordarles que debemos logearmos con el mismo nombre de usuario y password que utilicemos normalmente para acceder al router. Por defecto el usuario es root.

http://s26.postimg.org/y5jf43vi1/Loggin.png

Lo primero que hay que hacer es reemplazar el paquete wpad-mini instalado por defecto, por el hostpad-utils, el cual contiene el soporte para el protocolo WPS:

opkg update opkg remove wpad-mini opkg install wpad hostapd-utils

Una vez hecho esto debemos parametrizar una serie de variables según nuestros intereses.

Lo primero que deberemos hacer, antes de empezar a configurar el servicio WPS, es identificar el nombre del interface wireless de nuestro router. Mediante el comando:

uci show wireless

http://s26.postimg.org/a4cj2ngop/show_wireless.png

En mi caso se trata de wifi-iface[0].

Una vez que conocemos dicha información y de forma opcional podemos configurar los campos referentes al nombre del dispositivo y fabricante, con el que nuestro router se identificará cuando un dispositivo le demande dicha información. Esta información no tiene por que ser configurada sino queremos, en cuyo no se mostrarán esos campos en los mensajes de identificación enviados por el router.

uci set wireless.@wifi-iface[0].wps_device_name="OpenWRT AP" uci set wireless.@wifi-iface[0].wps_manufacturer="openwrt.org"

Si queremos que las conexiones WPS se establezcan por medio del método PushButton, es decir, al pulsar el botón de asociación del router debemos configurar la variable:

uci set wireless.@wifi-iface[0].wps_pushbutton=1

Si queremos conectarnos mediante un PIN de 8 dígitos configuramos las siguientes dos variables:

uci set wireless.@wifi-iface[0].wps_label=1 uci set wireless.@wifi-iface[0].wps_pin= 12345678 (El pin que cada uno desee)

Vale la pena mencionar que dicho PIN, no tiene porque cumplir la regla de generación de pines establecida por la norma WPS, la cual especifica que el último dígito de la serie, corresponde al checksum de los primeros 7.

Sólo falta guardar los cambios y reiniciar el router:

Uci commit Reboot

[h]Motivación[/h]

Aunque suene un poco extraño que alguien quiera configurar el servicio WPS, que ha demostrado ser inseguro, en un firmware que por ese motivo no lo trae instalado por defecto; En mi caso tenia mucho interés activarlo, pues este router lo emplearé para realizar pruebas de auditoría.

Recordad que el protocolo WPS puede ser atacado mediante herramientas como reaver, bully y de forma offline mediante el procedimiento PixieDust.

Refencias:
https://wiki.openwrt.org/doc/uci/wireless
https://gist.github.com/alghanmi/4de45337ca517ebe3a56

Un saludo.

WoW! :slight_smile:
¡Pedazo de tema!
Muchísimas gracias :smiley:
Le pongo una chincheta enseguida,

Muy útil para nosotr@s. No hay nada mas molesto que tener que hacer sus pruebas con el router que usamos… :wink:
Como evocas este punto - y para decir algo porque con una tema así solo me viene la palabra “chapeau!” a la boca :smiley: - se ha estudiado ( wiire, datahead etc… y creo que incluso dominique Bongard ha echado un ojo) OpenWRT para ver si se podía hacer un ataque pixiedust.
Los “Generadores de números aleatorios” empleados son robustos y el protocolo Diffie Hellman correctamente implementado.
El brute force de los hashes del M3 ( ataque offline pixiedust ) a priori no es posible.
Gracias otra vez por este excelente manual. :slight_smile:

pues mira por donde me va a ser de ayuda esta informacion de wps en operwrt, si te soy sincero desconocia que se pudiera activar wps en openwrt pues pensaba que no tenia soporte de esta implementacion. me va a venir de perla

Este tema está de lujo :slight_smile:
5 estrellas… incluso 6 :smiley: