
Una utilidad de fuerza bruta offline para Configuración Protegida Wi-Fi
Pixiewps es una herramienta escrita en C utilizada para realizar un ataque de fuerza bruta fuera de línea al PIN de WPS aprovechando la baja o nula entropía de algunas implementaciones de software, el llamado "ataque pixie-dust" descubierto por Dominique Bongard en el verano de 2014. Está destinado únicamente a fines educativos.
A diferencia del ataque tradicional de fuerza bruta en línea, implementado en herramientas como Reaver o Bully, que buscan recuperar el PIN en unas pocas horas, este método puede obtener el PIN en solo cuestión de segundos o minutos, dependiendo del objetivo, si es vulnerable.

Desde la versión 1.4, también puede recuperar la WPA-PSK a partir de una captura pasiva completa (M1 a M7) para algunos dispositivos (actualmente solo algunos dispositivos que funcionan con --mode 3).

Todo comenzó como un proyecto de la comunidad, más detalles se pueden encontrar aquí:
También puedes visitar la wiki.
apt-get -y install build-essential
OpenSSL también se ha reintroducido como opcional para lograr mejores velocidades. Véase la sección Compilación.
Descarga
git clone https://github.com/wiire/pixiewps
o
wget https://github.com/wiire/pixiewps/archive/master.zip && unzip master.zip
Compilación
cd pixiewps*/
make
Opcionalmente, puedes ejecutar make OPENSSL=1 para usar funciones SHA-256 de OpenSSL más rápidas.
Instalación
sudo make install
Usage: pixiewps <arguments>
Required arguments:
-e, --pke : Enrollee public key
-r, --pkr : Registrar public key
-s, --e-hash1 : Enrollee hash 1
-z, --e-hash2 : Enrollee hash 2
-a, --authkey : Authentication session key
-n, --e-nonce : Enrollee nonce
Optional arguments:
-m, --r-nonce : Registrar nonce
-b, --e-bssid : Enrollee BSSID
-v, --verbosity : Verbosity level 1-3, 1 is quietest [3]
-o, --output : Write output to file
-j, --jobs : Number of parallel threads to use [Auto]
-h : Display this usage screen
--help : Verbose help and more usage examples
-V, --version : Display version
--mode N[,... N] : Mode selection, comma separated [Auto]
--start [mm/]yyyy : Starting date (only mode 3) [+1 day]
--end [mm/]yyyy : Ending date (only mode 3) [-1 day]
-f, --force : Bruteforce full range (only mode 3)
Miscellaneous arguments:
-7, --m7-enc : Recover encrypted settings from M7 (only mode 3)
-5, --m5-enc : Recover secret nonce from M5 (only mode 3)
El ejemplo de uso más común es:
pixiewps --pke ... --pkr ... --e-hash1 ... --e-hash2 ... --authkey ... --e-nonce ...
lo que requiere una versión modificada de Reaver o Bully que imprima la clave de sesión de autenticación (--authkey, -a). La versión recomendada es reaver-wps-fork-t6x.
El programa también tiene una página de manual y una pantalla de ayuda detallada (--help) con más ejemplos.
Esta característica se introdujo en Reaver 1.3. Funciona eligiendo la clave privada = 1, lo que resulta en tener la clave pública --pkr = 2. Esto acelera el proceso de descifrado ya que el AP debe realizar menos cálculos para calcular el secreto compartido Diffie-Hellman, que posteriormente se utiliza para derivar las claves de sesión que cifran la transacción actual. Pixiewps puede explotar esta característica para que el usuario no tenga que ingresar --pkr (siempre es 2) y opcionalmente calcular las claves de sesión, como --authkey, si se especifican argumentos adicionales, --r-nonce y --bssid.
Resulta que algunos routers son defectuosos y no funcionan correctamente con esta característica. Algunos ni siquiera podrán validar el PIN correcto y la transacción fallará después de M4. Por esta razón, esta característica está obsoleta y nunca debe usarse en Reaver.
Esta opción requiere el atributo configuración cifrada que se encuentra en M7 cuando el Registrador ha demostrado conocimiento del PIN, y el Punto de Acceso, el Inscrito, envía su configuración de red actual.
Esta característica se puede usar para descifrar la WPA-PSK (y el PIN de WPS) a partir de una captura de paquetes pasiva (por ejemplo, espiando una sesión PBC).
Esta opción se usa solo para el modo 3. Cuando se usa, pixiewps comenzará a forzar por fuerza bruta desde la hora actual y retrocederá hasta 0. Es conceptualmente idéntico a usar --end 01/1970 solo (o --start 01/1970 ya que son intercambiables).
El PIN vacío, denotado con <empty>, se puede probar con -p "" en Reaver 1.6.1 y posteriores. Proviene de una mala configuración del método PIN en algunos Puntos de Acceso que tienen la variable PIN establecida en NULL (o cadena vacía).

Pixiewps se puede compilar para una amplia variedad de plataformas. En Windows se puede compilar con MinGW. Asegúrate de tener instalado el soporte de pthread.
Desde la versión 1.4.1 se ha incluido en los repositorios oficiales de OpenWrt y LEDE.
La numeración de versiones tiene la forma 1.x.y, donde x generalmente indica una versión importante, e y una versión menor, típicamente corrección de errores u otros cambios pequeños. Cada versión importante comienza con y = 0 y debe considerarse inestable en las primeras horas de su publicación, incluso si no está marcada como tal.
Para una lista de cambios entre una versión y la anterior, consulta CHANGELOG.
:', '-', ' ', o sin separador.WPS pin y WPA-PSK se denotan con [+] o [-] en caso de fallo.0 en un intento exitoso.Desde la primera versión, pixiewps ha mejorado mucho, pero es difícil realizar un seguimiento de todos los dispositivos en el mercado. Hemos decidido agregar un mensaje automático que sugiere que estamos interesados en los parámetros del dispositivo probado por el usuario.
kcdtv, rofl0r y binarymaster por ayudar y probar.soxrok2212, datahead, t6_x, aanarchyy y la comunidad de Kali Linux.Pixiewps se basa en el trabajo de Dominique Bongard (@Reversity):