Juguetándose con el protocolo WiFi, Esp8266 y AP falsos Deja un comentario

Puede descargar nuestro e-book ‘Learn Arduino from Scratch’ de este enlazar

Estaba navegando por internet en un día lluvioso y tropecé con algunas cosas interesantes. El ESP8266, además de ser un súper chip, que se puede convertir en una estación y un punto de acceso, también puede hacer algunas cosas raras en el nivel más bajo posible en el protocolo WiFi. wifi_send_pkt_freedom () es una función construida en Arduino Core que permite que el chip envíe paquetes WiFi arbitrarios.

Eso significa mucho. Todo lo que se envía en el aire, se envía mediante paquetes. Algunos de estos paquetes pueden ser texto sin formato, otros están encriptados con una clave que se comparte entre un punto de acceso y la estación conectada. Como dije, todo se envía como paquetes, incluso a qué dispositivo envió los paquetes y también su destino.

En github encontré un código que crea múltiples puntos de acceso falsos que aparecen y desaparecen casi al instante. Este código produce unos 100 puntos de acceso por segundo con SSID y direcciones MAC aleatorias. Esto se hace simplemente enviando una serie de paquetes con las partes de la dirección SSID y MAC generadas aleatoriamente.

Si bien este código no debería causar daño a nadie, no podemos descartar que algunos dispositivos antiguos no manejen la cantidad de puntos de acceso de una vez y que también podrían ser ilegales en su país. Úselo con precaución, no somos responsables de ninguna actividad maliciosa o ilegal.

El código original se puede encontrar aquí

#incluir extern "C" {
   #include "user_interface.h"
 }

 String alfa = "1234567890qwertyuiopasdfghjkklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM_";
 canal de bytes;

 // Beacon Packet buffer
 uint8_t paquete [128] = {0x80, 0x00, 0x00, 0x00,
                 / * 4 * / 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
                 / * 10 * / 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
                 / * 16 * / 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
                 / * 22 * ​​/ 0xc0, 0x6c,
                 / * 24 * / 0x83, 0x51, 0xf7, 0x8f, 0x0f, 0x00, 0x00, 0x00,
                 / * 32 * / 0x64, 0x00,
                 / * 34 * / 0x01, 0x04,
                 / * SSID * /
                 / * 36 * / 0x00, 0x06, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72,
                         0x01, 0x08, 0x82, 0x84,
                         0x8b, 0x96, 0x24, 0x30, 0x48, 0x6c, 0x03, 0x01,
                 / * 56 * / 0x04};


 void setup () {
   retraso (500);
   wifi_set_opmode (STATION_MODE);
   wifi_promiscuous_enable (1);
 }



 void loop () {
     // Aleatorizar el canal //
   
     canal = aleatorio (1,12);
     wifi_set_channel (canal);

     // Randomize SRC MAC
     paquete [10] = paquete [16] = aleatorio (256);
     paquete [11] = paquete [17] = aleatorio (256);
     paquete [12] = paquete [18] = aleatorio (256);
     paquete [13] = paquete [19] = aleatorio (256);
     paquete [14] = paquete [20] = aleatorio (256);
     paquete [15] = paquete [21] = aleatorio (256);

     // Aleatorizar el SSID (Tamaño fijo 6. Lazy ¿no?)
     paquete [38] = alfa [aleatorio (65)];
     paquete [39] = alfa [aleatorio (65)];
     paquete [40] = alfa [aleatorio (65)];
     paquete [41] = alfa [aleatorio (65)];
     paquete [42] = alfa [aleatorio (65)];
     paquete [43] = alfa [aleatorio (65)];
    
     paquete [56] = canal;
    
     wifi_send_pkt_freedom (paquete, 57, 0);
     wifi_send_pkt_freedom (paquete, 57, 0);
     wifi_send_pkt_freedom (paquete, 57, 0);
     retraso (1);
 }

Facebook gorjeo Google Mas reddit pinterest linkedin correo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?