Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
esp32_esp8266_attacks — Prova de Conceito das vulnerabilidades Wi-Fi do ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588) | Kitploit
Ferramentas/GitHubGitHub/matheus-garbelini/esp32_esp8266_attacks
Segurança de Sistemas EmbarcadosAuditoria de Wi-FiAnálise de VulnerabilidadesExploraçãoFuzzingSegurança Sem FioTestes de PenetraçãoSegurança de Hardware e IoT

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
matheus-garbelini/esp32_esp8266_attacks

esp32_esp8266_attacks

Prova de Conceito das vulnerabilidades Wi-Fi do ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588)

Ver Repositório
82069há 6 anosRevisado pelo Kitploit

Ataques Wi-Fi ESP32/ESP8266

Este repositório é parte de um resultado de pesquisa do ASSET Research Group. attack_logo

Este repositório demonstra 3 ataques Wi-Fi contra os populares dispositivos IoT ESP32/8266:

  • Zero PMK Installation (CVE-2019-12587) - Sequestro de clientes ESP32/ESP8266 conectados a redes empresariais;
  • ESP32/ESP8266 EAP client crash (CVE-2019-12586) - Travamento de dispositivos ESP conectados a redes empresariais;
  • ESP8266 Beacon Frame Crash (CVE-2019-12588) - Travamento de dispositivos Wi-Fi ESP8266.

Siga os links de cada vulnerabilidade para mais detalhes e correções da Espressif.

Estas vulnerabilidades foram encontradas em SDKs do ESP32 e ESP8266. Suas versões eram ESP-IDF v4.0-dev-459-gba1ff1692 e NONOS-SDK v3.0-103-g7a31cb7 respectivamente na época da descoberta.

Enquanto uma versão personalizada do hostapd é fornecida para testar as 2 primeiras vulnerabilidades, para a última, um ESP8266 é usado para injetar quadros (frames) beacon 802.11 falsos, a fim de travar outros de sua própria espécie (trocadilho intencional!).

Instruções de compilação e execução da Prova de Conceito (PoC)

Executando o binário pré-compilado

​ Se você estiver usando Debian ou Ubuntu, pode executar o hostapd já compilado na pasta hostapd-2.8_binary. Basta executar hostapd-2.8_binary/run_hostapd_exploit.sh para iniciar o ponto de acesso e testar a vulnerabilidade, ou hostapd-2.8_binary/run_zero_pmk_EAP.sh para iniciar sem este teste. Esteja ciente de que você precisa parar os serviços de rede com service network-manager stop para que sua interface Wi-Fi fique livre.

TLDR:
root@kitploit:~
service network-manager stop
./run_zero_pmk_EAP.sh # para testar contra CVE-2019-12587 (lembre-se de reiniciar o ESP primeiro)
./run_crash_esp_EAP.sh # para testar contra CVE-2019-12586
Executando a partir do código-fonte

​ Se por algum motivo o binário não funcionar no seu sistema, você pode compilar o projeto hostapd-2.8_source executando o script ./buid.sh. O script instala as seguintes dependências antes de executar a ferramenta: build-essential pkg-config git libnl-genl-3-dev libssl-dev libnl-route-3-dev.

​ Após a compilação bem-sucedida, você pode executar o script ./run_zero_pmk_EAP.sh para iniciar o ponto de acesso e testar a vulnerabilidade, ou ./run_hostapd_normal.sh para iniciar sem o teste.

TLDR:
root@kitploit:~
./build
./run_zero_pmk_EAP.sh # para testar contra CVE-2019-12587 (lembre-se de reiniciar o ESP primeiro)
./run_crash_esp_EAP.sh # para testar contra CVE-2019-12586
Testando o travamento por beacon frame (CVE-2019-12588)

Para compilar o código para o esp8266 na pasta beacon_frame_crasher , é necessário seguir os passos em ESP8266 Deauther. Esta é uma versão modificada do pacote de suporte de placa para ESP8266 que permite a injeção de quadros 802.11 brutos. Um binário também é fornecido para um teste rápido em beacon_frame_crasher/ESP8266Crasher.ino.d1_mini.bin caso você tenha uma placa wemos d1 mini sobressalente. Note que este código é hardcoded para travar um ESP8266 configurado para um ponto de acesso com ssid=TEST_KRA. Assim que o dispositivo "beacon frame crasher" iniciar, os outros dispositivos ESP8266 conectados ao ponto de acesso devem reiniciar intermitentemente.

Alternativamente, se seu hardware Wi-Fi suportar monitoramento e injeção, você pode executar o script python:

root@kitploit:~
sudo apt-get install -y aircrack-ng
sudo airmon-ng check kill
sudo airmon-ng wlan0 start # wlan0 é o nome da sua interface wifi
pip install scapy
python beacon_frame_crasher/ESP8266Crasher.py

Saída da Prova de Conceito (PoC)

Se o SDK do seu dispositivo ESP for vulnerável ao CVE-2019-12587, você deve receber uma saída como esta do hostapd:

zero_pmk

Se o SDK do seu dispositivo ESP for vulnerável ao CVE-2019-12586, você deve receber uma saída como esta do hostapd:

eap_crasher

Neste caso, como o dispositivo está reiniciando toda vez que tenta uma conexão com o hostapd, você deve receber muitos logs indicando reconexão. Se você estiver monitorando a porta serial do dispositivo, também pode receber logs de rastreamento.

Configuração

Por padrão, o ponto de acesso da PoC tem a seguinte configuração padrão:

  • 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

Para alterar essas opções, altere o arquivo hostapd.conf na pasta raiz do hostapd (hostapd-2.8_binary/hostapd.conf ou hostapd-2.8_source/hostapd/hostapd.conf). Por favor, altere o parâmetro interface para corresponder à sua placa de rede Wi-Fi. Recomenda-se deixar os outros parâmetros como padrão se você deseja testar os códigos de teste do cliente ESP32/8266. Certificados corretos também estão incluídos (os mesmos do repositório ESP-IDF), portanto, não há necessidade de alterá-los na pasta hostapd.

Se desejar alterar os métodos EAP ou as credenciais de usuário, basta alterar hostapd.eap_user

Atenção

Verifique se sua biblioteca openssl permite o uso da versão TLS 1.0. Você pode alterar essa configuração normalmente em /etc/ssl/openssl.cnf, alterando as últimas linhas para:

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

Códigos de teste do cliente (opcionais)

Os códigos usados para testar os dispositivos vulneráveis estão na pasta esp_client_test_codes.

ESP32_Arduino_EAP_Client e ESP8266_Arduino_EAP_Client podem ser compilados usando seus respectivos pacotes de suporte de placa Arduino (arduino-esp32 e arduino-esp8266). Quanto aos códigos não-Arduino, são necessários ESP-IDF e ESP8266_NONOS_SDK para compilar ESP8266_EAP_Client e ESP32_EAP_Client. Observe que você precisa usar os mesmos SDKs ou versões anteriores aos mencionados aqui para desencadear todas as vulnerabilidades descritas.

Agradecimentos

Esta pesquisa foi parcialmente apoiada pela Keysight Technologies.

Baixar ferramenta