@MeHox
Programmer

Как создать и отправить пакет деаунтетификации?

Я делаю свой маленький приборчик (деауфер) из esp32. Уже реализовал скан wifi сетей вокруг, но никак не могу понять как отправлять на выбраную wifi сеть (не подключаясь к ней) пакеты деаунтетификации. Я много всякого прочитал, и все смутно понятно, но как это реализовать воооообще не ясно. Я понял что сначала нужно получить mac адрес пользователя в этой сети, но я не нашел никаких функций для этого.
Для управления я сделал приложение в MIT App Inventor. Но по факту все общение происходит через Serial.
SCAN_ON - сканирует сети вокруг и добавляет в список names_of_wifis
ATTACK_ON - меняет перемменную на true и в цикле начинается атака
ATTACK_OFF - выключает атаку соответственно

Если вы не хотите разбираться в коде, и просто знаете как создать и отправить пакет деаунтетификации, то ваше знание тоже мне пригодиться :)

#include "WiFi.h"
#include "esp_wifi.h"

bool wifi_deauth = false;
String receive_data;
String names_of_wifis[30] = {};
int t;

void ScanWIFI(){
  int n = WiFi.scanNetworks();
  
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    for (int i = 0; i < n; ++i) {
      // names_of_wifis[i] = WiFi.SSID(i);
      names_of_wifis[i] = WiFi.BSSIDstr(i);
    }
    for (int i = 0; i < (sizeof(names_of_wifis) / sizeof(names_of_wifis[0])); ++i){
      if (names_of_wifis[i] != ""){
        Serial.print(names_of_wifis[i] + " ");
      }
    }
    Serial.print("END_SCAN");
  }
  WiFi.scanDelete();
}

void DeauthWIFI(){

  // эта функция должна создавать и отправлять пакеты деаунтетификации
  esp_wifi_80211_tx(WIFI_IF_STA, &broadcast, sizeof(broadcast), false); // вроде эта строка отправляет необработаные пакеты, но не понятно куда

}

void setup() {
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();

  Serial.begin(115200);
  Serial.setTimeout(20);
}

void loop() {

  receive_data = Serial.readStringUntil('\n');
  receive_data.trim();
  if(receive_data == "SCAN_ON"){
    ScanWIFI();
  }
  else if (receive_data == "ATTACK_ON"){ // if send ATTACK_ON

  }
  else if (receive_data == "ATTACK_OFF"){ // if send ATTACK_OFF

  }

  if (wifi_deauth == true){
    DeauthWIFI();
  }
}
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MeHox Автор вопроса
Programmer
Я заметил что мой вопрос вообще единственный на форуме, похожих почти нет.

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

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

Изменено: Спустя еще кучу времени, я понял что просто запрограммировать деаунтетификатор в arduino ide не получиться. Нужно программировать с помощью ESP-IDF. Дело в том, что отправка пакетов деаунтетификации это низкоуровневое программирование.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час