Saltearse al contenido

Ataques a WPS

WPS (WiFi Protected Setup) es la función que permite conectar dispositivos a la WiFi pulsando un botón o metiendo un PIN de 8 dígitos, para evitar teclear la contraseña larga. El problema: ese PIN es un punto débil que, mal implementado, permite recuperar la contraseña WPA de la red sin crackear el handshake. Es uno de los ataques WiFi más rentables cuando WPS está activo, porque evita por completo el crackeo offline de la clave.

El PIN de 8 dígitos no se valida como un todo: se comprueba en dos mitades (los primeros 4 dígitos y los siguientes 3, el 8º es checksum). Eso reduce drásticamente el espacio de búsqueda: de 10^8 a ~11.000 intentos como mucho. Y con el Pixie Dust, a menudo basta una sola interacción.

wash -i wlan0mon # lista APs con WPS activo, su estado y si está "locked"
# columnas clave: WPS version, WPS locked (si no está locked, atacable)
# atacar el PIN por fuerza bruta (por las dos mitades)
reaver -i wlan0mon -b <BSSID> -c <canal> -vv
bully -b <BSSID> -c <canal> wlan0mon
# al recuperar el PIN -> reaver devuelve también la contraseña WPA (PSK)

Lento si el AP no está mal configurado (puede tardar horas y algunos bloquean tras varios intentos: “WPS locked”).

El Pixie Dust explota una debilidad en cómo algunos APs generan los nonces del intercambio WPS: permite calcular el PIN offline a partir de una sola transacción, en segundos/minutos en vez de horas:

reaver -i wlan0mon -b <BSSID> -c <canal> -K 1 -vv # -K activa Pixie Dust
# o bully con --pixiewps / airgeddon (menú WPS -> Pixie Dust)

Muchos chipsets (Realtek, Ralink, Broadcom antiguos) son vulnerables → PIN y contraseña en minutos.

# algunos APs aceptan un PIN vacío o tienen PINs por defecto/calculables por BSSID
# bases de datos de PINs por defecto (según fabricante/MAC)
# airgeddon y wifite integran estas comprobaciones
wifite2 # automatiza WPS (Pixie+bruteforce), WPA handshake, PMKID -> todo-en-uno
airgeddon # menú interactivo con todas las variantes WPS
reaver/bully + pixiewps # las piezas de bajo nivel
  • Deshabilitar WPS por completo en el router — es la mitigación definitiva y casi siempre innecesario.
  • Si no se puede, asegurar que no es vulnerable a Pixie Dust (firmware parcheado) y que bloquea tras intentos fallidos (WPS lock).
  • No usar PINs por defecto; preferir el método de botón (PBC) solo bajo demanda, no PIN permanente.
  • Una contraseña WPA fuerte no protege si WPS está activo y es vulnerable: WPS la entrega directamente.
  • Descubrir APs con WPS activo (wash) y si está locked
  • Pixie Dust primero (reaver -K / pixiewps) — rápido
  • PIN bruteforce (reaver/bully) si Pixie falla
  • PIN nulo / PINs por defecto según fabricante
  • Recuperar la contraseña WPA del PIN
  • Automatizar con wifite2/airgeddon
  • Blue: ¿WPS deshabilitado o parcheado + lock?
  • Documentar que WPS entrega la clave sin crackearla