
Un utilitaire de brute-force hors ligne pour Wi-Fi Protected Setup
Pixiewps est un outil écrit en C utilisé pour bruteforcer hors ligne le code PIN WPS en exploitant la faible ou inexistante entropie de certaines implémentations logicielles, la soi-disant "attaque pixie-dust" découverte par Dominique Bongard à l'été 2014. Il est destiné uniquement à des fins éducatives.
Contrairement à l'attaque traditionnelle par force brute en ligne, implémentée dans des outils comme Reaver ou Bully qui visent à récupérer le code PIN en quelques heures, cette méthode peut obtenir le code PIN en seulement quelques secondes ou minutes, selon la cible, si elle est vulnérable.

Depuis la version 1.4, il peut également récupérer le WPA-PSK à partir d'une capture passive complète (M1 à M7) pour certains périphériques (actuellement seulement certains périphériques qui fonctionnent avec --mode 3).

Tout a commencé comme un projet de la communauté, plus de détails peuvent être trouvés ici :
Vous pouvez également visiter le wiki.
apt-get -y install build-essential
OpenSSL a également été réintroduit en option pour atteindre de meilleures vitesses. Voir la section Build.
Téléchargement
git clone https://github.com/wiire/pixiewps
ou
wget https://github.com/wiire/pixiewps/archive/master.zip && unzip master.zip
Compilation
cd pixiewps*/
make
Optionnellement, vous pouvez exécuter make OPENSSL=1 pour utiliser des fonctions SHA-256 OpenSSL plus rapides.
Installation
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)
L'exemple d'utilisation le plus courant est :
pixiewps --pke ... --pkr ... --e-hash1 ... --e-hash2 ... --authkey ... --e-nonce ...
ce qui nécessite une version modifiée de Reaver ou Bully qui imprime la clé de session d'authentification (--authkey, -a). La version recommandée est reaver-wps-fork-t6x.
Le programme dispose également d'une page de manuel et d'un écran d'aide détaillé (--help) avec plus d'exemples.
Cette fonctionnalité a été introduite dans Reaver 1.3. Elle fonctionne en choisissant la clé privée = 1, ce qui a pour effet d'avoir la clé publique --pkr = 2. Cela accélère le processus de craquage car le point d'accès doit effectuer moins de calculs pour déterminer le secret partagé Diffie-Hellman, qui est ensuite utilisé pour dériver les clés de session qui chiffrent la transaction en cours. Pixiewps peut exploiter cette fonctionnalité afin que l'utilisateur n'ait pas à saisir --pkr (qui est toujours 2) et éventuellement calculer les clés de session, comme --authkey, si des arguments supplémentaires, --r-nonce et --bssid, sont spécifiés.
Il s'avère que certains routeurs sont bogués et ne fonctionnent pas correctement avec cette fonctionnalité. Certains ne pourront même pas valider le code PIN correct et la transaction échouera après M4. Pour cette raison, cette fonctionnalité est obsolète et ne devrait jamais être utilisée dans Reaver.
Cette option nécessite l'attribut paramètres chiffrés trouvé dans M7 lorsque le Registraire a prouvé la connaissance du code PIN, et le point d'accès (l'Enrollee) envoie sa configuration réseau actuelle.
Cette fonctionnalité peut être utilisée pour craquer le WPA-PSK (et le code PIN WPS) à partir d'une capture de paquets passive (par exemple en sniffant une session PBC).
Cette option est utilisée uniquement pour le mode 3. Lorsqu'elle est utilisée, pixiewps commencera à bruteforcer à partir de l'heure actuelle et remontera jusqu'à 0. C'est conceptuellement identique à utiliser --end 01/1970 seulement (ou --start 01/1970 puisqu'ils sont interchangeables).
Le code PIN vide, désigné par <empty>, peut être testé avec -p "" dans Reaver 1.6.1 et ultérieur. Il provient d'une mauvaise configuration de la méthode PIN sur certains points d'accès qui ont la variable PIN définie à NULL (ou chaîne vide).

Pixiewps peut être compilé pour une grande variété de plateformes. Sur Windows, il peut être compilé avec MinGW. Assurez-vous d'avoir installé le support phtread.
Depuis la version 1.4.1, il a été inclus dans les dépôts officiels d'OpenWrt et LEDE.
La numérotation des versions est sous la forme 1.x.y, où x indique généralement une version majeure, et y une version mineure, typiquement des corrections de bogues ou d'autres petites modifications. Chaque version majeure commence par y = 0 et doit être considérée comme instable dans les premières heures suivant sa publication, même si elle n'est pas marquée comme telle.
Pour une liste des changements entre une version et la précédente, consultez CHANGELOG.
:', '-', ' ', ou sansWPS pin et WPA-PSK sont indiquées par [+] ou [-] en cas d'échec0 en cas de tentative réussieDepuis la toute première version, pixiewps s'est beaucoup amélioré, mais il est difficile de suivre tous les appareils sur le marché. Nous avons décidé d'ajouter un message automatique suggérant que nous sommes intéressés par les paramètres de l'appareil testé par l'utilisateur.
kcdtv, rofl0r et binarymaster pour leur aide et leurs testssoxrok2212, datahead, t6_x, aanarchyy et à la communauté Kali LinuxPixiewps est basé sur le travail de Dominique Bongard (@Reversity) :