miércoles, 7 de junio de 2017

Hagamos un WiFi Jammer!

En mi afán por obligarme a compartir con todos vosotros todas esos gadgets, investigaciones y experimentos que pasan por mis manos, hoy os quiero contar como con un desembolso mínimo de dinero podemos crear todo un WiFi "Jammer".


Todo empezó hace unos meses gracias a una genial entrada del amigo @Dormidera que siempre me pica con todo lo que publica en su blog (os lo recomiendo!!) y en esta ocasión me descubría un nuevo "gadget", un nuevo concepto (el de Jammer) y sobre todo un plan entretenido para el puente de Semana Santa!

¿Un Jammer?

Los jammer son "maquinitas" que bloquean o interfieren las señales fundamentalmente inalámbricas de teléfonos móviles, Bluetooth, WiFi y GPS entre otras. Yo desde mi ignorancia me atrevería a catalogarlos como una especie de inhibidores.

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.

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.

Lo que vamos a usar aquí se asemeja al segundo tipo mencionado barrage, aunque en el párrafo introductorio lo he entrecomillado porque nosotros vamos a simular un "jammeo" valiéndonos de un ataque de de-autenticación WiFi para desconectar (e impedir su reconexión) a uno, varios o todos los clientes de punto de acceso WiFi pero no es un jammer físico en formato hardware como tal.

El gadget de 5€

Para este proyecto necesitaremos aprovisionarnos de un NodeMCU ESP8266, que se trata de un kit de desarrollo de código abierto, basado en el chip ESP8266 modelo ESP-12 para proyectos que necesiten conectividad Wifi. Si queréis mas información sobre ello y sus posibilidades os dejo este enlace, tiene muchas posibilidades el cacharrito!



En lo que a especificaciones técnicas se refiere, nos encontramos con 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

Podemos encontrarlo desde 5 a 8 euros aproximadamente dependiendo de donde queramos comprarlo y sobretodo de la prisa que tengamos en recibirlo (Amazon o eBay) e incluso a precios mas bajos en webs de china si tenemos aun menos prisa en recibirlo.

Flasheando el Firmware del NodeMCU en Linux!

En primer lugar necesitamos descargarnos el firmware más actualizado desde aquí, y más concretamente necesitaremos descargar el de 1MB que es el que se ajusta a nuestro modelo de NodeMCU concreto (no descarguemos el de 4MB que la liamos!!)


En segundo lugar necesitamos hacernos con algún software que nos permita realizar el flasheo desde nuestro entorno Linux, en mi caso he decidido utilizar esptool que es una herramienta sencilla que permite flashear cualquier firmware en ESP8266 (no solo el NodeMCU). Podéis descargarlo desde su repositorio en GitHub y debéis tener en cuenta que necesitaréis Python 2.7 o Python 3.4 o superior instalado en el sistema.

Una vez descargado y todo listo abrimos una terminal y nos movemos hasta la carpeta donde hemos descargado/clonado esptool y procedemos a utilizar la sentencia adecuada para flashear del firmware una vez situados en la ruta en la que hayamos descomprimido la herramienta

sudo python esptool.py --port /dev/ttyUSB0  write_flash 0x00000 /la_ruta_completa/_donde_está_el/_firmware_descargado.bin


Tened en cuenta que la ruta física del NodeCMU no tiene por que ser necesariamente /dev/ttyUSB0 como en mi caso; si os arroja algún error relacionado con --port comprobad cual es la ruta física asignada a vuestro dispositivo por el sistema

Si todo va bien observaremos como va trabajando y progresando en el porcentaje de escritura hasta completar el 100 para finalmente verificar los datos y reiniciar el dispositivo



Jugando con nuestro Jammer ya operativo

Una vez ya flasheado el firmware deberemos de alimentar nuestro NodeCMU conectándolo a cualquier transformador, powerbank, puerto USB, smarthpone, etc... en unos segundo estará operativo y podemos empezar a jugar con ello.

Desde nuestro ordenador/smartphone/tablet realizaremos un escaneo de redes WiFi dentro del alcance y observaremos que aparece una nueva llamada pwned, ese es nuestro jammer!!


Nos conectamos a él utilizando la contraseña "deauther"




Una vez establecida la conexión abrimos el navegador web y vamos a la dirección 192.168.4.1. Lo primero que nos encontraremos es un mensaje de bienvenida donde se nos advierte de lo que este software puede llegar a hacer y de que solo debemos usarlo con nuestra red y nuestros dispositivos; como ya todos sabemos pero nunca esta de más dejarlo claro: la utilización de este software contra otras redes y dispositivos si no tenemos permiso explicito incurriría en la ilegalidad.
Pinchamos en el botón inferior confirmando la lectura y comprensión del escrito y accedemos al interface principal del proyecto.


Una vez dentro observamos que la interface es muy limpia e intuitiva, con unas secciones superiores muy claras que podemos ir recorriendo y ver en mas detalle:

APs

Usando el botón SCAN nos permite escanear el espectro de radio en busca de Punto De Acceso WiFi dentro de nuestro alcance mostrándonos el canal de emisión, el SSiD, el nivel de potencia/intensidad, el tipo de encriptación.


Observaremos que la última columna nos permite "Seleccionar" una de esas redes para trabajar sobre ella mas adelante cuando avancemos a la siguiente pestaña...

STATIONS

En esta pestaña podremos examinar los clientes que tiene conectados a él el punto de acceso que hayamos seleccionado previamente en la pestaña APs que acabamos de ver en el punto anterior.
Ajustamos el tiempo en segundos que queremos que dure el escaneo (por defecto ya viene aocnfigurado a 15 segundos) y pinchamos sobre el botón START 


Después de esperar el tiempo ajustado (en el que veremos que nos hemos desconectado y reconectado a la red WiFi de nuestro jammer) deberemos recargar la página y en la mitad de la pantalla vermeos un listado de cleintes que estan conectados y asociados al AP seleccionado.


Al igual que hicimos en la primera pestaña, en esta ocasión podremos seleccionar aquellos clientes concretos (o todos) que deseemos someter a los ataques disponibles en la siguiente pestaña...


ATTACKS

En esta pestaña veremos todas las opciones que nos ofrece nuestro proyecto para el ataque una vez fijado el AP objetivos y los clientes conectados objetivo:
Podremos clonar y suplantar el AP para "secuestrar" los clientes, o bien realizar ataques dirigidos a los clientes pudiendo elegir entre ataques de desautenticacion, ataques Beacon Frame (spamea con paquetes Beacon el SSID de la red) y ataque Probe-Request


En la columna derecha podremos poner en marcha los ataques y pararlos cuando consideremos oportuno, igualmente si hacemos scroll hacia abajo nos puede mostrar, por ejemplo, los paquetes beacon aleatorios que genera por si mismo para realizar el Beacon Frame Attack.
A partir de este momento ya solo es cuestión de enfocar nuestro ataque e ir investigando como nuestra red y nuestros clientes se van viendo afectados


SETTINGS

Es un sencillo apartado de configuración del proyecto, dentro podemos cambiar el nombre del SSiD que levanta el proyecto, asi como la clave de acceso e incluso el canal en el que queremos levantarlo.





Espero que la entrada nos se os haya hecho demasiado pesada y sobre todo que haya sido de vuestro interés. A mi me pareció un proyecto sencillo y muy fácil pero no por ello menos interesante!! Desde que lo tengo me acompaña a todas partes con el resto de gadgets que llevo en la mochila!!

Saludos!!!!!!!!


9 comentarios:

  1. Respuestas
    1. Anímate!! 5€ y 30 minutines tienen la culpa!! jajajajajaj

      Gracias por la visita y el comentario!!

      Eliminar
  2. Este es un mundo impresionante. He seguido todos los pasos y ¡¡¡FUNCIONA A LA PERFECCIÓN!!!
    Y ahora me pregunto.......¿Se podría hacer algo similar para bloquear la señal Bluetooth?
    ¿Cómo?
    Por favor seguid publicando este tipo de cosas. Son super interesantes.
    Muchas gracias y saludos

    ResponderEliminar
    Respuestas
    1. trabajando con la frecuencia normalizada para Bluetooth

      Eliminar
  3. Hola, cada vez que entro a station para saber quien esta conectado al punto seleccionado y aprieto start todo se jode y sale esto: error loading ClientScan.json?time=15

    Alguna ayuda lo agradeceria

    ResponderEliminar
  4. jejeje bastante brutal perro. tengo el NODEMCU pero solo lo usaba para otras cosas, viendo esto pues, es interesante.

    ResponderEliminar
  5. Hola! tengo un problema al conectarme a la ip me da este error: esta página no funciona

    ResponderEliminar
  6. Hay forma de hacerlo en vez de tumbar wifi tumbar bocinas Bluetooth?

    ResponderEliminar
    Respuestas
    1. Supongo que habría que buscar un código adecuado para ello... Yo también lo busco para eso, a ver si hay suerte

      Eliminar