Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
esp32_esp8266_attacks — Prova di concetto delle vulnerabilità Wi-Fi di ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588) | Kitploit
Strumenti/GitHubGitHub/matheus-garbelini/esp32_esp8266_attacks
Sicurezza Sistemi EmbeddedAuditing Wi-FiAnalisi delle VulnerabilitàExploitFuzzingSicurezza WirelessPenetration TestingSicurezza Hardware e IoT

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
matheus-garbelini/esp32_esp8266_attacks

esp32_esp8266_attacks

Prova di concetto delle vulnerabilità Wi-Fi di ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588)

Vedi Repository
820696 anni faRevisionato da Kitploit

Attacchi Wi-Fi su ESP32/ESP8266

Questo repository fa parte dei risultati di ricerca del ASSET Research Group. attack_logo

Questo repository dimostra 3 attacchi Wi-Fi contro i popolari dispositivi IoT ESP32/8266:

  • Zero PMK Installation (CVE-2019-12587) - Dirottamento di client ESP32/ESP8266 connessi a reti enterprise;
  • ESP32/ESP8266 EAP client crash (CVE-2019-12586) - Crash dei dispositivi ESP connessi a reti enterprise;
  • ESP8266 Beacon Frame Crash (CVE-2019-12588) - Crash dei dispositivi Wi-Fi ESP8266.

Segui i link su ogni vulnerabilità per maggiori dettagli e per le patch di Espressif.

Queste vulnerabilità sono state trovate negli SDK di ESP32 e ESP8266. Le loro versioni erano rispettivamente ESP-IDF v4.0-dev-459-gba1ff1692 e NONOS-SDK v3.0-103-g7a31cb7 al momento della scoperta.

Mentre una versione personalizzata di hostapd è fornita per testare le prime 2 vulnerabilità, per l'ultima viene utilizzato un ESP8266 per iniettare falsi frame beacon 802.11 al fine di mandare in crash altri dispositivi della sua stessa specie (senza giochi di parole!).

Istruzioni di compilazione ed esecuzione del PoC

Esecuzione del binario precompilato
root@kitploit:~
Se stai utilizzando debian o ubuntu puoi eseguire l'hostapd già compilato nella cartella `hostapd-2.8_binary`. Basta eseguire `hostapd-2.8_binary/run_hostapd_exploit.sh` per avviare l'access point per testare la vulnerabilità oppure `hostapd-2.8_binary/run_zero_pmk_EAP.sh` per avviarlo senza questo test. Ti avvisiamo che devi fermare i servizi di rete con `service network-manager stop` per liberare la tua interfaccia 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
Esecuzione dal sorgente
root@kitploit:~
Se per qualche motivo il binario non funziona sul tuo sistema, puoi compilare il progetto `hostapd-2.8_source` eseguendo lo script `./buid.sh`. Lo script installa le seguenti dipendenze prima di eseguire lo strumento: `build-essential pkg-config git libnl-genl-3-dev libssl-dev libnl-route-3-dev`.

Dopo che la compilazione è andata a buon fine, puoi eseguire lo script `./run_zero_pmk_EAP.sh` per avviare l'access point per testare la vulnerabilità oppure `./run_hostapd_normal.sh` per avviarlo senza il 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 del crash da beacon frame (CVE-2019-12588)

Per compilare il codice per esp8266 nella cartella beacon_frame_crasher, è necessario seguire i passaggi in ESP8266 Deauther. Questa è una versione modificata del pacchetto di supporto della scheda per ESP8266 che consente l'iniezione di frame 802.11 grezzi. Viene inoltre fornito un binario per un test rapido in beacon_frame_crasher/ESP8266Crasher.ino.d1_mini.bin nel caso tu abbia una scheda wemos d1 mini di riserva. Nota che questo codice è hardcoded per mandare in crash un ESP8266 configurato come access point con ssid=TEST_KRA. Non appena il dispositivo "beacon frame crasher" si avvia, gli altri dispositivi ESP8266 connessi all'access point dovrebbero riavviarsi a intermittenza.

In alternativa, se la tua scheda Wi-Fi supporta il monitoraggio e l'iniezione, puoi eseguire lo 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

Output del PoC

Se l'SDK del tuo dispositivo ESP è vulnerabile a CVE-2019-12587, dovresti ricevere un output come questo da hostapd:

zero_pmk

Se l'SDK del tuo dispositivo ESP è vulnerabile a CVE-2019-12586, dovresti ricevere un output come questo da hostapd:

eap_crasher

In questo caso, poiché il dispositivo si riavvia ogni volta che tenta una connessione con hostapd, dovresti ricevere molti log che indicano la riconnessione. Se stai monitorando la porta seriale del dispositivo, puoi ricevere anche log di traccia.

Configurazione

Di default, l'access point del PoC ha la seguente configurazione predefinita:

  • 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
  • metodo EAP=PEAP

Per cambiare queste opzioni, modifica il file hostapd.conf nella cartella principale di hostapd (hostapd-2.8_binary/hostapd.conf o hostapd-2.8_source/hostapd/hostapd.conf). Si prega di modificare il parametro interface in modo che corrisponda alla tua scheda di rete Wi-Fi; si consiglia di lasciare gli altri parametri come default se desideri testare i codici client ESP32/8266. Sono inclusi anche i certificati corretti (gli stessi del repository ESP-IDF), quindi non è necessario modificarli nella cartella hostapd.

Se desideri cambiare i metodi EAP o le credenziali utente, basta modificare hostapd.eap_user

Attenzione

Controlla se la tua libreria openssl consente di usare la versione TLS 1.0. Puoi modificare questa configurazione di solito in /etc/ssl/openssl.cnf, cambiando le ultime righe in:

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

Codici client di test (facoltativi)

I codici usati per testare i dispositivi vulnerabili si trovano nella cartella esp_client_test_codes.

ESP32_Arduino_EAP_Client e ESP8266_Arduino_EAP_Client possono essere compilati utilizzando i rispettivi pacchetti di supporto Arduino per le schede (arduino-esp32 e arduino-esp8266). Per quanto riguarda i codici non-Arduino, sono richiesti ESP-IDF e ESP8266_NONOS_SDK per compilare ESP8266_EAP_Client e ESP32_EAP_Client. Nota che devi usare gli stessi SDK o versioni precedenti a quelli menzionati qui per innescare tutte le vulnerabilità descritte.

Riconoscimenti

Questa ricerca è stata parzialmente sostenuta da Keysight Technologies.

Scarica lo strumento