Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
esp32_esp8266_attacks — Доказательство концепции уязвимостей Wi-Fi для ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588) | Kitploit
Инструменты/GitHubGitHub/matheus-garbelini/esp32_esp8266_attacks
Безопасность встроенных системАудит Wi-FiАнализ уязвимостейЭксплуатацияФаззингБезопасность беспроводных сетейТестирование на ПроникновениеБезопасность оборудования и IoT

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
matheus-garbelini/esp32_esp8266_attacks

esp32_esp8266_attacks

Доказательство концепции уязвимостей Wi-Fi для ESP32/8266 (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588)

Репозиторий
820696 лет назадПроверено Kitploit

Атаки Wi-Fi на ESP32/ESP8266

Этот репозиторий является частью исследовательского результата ASSET Research Group. attack_logo

Этот репозиторий демонстрирует 3 Wi-Fi атаки на популярные IoT-устройства ESP32/8266:

  • Zero PMK Installation (CVE-2019-12587) - Перехват управления клиентами ESP32/ESP8266, подключенными к корпоративным сетям;
  • ESP32/ESP8266 EAP client crash (CVE-2019-12586) - Вызов сбоя устройств ESP, подключенных к корпоративным сетям;
  • ESP8266 Beacon Frame Crash (CVE-2019-12588) - Вызов сбоя устройств ESP8266 Wi-Fi.

Перейдите по ссылкам на каждую уязвимость для получения дополнительных сведений и патчей от Espressif.

Эти уязвимости были обнаружены в SDK ESP32 и ESP8266. На момент обнаружения их версиями были ESP-IDF v4.0-dev-459-gba1ff1692 и NONOS-SDK v3.0-103-g7a31cb7 соответственно.

Хотя для тестирования первых двух уязвимостей предоставляется пользовательская версия hostapd, для последней используется ESP8266 для внедрения поддельных beacon-кадров 802.11 с целью вызвать сбой других устройств этого же типа (каламбур не предназначен!).

Инструкции по сборке и запуску PoC

Запуск предварительно скомпилированного бинарного файла

Если вы используете Debian или Ubuntu, вы можете запустить уже скомпилированный hostapd в папке hostapd-2.8_binary. Просто выполните hostapd-2.8_binary/run_hostapd_exploit.sh, чтобы запустить точку доступа для тестирования уязвимости, или hostapd-2.8_binary/run_zero_pmk_EAP.sh для запуска без этого теста. Имейте в виду, что вам нужно остановить сетевые службы с помощью service network-manager stop, чтобы ваш 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
Запуск из исходного кода

Если по какой-то причине бинарный файл не работает в вашей системе, вы можете скомпилировать проект hostapd-2.8_source, запустив скрипт ./buid.sh. Скрипт устанавливает следующие зависимости перед запуском инструмента: build-essential pkg-config git libnl-genl-3-dev libssl-dev libnl-route-3-dev.

После успешной сборки вы можете запустить скрипт ./run_zero_pmk_EAP.sh, чтобы запустить точку доступа для тестирования уязвимости, или ./run_hostapd_normal.sh для запуска без теста.

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
Тестирование сбоя beacon-кадров (CVE-2019-12588)

Для компиляции кода для esp8266 в папке beacon_frame_crasher необходимо выполнить шаги, описанные в ESP8266 Deauther. Это модифицированная версия пакета поддержки платы для ESP8266, которая позволяет внедрять необработанные кадры 802.11. Также предоставляется бинарный файл для быстрого тестирования в beacon_frame_crasher/ESP8266Crasher.ino.d1_mini.bin, если у вас есть запасная плата wemos d1 mini. Обратите внимание, что этот код жёстко запрограммирован на вызов сбоя ESP8266, настроенного на точку доступа с ssid=TEST_KRA. Как только устройство "beacon frame crasher" запускается, другие устройства ESP8266, подключенные к точке доступа, должны периодически перезагружаться.

Альтернативно, если ваше Wi-Fi оборудование поддерживает мониторинг и внедрение, вы можете запустить 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

Вывод PoC

Если SDK вашего устройства ESP уязвим к CVE-2019-12587, вы должны получить от hostapd вывод, подобный этому:

zero_pmk

Если SDK вашего устройства ESP уязвим к CVE-2019-12586, вы должны получить от hostapd вывод, подобный этому:

eap_crasher

В этом случае, так как устройство перезагружается каждый раз при попытке подключения к hostapd, вы должны получить много логов, указывающих на повторное подключение. Если вы отслеживаете последовательный порт устройства, вы также можете получить трассировочные логи.

Настройка

По умолчанию точка доступа PoC имеет следующую конфигурацию:

  • 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

Чтобы изменить эти параметры, измените файл hostapd.conf в корневой папке hostapd (hostapd-2.8_binary/hostapd.conf или hostapd-2.8_source/hostapd/hostapd.conf). Пожалуйста, измените параметр interface в соответствии с вашим Wi-Fi NIC; рекомендуется оставить другие параметры по умолчанию, если вы хотите тестировать клиентские тестовые коды ESP32/8266. Корректные сертификаты также включены (те же, что и в репозитории ESP-IDF), поэтому нет необходимости изменять их в папке hostapd.

Если вы хотите изменить методы EAP или учётные данные пользователя, просто измените hostapd.eap_user

Внимание

Проверьте, позволяет ли ваша библиотека openssl использовать TLS версии 1.0. Обычно эту конфигурацию можно изменить в /etc/ssl/openssl.cnf, изменив последние строки на:

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

Клиентские тестовые коды (опционально)

Коды, используемые для тестирования уязвимых устройств, находятся в папке esp_client_test_codes.

ESP32_Arduino_EAP_Client и ESP8266_Arduino_EAP_Client можно скомпилировать, используя соответствующие пакеты поддержки плат Arduino (arduino-esp32 и arduino-esp8266). Что касается не-Arduino кодов, для компиляции ESP8266_EAP_Client и ESP32_EAP_Client требуются ESP-IDF и ESP8266_NONOS_SDK. Обратите внимание, что для воспроизведения всех описанных уязвимостей необходимо использовать те же или более ранние SDK, чем указано здесь.

Благодарности

Это исследование было частично поддержано Keysight Technologies.

Скачать инструмент