Crea tu WiFi “Jammer” por 5€ y con Arduino – Parte I

El otro día leí una entrada en un blog que sigo que explicaba como crear tu WiFi Jammer de una forma barata y con Arduino. En su blog explicaba como flashear el BIN dentro del NodeMCU ESP8266, pero yo voy a explicaros como hacer para compilar el código y si queréis hacer alguna modificación y sabéis programar lo podáis hacer. Empezamos…

Pero, ¿que es el Jamming?

Primero vale la pena destacar que estos dispositivos son conocidos como jammers, que en palabras muy sencillas son generadores de señales que van a interferir una comunicación inalámbrica.

Existen dos tipos de ataques de interferencia o jamming que pueden ser utilizados para dificultar la comunicación de datos desde un receptor. El primer tipo es el denominado spot, el cual va direccionado a interferir una frecuencia específica, mientras que cuando se trata de afectar varios canales simultáneamente estamos frente a una interferencia del tipo barrage.

En ambos casos, se necesita encontrar la frecuencia adecuada para que el ataque sea efectivo y con la potencia suficiente para suplantar la señal original.

Además hay que resaltar que quienes son víctimas de estos ataques son los clientes que no se pueden conectar a la red, en cualquier caso el AP seguirá operando normalmente y solamente podrán conectarse con algo de suerte aquellos que estén lo suficientemente cerca del dispositivo emisor.

Características

Para empezar, el NodeMCU es un kit de desarrollo open source para proyectos que necesitan conectividad WiFi. Las características del ESP8266 ESP-12 son las siguientes:

  • CPU RISC de 32-bit: Tensilica Xtensa LX106 a un reloj de 80 MHz
  • RAM de instrucción de 64 KB, RAM de datos de 96 KB
  • Capacidad de memoria externa flash QSPI – 512 KB a 4 MB (puede soportar hasta 16 MB)
  • IEEE 802.11 b/g/n Wi-Fi
  • Tiene integrados: TR switch, balun, LNA, amplificador de potencia de RF y una red de adaptación de impedancias
  • Soporte de autenticación WEP y WPA/WPA2
  • 16 pines GPIO (Entradas/Salidas de propósito general)
  • Interfaz I²S con DMA (comparte pines con GPIO)
  • Pines dedicados a UART, mas una UART únicamente para transmisión que puede habilitarse a través del pin GPIO2
  • 1 conversor ADC de 10-bit

Compra

Bueno yo para comprar esta placa fui a amazon y compré esta: https://www.amazon.es/gp/product/B01GCK3J40/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

La puedes encontrar mas barata en otras webs sin problema, yo escogí esa por el tiempo de envío (1 día).

Ventajas de compilar el código a mano

Gracias a esto y si tenemos conocimientos de programación podremos modificar este proyecto a nuestro gusto. Cambiar opciones, valores por defecto, etc. Es un proceso mas complejo que directamente bajarnos el BIN de GitHub y quemarlo, pero si os interesa la programación os merece la pena seguir este pequeño manual.

 

Instalación

Lo único que necesitamos es un ordenador y un ESP8266.

Tenemos dos opciones, flashear el BIN en la memoria o compilar el código y flashearlo, que es lo que haremos nosotros.

Compilando el código con Arduino

  1. Descargamos el código fuente del proyecto desde aquí: https://github.com/spacehuhn/esp8266_deauther
  2. Instalamos Arduino en nuestro equipo
  3. Añadimos http://arduino.esp8266.com/stable/package_esp8266com_index.json dentro del Gestor de URLs Adicionales de Tarjetas (Archivo>Preferencias)

 

4. Nos vamos a Herramientas > Placas > Gestor de Tarjetas  y tecleamos en el buscador esp8266 . Es importante que seleccionemos la versión 2.0.0

 

 

5. Una vez seleccionado pinchamos en Instalar

6. Nos vamos a Archivo > Preferencias de nuevo y pinchamos sobre el path del directorio de preferencias para ir allí con el explorador

 

7. Una vez dentro de la carpeta nos vamos a packages > esp8266 > hardware > esp8266 > 2.0.0 > tools > sdk > include y abrimos el fichero user_interface.h en algún editor de texto, en mi caso con Notepad++

8. Una vez abierto añadimos las siguientes lineas al final del fichero y antes del #endif

user_infertace.h
 
typedef void (*freedom_outside_cb_t)(uint8 status);
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
void wifi_unregister_send_pkt_freedom_cb(void);
int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);

 

 

9. Ahora debemos ir a la carpeta del proyecto que nos descargamos de GitHub denominada SDK_Fix y copiamos los ficheros ESP8266Wi-Fi.cpp y ESP8266Wi-Fi.h

 

10. Ambos archivos los copiamos en packages > esp8266 > hardware > esp8266 > 2.0.0 > libraries > ESP8266WiFi > src

 

 

11. Una vez hecho esto ya podemos abrir el proyecto de Arduino esp8266_deauther > esp8266_deauther.ino

 

11. Al abrir el proyecto debemos asegurarnos que dentro de Herramientas > Placa esta seleccionada la  Generic ESP8266 Module

12. Antes de subir nada a nuestra placa debemos configurar la frecuencia de flasheo y el tamaño de la memoria flash. En el caso de la placa que yo compré la memoria de flasheo es de 1MB y la frecuencia de 80MHz. Esto lo cambiamos en Herramientas> Placa > Flash Frequency y en Herramientas > Placa -> Flash Size

 

13. Hora de conectar nuestra placa, cogemos cualquier usb y conectamos nuestra placa.

14. Compilamos el programa para comprobar que todo esta OK. Esto lo hacemos desde el menú de Programa > Verificar/Compilar. Si todo es correcto nos aparecerá este mensaje en la parte inferior de Arduino.

 

15. Vamos a generar el archivo BIN para poder flashearlo en nuestra placa, para ello nos dirigimos a Programa > Exportar Binarios Compilados. Al realizar esta operación en la carpeta raíz del proyecto nos encontraremos con un BIN que en la siguiente sección flashearemos en nuestra placa.

 

Flasheado

Para poder “quemar” el BIN en nuestra placa vamos a utilizar un programa externo llamado ESP8266Flasher que podemos descargar desde aquí

Una vez descargado debemos configurar algunos parámetros acordes a nuestra placa.

Dentro de la pestaña Advanced configuramos el Flash Size a 1M y el Flash Speed a 80MHz

En la pestaña de Config tenemos que pinchar sobre la rueda y seleccionar la imagen BIN que hemos generado anteriormente

 

Con esto hecho, nos vamos a la pestaña Operation y pinchamos sobre Flash y comenzará el proceso, una vez completado nos aparecerá un circulo verde en la parte inferior.

 

Ya tenemos nuestro WiFi Jammer! Desconectamos la placa del USB.

 

Como el post se ha hecho bastante largo por el proceso de compilación voy a dejar el tutorial de uso de nuestra herramienta para el siguiente post dedicado a esta herramienta, además estoy preparando una traducción al español de la interfaz de uso que seguro que los que no os lleváis bien con el inglés os viene bien!

 

Espero que os haya gustado! 🙂

 

Segunda parte: http://diariodeunexploit.com/2017/05/07/crea-wifi-jammer-5e-arduino-parte-ii/

 

Matías Moreno Cárdenas

Publicado por: Matías Moreno Cárdenas

Analista de Seguridad IT y hacking ético / Desarrollador de Software Multiplataforma. Actualmente director técnico y responsable del departamento de Pentesting en la empresa The Security Sentinel.

Deja un comentario

Press Ctrl+C to copy the following code.
"