Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
esp32_esp8266_attacks — Preuve de concept des vulnérabilités Wi-Fi ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588) | Kitploit
Outils/GitHubGitHub/matheus-garbelini/esp32_esp8266_attacks
Sécurité des Systèmes EmbarquésAudit Wi-FiAnalyse des VulnérabilitésExploitationFuzzingSécurité Sans FilTests d'IntrusionSécurité Matériel et IoT

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
matheus-garbelini/esp32_esp8266_attacks

esp32_esp8266_attacks

Preuve de concept des vulnérabilités Wi-Fi ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588)

Voir le dépôt
82069il y a 6 ansVérifié par Kitploit

Attaques Wi-Fi ESP32/ESP8266

Ce dépôt fait partie d'un résultat de recherche du ASSET Research Group. attack_logo

Ce dépôt démontre 3 attaques Wi-Fi contre les populaires appareils IoT ESP32/8266 :

  • Zero PMK Installation (CVE-2019-12587) - Détournement de clients ESP32/ESP8266 connectés à des réseaux d'entreprise ;
  • ESP32/ESP8266 EAP client crash (CVE-2019-12586) - Plantage d'appareils ESP connectés à des réseaux d'entreprise ;
  • ESP8266 Beacon Frame Crash (CVE-2019-12588) - Plantage d'appareils Wi-Fi ESP8266.

Suivez les liens sur chaque vulnérabilité pour plus de détails et les correctifs d'Espressif.

Ces vulnérabilités ont été trouvées dans les SDK des ESP32 et ESP8266. Leurs versions étaient respectivement ESP-IDF v4.0-dev-459-gba1ff1692 et NONOS-SDK v3.0-103-g7a31cb7 au moment de la découverte.

Bien qu'une version personnalisée de hostapd soit fournie pour tester les 2 premières vulnérabilités, pour la dernière, un ESP8266 est utilisé pour injecter de fausses trames de balise 802.11 afin de faire planter d'autres de ses propres (jeu de mots involontaire !).

Instructions de construction et d'exécution du PoC

Exécution du binaire pré-compilé

​ Si vous utilisez Debian ou Ubuntu, vous pouvez exécuter le hostapd déjà compilé dans le dossier hostapd-2.8_binary. Exécutez simplement hostapd-2.8_binary/run_hostapd_exploit.sh pour démarrer le point d'accès afin de tester la vulnérabilité ou hostapd-2.8_binary/run_zero_pmk_EAP.sh pour démarrer sans ce test. Notez que vous devez arrêter les services réseau avec service network-manager stop pour libérer votre interface Wi-Fi.

TLDR:
root@kitploit:~
service network-manager stop
./run_zero_pmk_EAP.sh # to test against CVE-2019-12587 (remember to restart ESP first)
./run_crash_esp_EAP.sh # to test against CVE-2019-12586
Exécution à partir des sources

​ Si pour une raison quelconque le binaire ne fonctionne pas avec votre système, vous pouvez compiler le projet hostapd-2.8_source en exécutant le script ./buid.sh. Le script installe les dépendances suivantes avant d'exécuter l'outil : build-essential pkg-config git libnl-genl-3-dev libssl-dev libnl-route-3-dev.

​ Après une compilation réussie, vous pouvez exécuter le script ./run_zero_pmk_EAP.sh pour démarrer le point d'accès afin de tester la vulnérabilité ou ./run_hostapd_normal.sh pour démarrer sans le test.

TLDR:
root@kitploit:~
./build
./run_zero_pmk_EAP.sh # to test against CVE-2019-12587 (remember to restart ESP first)
./run_crash_esp_EAP.sh # to test against CVE-2019-12586
Test du plantage par trame de balise (CVE-2019-12588)

Afin de compiler le code pour esp8266 dans le dossier beacon_frame_crasher, il est nécessaire de suivre les étapes dans ESP8266 Deauther. Il s'agit d'une version modifiée du package de support de carte pour ESP8266 qui permet l'injection de trames 802.11 brutes. Un binaire est également fourni pour un test rapide dans beacon_frame_crasher/ESP8266Crasher.ino.d1_mini.bin au cas où vous auriez une carte wemos d1 mini de rechange. Notez que ce code est codé en dur pour faire planter un ESP8266 configuré pour un point d'accès avec un ssid=TEST_KRA. Dès que le dispositif "beacon frame crasher" démarre, les autres appareils ESP8266 connectés au point d'accès devraient redémarrer par intermittence.

Alternativement, si votre matériel Wi-Fi supporte la surveillance et l'injection, vous pouvez exécuter le script python :

root@kitploit:~
sudo apt-get install -y aircrack-ng
sudo airmon-ng check kill
sudo airmon-ng wlan0 start # wlan0 is your wifi interface name
pip install scapy
python beacon_frame_crasher/ESP8266Crasher.py

Sortie du PoC

Si le SDK de votre appareil ESP est vulnérable à CVE-2019-12587, vous devriez recevoir une sortie comme celle-ci de hostapd :

zero_pmk

Si le SDK de votre appareil ESP est vulnérable à CVE-2019-12586, vous devriez recevoir une sortie comme celle-ci de hostapd :

eap_crasher

Dans ce cas, comme l'appareil redémarre à chaque tentative de connexion avec hostapd, vous devriez recevoir beaucoup de logs indiquant une reconnexion. Si vous surveillez le port série de l'appareil, vous pouvez également recevoir des logs de trace.

Configuration

Par défaut, le point d'accès du PoC a la configuration par défaut suivante :

  • ssid=TEST_KRA
  • channel=9
  • bssid=28:c6:3f:a8:af:c5
  • interface=wlan0
  • server_cert=wpa2_server.pem
  • private_key=wpa2_server.key
  • user=matheus_garbelini
  • user_password=testtest
  • EAP method=PEAP

Pour modifier ces options, changez le fichier hostapd.conf dans le dossier racine de hostapd (hostapd-2.8_binary/hostapd.conf ou hostapd-2.8_source/hostapd/hostapd.conf). Veuillez modifier le paramètre interface pour qu'il corresponde à votre carte réseau Wi-Fi, il est conseillé de laisser les autres paramètres par défaut si vous souhaitez tester les codes de test client ESP32/8266. Des certificats corrects sont également inclus (identiques à ceux du dépôt ESP-IDF), donc pas besoin de les modifier dans le dossier hostapd.

Si vous souhaitez modifier les méthodes EAP ou les identifiants utilisateur, changez simplement hostapd.eap_user

Attention

Vérifiez si votre bibliothèque openssl permet d'utiliser la version TLS 1.0. Vous pouvez normalement modifier cette configuration dans /etc/ssl/openssl.cnf, en changeant les dernières lignes comme suit :

root@kitploit:~
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=1

Codes clients de test (optionnel)

Les codes utilisés pour tester les appareils vulnérables se trouvent dans le dossier esp_client_test_codes.

ESP32_Arduino_EAP_Client et ESP8266_Arduino_EAP_Client peuvent être compilés en utilisant leurs packages de support de carte Arduino respectifs (arduino-esp32 et arduino-esp8266). Quant aux codes non-Arduino, ESP-IDF et ESP8266_NONOS_SDK sont nécessaires pour compiler ESP8266_EAP_Client et ESP32_EAP_Client. Notez que vous devez utiliser les mêmes SDK ou des versions antérieures à celles mentionnées ici pour déclencher toutes les vulnérabilités décrites.

Remerciements

Cette recherche a été partiellement soutenue par Keysight Technologies.

Télécharger l’outil