Как отправить запрос на отключение устройства от сети?

Как отправить пакеты деаутентификации на выбранную Wi-Fi сеть с помощью esp32 без фактического подключения к ней? Как можно получить mac адрес устройства в этой сети для последующей отправки деаутентификации? Как успешно реализовать этот процесс на платформе esp32, используя предварительно собранные данные о Wi-Fi сетях?
  • 30 июля 2024 г. 14:23
Ответы на вопрос 2
Для отправки пакетов деаутентификации на выбранную Wi-Fi сеть с помощью esp32 без фактического подключения к ней, вам нужно будет использовать библиотеку ESP8266WiFi.h для работы с Wi-Fi на платформе esp32. 

Для получения mac адреса устройства в выбранной сети Wi-Fi, вы можете воспользоваться функцией scanNetworks() для поиска доступных сетей и их параметров, включая mac адреса устройств. Затем вы можете выбрать нужный mac адрес и отправить на него пакеты деаутентификации. 

Чтобы успешно реализовать этот процесс, вам нужно будет сначала подключить esp32 к выбранной Wi-Fi сети, чтобы затем сканировать доступные устройства и их mac адреса. После этого вы сможете отправлять пакеты деаутентификации на выбранный mac адрес. 

Пример кода для сканирования сетей и отправки пакетов деаутентификации на esp32 может выглядеть примерно так:

```cpp
#include <Arduino.h>
#include <WiFi.h>

void setup() {
  Serial.begin(115200);

  // Подключаемся к Wi-Fi сети
  WiFi.begin("SSID", "password");

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("Connected to WiFi");

  // Сканируем доступные сети
  int numNetworks = WiFi.scanNetworks();
  Serial.println("Scanned networks:");

  for (int i = 0; i < numNetworks; i++) {
    Serial.print("Network name: ");
    Serial.println(WiFi.SSID(i));
    Serial.print("MAC address: ");
    Serial.println(WiFi.BSSIDstr(i));
  }

  // Отправляем пакеты деаутентификации
  // Для этого используйте библиотеку ESP8266WiFi.h и функцию WiFi.disconnect()
}

void loop() {
  // Код для основной работы устройства
}
```

Обратите внимание, что для отправки пакетов деаутентификации вам может потребоваться использование специализированных библиотек и функций, таких как WiFi.disconnect(). Также следует помнить о законности и этичности использования подобного функционала.
Я заметил что мой вопрос вообще единственный на форуме, похожих почти нет. 

После долгих 8 часов поиска, я понял как работает сама деаунтетификация. Это такой пакет, который можно отправить на определенный MAC адрес, например на MAC адрес сети, тот же BSSID роутера. И если отправлять пакеты достаточно часто, это и будет являться DoS атакой, соответственно вся вайфай сеть начинает лагать и рано или поздно отключает пользователей. По факту это BroadCast. Что меня впринципе устраивает (Это ненадолго).
Как отключать определенные устройства в этой сети тоже вроде дедуктивно понятно - нужно найти MAC адрес этого устройства в сети и кинуть на него пакет деаунтетификации. Но как это реализовать в коде пока неясно.

По большей части опирался на видосы про то как работает деаунтетификация и на проэкт гитхаб, который уже все это реализовал. Но кода у них там прям много....
https://github.com/risinek/esp32-wifi-penetration-...
Похожие вопросы