
Script y kit de hardware para desautenticar automáticamente clientes 802.11 en masa. Captura paquetes para futuras fechorías.
Script para desautenticar clientes 802.11 en masa automáticamente. Captura paquetes para fechorías posteriores. Excelente iniciador de conversaciones en tu cafetería local.
Este script fue diseñado para ejecutarse en una Raspberry Pi 3 o superior. También funcionará en hardware similar con las mismas o mayores capacidades, por supuesto.
Se requiere una cantidad considerable de equipo adicional para operar el script de manera efectiva. También necesitarás:
Para máxima efectividad, también deberías tener:
Personalmente uso ConnectBot con Hacker's Keyboard en mi teléfono móvil para controlar equipos como este a través de SSH. Atrae la menor atención y cabe en el bolsillo.
Sugiero que el dispositivo se configure para conectarse automáticamente a una VPN que tú hospedes, para evitar problemas de enrutamiento/NAT. Configurar OpenVPN en un host en la nube es la forma más sencilla de lograrlo. Asegúrate de usar la directiva de configuración del servidor client-to-client de OpenVPN, o de tener el reenvío configurado de otra manera.
Obviamente, necesitarás algún otro método además de wifi para conectar el dispositivo a internet. El acceso celular es el candidato más simple. A menos que desees extraer capturas de paquetes del dispositivo de forma remota, se requiere muy poco ancho de banda (<100Kib/s). Puedes arreglártelas usando un plan de datos "ilimitado" barato que restrinja tu velocidad después de cierta cantidad de datos usados.
He tenido problemas de MTU al ejecutar OpenVPN sobre redes celulares. El remedio más sencillo es establecer tu MTU en 1200 con ip link set dev tunX mtu 1200, donde tunX es tu dispositivo tun. Puede que necesites usar un MTU diferente dependiendo de tu red.
Dependiendo de tu configuración específica, los dispositivos USB conectados pueden consumir más energía de la que la Raspberry Pi puede proporcionar a través de sus medios habituales. Usar un concentrador USB con alimentación como el mencionado anteriormente te permitirá alimentar las radios a través de otro puerto USB de la batería. Algunos concentradores USB baratos realimentarán el concentrador en la Raspberry Pi. Esto es adecuado siempre que uses una batería de buena calidad, e incluso útil.
Otra solución es proporcionar alimentación adicional al concentrador USB usando un divisor como este. Funciona, pero no lo recomiendo. Es una cosa más que podría desconectarse accidentalmente y es difícil de organizar de otra manera.
Si estás proporcionando control remoto a través de un teléfono celular conectado por USB, debes asegurarte de que la batería tenga carga completa al iniciar el equipo, si es posible. Algunos dispositivos baratos pueden no consumir suficiente corriente para mantenerse al día con la energía consumida por una conexión de datos constante.
La combinación de múltiples radios, la Raspberry Pi y el módem celular se calentará mucho. Las Panda PAU06 se calientan especialmente. Si no te importa el calor, terminarás con radios derretidas o algo peor. Haz una prueba con la bolsa o carcasa elegida a temperatura ambiente de antemano para asegurarte de que proporcione una disipación de calor adecuada. Si debes usar el equipo en un ambiente caluroso, como dentro de un vehículo en un día cálido, toma medidas adicionales para evitar el sobrecalentamiento. En el caso de un vehículo, configurar los controles de clima para A/C y arrancar el vehículo de forma remota intermitentemente será suficiente.
Algunos teléfonos celulares baratos son propensos al sobrecalentamiento debido a la combinación del equipo adicional y la necesidad de transmitir datos regularmente. Pueden apagarse bajo estas condiciones, impidiendo el control remoto. Colocar el teléfono en un compartimento separado del resto del equipo ayudará, pero es mejor usar un dispositivo diferente.
Si tienes la intención de operar el equipo de forma encubierta, ten en cuenta que el calor puede llamar la atención de formas inesperadas. Si se deja en el tablero de un vehículo durante un día de nieve, derretirá la nieve y el hielo. Habrá un espacio redondo y limpio en el parabrisas, centrando el equipo a la vista, ¡mientras que todo lo demás está cubierto de nieve!
Las instrucciones de instalación de Wisp se detallan en rpi-install.md. Los pasos deberían ser similares para sistemas no Raspbian. Wisp depende de aireplay-ng de aircrack-ng para transmitir tramas de desautenticación. Notablemente, necesitarás compilar Python-3.7.1 para el dispositivo, lo cual también se describe en el archivo rpi-install.md.
Wisp depende de otro pequeño programa en C llamado dream. El código fuente está incluido como dream.c. Dream depende de libpcap.
Compila dream para tu dispositivo con el comando gcc -O3 dream.c -lpcap.
Dream es una herramienta para monitorear tráfico 802.11 con una salida greppable por líneas. También guarda el tráfico capturado en archivos con el formato pcap estándar. Wisp llama a dream por cada radio de monitoreo y analiza la salida en busca de tráfico de clientes. Aquí están sus argumentos:
--a: Solo reporta tráfico de clientes asociados. (Todos los paquetes aún se registran en disco si --d está habilitado.)--d (archivo): Vuelca paquetes al archivo especificado.-[b][c][d][f][s][t]: Especifica qué campos mostrar por línea, específicamente:
b: BSSc: Número de canal.d: Nombre del dispositivo que recibió el paquete.f: Frecuencia.s: Estación (STA).t: Marca de tiempo de pcap.Estos campos siempre se imprimen en el mismo orden, independientemente del orden especificado. (Es decir, -bcst es equivalente a -sctb.)