Введение
Семейство микроконтроллеров ESP имеет кучу применений как в повседневной жизни, так и в узких отраслях. Рассмотрим микроконтроллер ESP32, так же его интересную прошивку.
WARNING
Важно отметить, что прошивка платы ESP32 для тестирования Wi‑Fi на уязвимости должна использоваться исключительно в рамках законных и этичных целей. Автор статьи не несёт ответственности за неправомерное использование данной информации или применение её в целях нарушения законодательства. Любые действия, основанные на данной статье, должны быть согласованы с соответствующими законами и нормативными актами.
ESP32
ESP32 — это микроконтроллер, разаработанный компанией Espressif Systems. Он представяет собой высокопроизводительный чип, который объединяет в себе процессоры Xtensa LX6 и два ядра Wi‑Fi/Bluetooth. Чип является отличным выбором для разработки умных устройств, датчиков, беспроводных коммуникаций и других проектов. «Старший брат» всеми известной ESP8266. ESP32 также имеет широкую поддержку со стороны сообщества разработчиков. Чип стоит сущие копейки, в интернет‑магазинах его можно встретить по цене в районе 300–400р.
ESP32 Wi-Fi Penetration Tool
Проект представляет собой универсальный инструмент на платформе ESP32 для реализации атак на Wi-Fi.
Включает в себя:
Захват и анализ рукопожатия WPA/WPA2
Преобразование захваченных рукопожатий в файл HCCAPX, для брутфорса в Hashcat.
Атаки деаутентификации с использованием различных методов.
Атаки отказа в обслуживании.
Форматирование захваченного трафика в формат PCAP.
Точка доступа для управления через веб-интерфейс.
Так же проект является частью диссертации самого разработчика risinek, полной академической статьёй можно ознакомиться здесь.
Установка прошивки с Linux
Установка осуществляется довольно простым образом, для начала установим библиотеку python для работы с ESP.
pip install esptool
Установка esptool
После чего скачиваем сам репозиторий в любую удобную нам папку.
git clone https://github.com/risinek/esp32-wifi-penetration-tool
Скачиваем репозиторий
Теперь важный момент, для установки прошивки нам необходимо знать к какому физическому порту подключен наш микроконтроллер, в Windows это посмотреть довольно просто. В Linux же несколько сложнее, в плане поиска нужной нам команды.
Команда называется dmesg
, для начала запустим её так просто, чтобы посмотреть что она выведет.
Вывод кманды dmesg:
Теперь подключим наш чип и снова воспользуемся нашей командой.
Ориентируемся на последние строки и видим что новое USB-устройство было замечено на порту ttyUSB0
. Теперь когда мы знаем нужный порт, заходим в директорию нашего инструмента и вводим команду установки с официальной страницы.
esptool -p /dev/ttyS5 -b 115200 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 build/partition_table/partition-table.bin 0x1000 build/bootloader/bootloader.bin 0x10000 build/esp32-wifi-penetration-tool.bin
Важно: в строке /dev/ttyS5
изменяем значение на свой порт!
Ожидаем завершения установки и переподключаем наше устройство к питанию. После чего ищем Wi-Fi точку с именем ManagementAP и вводим пароль от точки mgmtadmin. После подключения переходим в панель управления которая находится по адресу 192.168.4.1 и видим наш веб-клиент для настройки и управления инструментом.
Важно: по моим личным наблюдениям, панель управления лучше всего открывать с браузера Firefox, именно на нём он работает стабильней всего!
Тестируем прошивку
Ну что же, нас приветствует донельзя простой интерфейс в котором виден диапазон беспроводных сетей и собственно действия над ними. Рассмотрим всё по-порядку.
Интерфейс
В данном случае все действия будут проводиться над моей Wi-Fi точкой ELTX-2.4GHz_WiFi_5F60. Для атаки нужно просто нажать на нужную вам беспроводную сеть и выбрать какие действия над ней совершать в пункте Attack type и Attack method. В пункте Attack timeout продолжительность атаки. После каждой атаки нас будет отключать от чипа, поэтому нужно переподключаться к нему по точке доступа
PMKID
Немного теории
PMKID (Pairwise Master Key Identifier) — это идентификатор мастера ключа, используемый в протоколе WPA/WPA2 для безопасности беспроводных сетей. PMKID генерируется на основе пароля (PSK) и SSID сети. Он используется для установления безопасного соединения между устройствами и точкой доступа.
EAPOL (Extensible Authentication Protocol over LAN) — это протокол аутентификации, используемый в беспроводных сетях (Wi‑Fi) для установления безопасного соединения между клиентским устройством и точкой доступа. EAPOL обеспечивает защиту от несанкционированного доступа и поддерживает различные методы аутентификации, такие как EAP‑TLS, EAP‑TTLS, PEAP и другие.
В 2018 году участниками hashcat был раскрыт новый тип атаки, который не только полагается на один пакет, так ещё и не требует для этого подключенных клиентов. Многие современные маршрутизаторы прибавляют дополнительное поле в конце первого EAPOL кадра, отправленного самим AP. PMKID получается с использованием данных, которые известны нам.
PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.
Практика
Выбираем нашу сеть и запускаем атаку PMKID на 5 секунд.
Об успешной атаке будет свидетельствовать подобное сообщение. Здесь нам не нужен будет никакой файл для конвертации, как в случае с классической атакой на PMKID. Тут нам представлен уже готовый хеш для перебора пароля с помощью hashcat.
Поэтому далее мы пишем подобную команду, в которую вставляем готовый хеш с указанием нашего словаря.
hashcat -m 22000 хеш словарь.txt
Вот вам и пароль от точки доступа, при этом никаких взаимодействий с пользователями!
Захват хендшейка
Немного теории
Если говорить простым языком, устройство на доли секунды посылает запросы на деаутентификацию пользователей и мониторит пакеты. Когда пользователь повторно подкючается к беспроводной сети, он посылает файл рукопожатия на точку доступа, в котором в зашифрованном виде хранится пароль. Собственно его наше устройство и перехватывает для дальнейшего взлома.
Практика
Выбираем нашу сеть, тип атаки, и в качестве метода берём активный захват(деаутентификация пользователей). Таймер можно поставить на минуту.
При успешной атаке, нам высветиться примерно такой результат, с выбором загрузки обычного pcap
файла или hccapx
по-сути готовый формат для взлома в hashcat.
Но посколько формат hccapx уже устарел для hashcat, может сделать проще и скачать обычный pcap файл и пробросить его через старый добрый aircrack-ng следующей командой.
aircrack-ng -w словарь.txt -b мак адрес -e Имя-точки-доступа файл.pcap
Ну и собственно вот он наш пароль.
Отказ в обслуживании
Ну здесь у нас классическая глушилка, на ESP32 работает моментально, плюсом охватывает широкий диапазон.
Заключение
Сети Wi-Fi крайне популярны и ими пользуется большинство людей. Вот что может с ними сделать маленький чип по цене чебурека. Поэтому защищаем свои беспроводные сети хорошим паролем, а лучше всего используем проводное соединение для большей безопасности.
LHMedia в телеграме:
Комментарии (13)
DieSlogan
15.05.2024 10:43Надо вплотную заняться темой выявления глушилок и всяких PwnGochi, думаю, что скоро это будет актуально как никогда
bBars
15.05.2024 10:43А что особенного при этом в esp32? С помощью него можно что-то, чего нельзя сделать с обычного интерфейса в десктопе? Или это из ряда «даже на esp это получилось»?
k61n
15.05.2024 10:43Вроде бы если у вас мак, то вроде бы не получится перевести вайфай модуль в режим прослушивания. Поправьте меня, пожалуйста, если я не прав.
bBars
15.05.2024 10:43Ну не только на маке. Допускаю, что при некоторых комбинациях сетевухи и дров можно не суметь и с линукса чего-то сделать.
Я просто сначала думал, что в модуле esp есть что-то ну прямо совсем специфичное (на аппаратном уровне, например). Вот и пытался выяснить -- что именно.
amaranth
15.05.2024 10:43А какую именно плату с ESP32 использовали ? Они разные есть, например от We Act Studio
k61n
15.05.2024 10:43Благодарю, познавательно.
Имеются вопросы и к автору и к аудитории. Как нынче обстоят дела со словарями? Последнее, что я помню это был rockyou2021.
И с практической точки зрения насколько перехват хэшей целесообразен? У меня роутер с дефолтным паролем из 20 цифр. На видеокарте считать должно примерно 300 лет, если чатГПТ не ошибается.
DSarovsky
Здорово, жаль, что 5 ГГц пока нет. А как, если в двух словах (чтобы не копаться долго в исходниках), в прошивке победили закрытое API?
Помнится, в esp8266 можно было посылать вообще произвольные пакеты (просто массив байтов), из-за чего этот чип нашел применение в хакерских инструментах. ЕМНИП, в том числе поэтому espressif Wi-Fi стек поставляет в виде статических библиотек с экспортированными довольно высокоуровневыми функциями и такой вольности из коробки уже нет.
DoMoVoY
есть ESP32-C5 с 5GHz. Сработает ли там этот метод?