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

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

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

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

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

Категории

Все категории
Loading categories
esp32-sniffer — Прошивка ESP32, которая перехватывает пакеты PROBE REQUEST, отправляемые смартфонами в поисках Wi-Fi-соединения, для извлечения различных типов информации | Kitploit
Инструменты/GitHubGitHub/ets-polito/esp32-sniffer
Безопасность встроенных системСниффинг и анализ пакетовРазведкаАудит Wi-FiБезопасность IoTСбор информацииБезопасность беспроводных сетейБезопасность оборудования и IoT
GitHubets-polito/esp32-sniffer

esp32-sniffer

Прошивка ESP32, которая перехватывает пакеты PROBE REQUEST, отправляемые смартфонами в поисках Wi-Fi-соединения, для извлечения различных типов информации

32840552 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
Сайт

ESP32 Sniffer

ETS

Software License Demo Twitter

Этот проект использует Espressif IoT Development Framework (ESP-IDF) и был протестирован на модуле ESP-WROOM-32 и esp-idf v3.2.

Обзор всего проекта (то есть прошивки ESP32, сервера и графического интерфейса) можно найти здесь.

Эта прошивка написана с целью перехвата пакетов Probe Request, отправляемых смартфонами, которые ищут Wi-Fi-соединение. Когда Wi-Fi-соединение на смартфоне активно, он широковещательно (на всех частотах каналов) отправляет сообщение probe request с запросом о наличии свободных Wi-Fi-сетей или известных ему сетей (то есть сетей, пароль к которым смартфон знает). ESP32 перехватит его и извлечёт различные типы информации.

Из каждого перехваченного пакета извлекается следующая информация:

  • MAC-адрес смартфона, отправившего запрос
  • SSID Wi-Fi-сети, на которую отправлен запрос
  • Временная метка момента отправки запроса
  • Received Signal Strength Indicator (RSSI)
  • Sequence Number (SN)
  • HT Capabilities Info

Каждую минуту эта информация отправляется на сервер и обрабатывается. Наконец, обработанную информацию (местоположение смартфонов в реальном времени, частоту смартфонов и т. д.) можно увидеть через графический интерфейс.

Демо

Watch the video

Содержание

  • Обзор прошивки
  • Настройка окружения ESP-IDF
  • Использование
  • Конфигурация файлов
    • Конфигурация переменных
    • Добавление пользовательского меню
  • Компоненты
  • Ресурсы

Обзор прошивки

Прошивка состоит из двух основных потоков/задач:

  • Задача Sniffer

    • Перехватывает пакет Probe Request и сохраняет описанную выше информацию в файл.
  • Задача Wi-Fi

    • Каждую минуту берёт информацию, сохранённую задачей Sniffer, и отправляет её на сервер.
    • Для управления критической секцией при операциях ввода-вывода с файлом используется lock.

ESP32 настроен в режиме WIFI_MODE_APSTA: то есть он создаёт "soft-AP and station control block" и запускает "soft-AP and station". Благодаря этому ESP32 способен одновременно перехватывать и отправлять информацию на сервер, избегая потери информации о пакетах во время передачи данных.

Ниже приведён полный список информационных полей, которые могут присутствовать в Probe Request (источник IEEE 802.11-2012):

cwap-probe-10

А ниже — пакет, перехваченный в Wireshark, в котором для каждого поля видны количество бит и их позиция внутри пакета:

cwap-probe-03

Настройка окружения ESP-IDF

Этот раздел может быть устаревшим; посетите официальный сайт, чтобы получить больше информации и актуальное руководство по началу работы с ESP-IDF.

  1. Установка Toolchain

    • Windows
    • Linux
    • Mac OS
  2. Получите ESP-IDF

    Помимо инструментальной цепочки (которая содержит программы для компиляции и сборки приложения), вам также нужны специфичные для ESP32 API / библиотеки.

    cd ~/esp
    git clone --recursive https://github.com/espressif/esp-idf.git
     
    
  3. Переключитесь на версию v3.x

    cd esp-idf
    git checkout release/v3.2
     
    
  4. Настройте путь к ESP-IDF

    Программы инструментальной цепочки обращаются к ESP-IDF через переменную окружения IDF_PATH. Эта переменная должна быть настроена на вашем ПК, иначе проекты не будут собираться.

    • Windows
    • Linux & Mac OS
  5. Установите необходимые пакеты Python

    python -m pip install --user -r $IDF_PATH/requirements.txt
    

Использование

  1. Убедитесь, что вы экспортировали путь

    export IDF_PATH=~/esp/esp-idf
    export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
    
  2. Клонируйте репозиторий

    git clone https://github.com/ETS-PoliTO/esp32-sniffer.git
    cd esp32-sniffer
    
  3. Установите последовательное соединение между ESP32 и вашим ПК

    make menuconfig
    

    Перейдите в Serial flasher config, затем в Default serial port и задайте порт, к которому подключена ESP32

    Обратите внимание: если вы используете переходник, вероятно, вам потребуется скачать драйвер:

    • CP210x
    • FTDI

    Здесь приведено руководство по установке последовательного соединения между ESP32 и ПК.

  4. Соберите код и прошейте ESP32

    make all && make flash
    
  5. Просмотрите логи

    make monitor
    

Конфигурация файлов

Файл /main/Kconfig.projbuild содержит два разных меню:

  • SPIFFS (SPI Flash File System)

    Он содержит важную информацию о разделе SPIFFS:

    • Базовый адрес SPIFFS
    • Размер SPIFFS
    • Логический размер блока SPIFFS
    • Логический размер страницы SPIFFS

    SPIFFS — это файловая система, которая поддерживает выравнивание износа, проверки целостности файловой системы и многое другое.

  • Конфигурации

    Он содержит различные переменные:

    • ESP32_ID: ID ESP32
    • WIFI_SSID: SSID WiFi (имя сети)
    • WIFI_PASS: пароль WiFi (WPA или WPA2)
    • BROKER_ADDR: IP-адрес MQTT-брокера
    • BROKER_PSW: пароль MQTT-брокера
    • BROKER_PORT: порт MQTT-брокера
    • CHANNEL: канал, на котором ESP32 будет перехватывать PROBE REQUEST
    • SNIFFING_TIME: время перехвата
    • и т.д...

Настройка переменных

Чтобы настроить переменные выше:

  1. Откройте терминал в папке проекта и выполните

    make menuconfig 
    
  2. Выберите меню, которое хотите изменить

  3. Отредактируйте переменные по своему усмотрению

Добавление пользовательского меню

Вы также можете добавлять разные меню с разными переменными:

  1. Откройте Kconfig.projbuild

  2. Начните новое меню

    menu YOUR_MENU_NAME
    
  3. Добавьте нужные вам переменные

  4. Завершите меню

    endmenu
    

Компоненты

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