
Kit de script e hardware para desautenticar automaticamente clientes 802.11 em massa. Captura pacotes para futuras maldades.
Script para desautenticar automaticamente clientes 802.11 em massa. Captura pacotes para fins nefastos posteriores. Ótimo para iniciar conversas na sua cafeteria local.
Este script foi projetado para rodar em um Raspberry Pi 3 ou superior. Também funcionará em hardware similar com as mesmas ou maiores capacidades, é claro.
Uma quantidade considerável de equipamento adicional é necessária para operar o script de forma eficaz. Você também precisará de:
Para máxima eficácia, você também deve ter:
Eu pessoalmente uso o ConnectBot com o Hacker's Keyboard no meu celular para controlar kits como este via SSH. Chama menos atenção e cabe no bolso.
Sugiro que o dispositivo seja configurado para conectar-se automaticamente a uma VPN que você hospede, para evitar problemas de roteamento/NAT. Configurar o OpenVPN em um servidor em nuvem é a maneira mais fácil de fazer isso. Certifique-se de usar a diretiva de configuração do servidor client-to-client do OpenVPN, ou tenha o encaminhamento configurado de outra forma.
Obviamente, você precisará de algum outro método além do wifi para conectar o dispositivo à internet. O acesso celular é o candidato mais simples. A menos que você queira baixar as capturas de pacotes do dispositivo remotamente, é necessária muito pouca largura de banda (<100Kib/s). Você pode usar um plano de dados "ilimitado" barato que restrinja sua velocidade após o uso de uma certa quantidade de dados.
Tive problemas de MTU ao executar OpenVPN via celular. A solução mais fácil é definir sua MTU para 1200 com ip link set dev tunX mtu 1200, onde tunX é seu dispositivo tun. Talvez seja necessário usar uma MTU diferente dependendo da sua rede.
Dependendo da sua configuração específica, os dispositivos USB conectados podem consumir mais energia do que o Raspberry Pi pode fornecer por seus meios usuais. Usar um hub USB com alimentação como o mencionado acima permitirá alimentar os rádios através de outra porta USB da bateria. Alguns hubs USB baratos irão "alimentar de volta" o hub no Raspberry Pi. Isso é adequado desde que você esteja usando uma bateria de boa qualidade, e até útil.
Outra solução é fornecer energia adicional ao hub USB usando um divisor como este. Funciona, mas não recomendo. É mais uma coisa que pode se desconectar acidentalmente e é difícil de organizar.
Se você estiver fornecendo controle remoto através de um celular conectado por cabo, deve garantir que a bateria esteja totalmente carregada ao iniciar o kit, se possível. Alguns dispositivos baratos podem não consumir corrente suficiente para acompanhar a energia consumida por uma conexão de dados constante.
A combinação de vários rádios, o Raspberry Pi e o modem celular vai esquentar bastante. Os Panda PAU06 funcionam especialmente quentes. Se você não se importar com o calor, acabará com rádios derretidos ou pior. Faça um teste com sua mochila/estojo escolhido em temperatura ambiente antes, para garantir que forneça dissipação de calor adequada. Se precisar usar o kit em um ambiente quente, como dentro de um veículo em um dia quente, tome algumas medidas extras para evitar superaquecimento. No caso de um veículo, configurar o controle climático para A/C e religar o veículo intermitentemente será suficiente.
Alguns celulares baratos são propensos a superaquecimento devido à combinação do equipamento adicional e à necessidade de transmitir dados regularmente. Eles podem desligar nessas condições, impedindo o controle remoto. Colocar o telefone em um compartimento separado do resto do kit ajudará, mas é melhor usar um dispositivo diferente.
Se você pretende operar o kit de forma encoberta, lembre-se de que o calor pode chamar atenção de maneiras inesperadas. Se for deixado no painel de um veículo em um dia de neve, derreterá a neve e o gelo. Haverá um espaço redondo limpo no para-brisa, centralizando o kit à vista, enquanto tudo ao redor está coberto de neve!
As instruções de instalação do Wisp estão detalhadas em rpi-install.md. Os passos devem ser semelhantes para sistemas não Raspbian. O Wisp depende do aireplay-ng do aircrack-ng para transmitir quadros deauth. Notavelmente, você precisará compilar o Python-3.7.1 para o dispositivo, o que também é descrito no arquivo rpi-install.md.
O Wisp depende de outro pequeno programa em C chamado dream. O código-fonte está incluído como dream.c. O Dream depende do libpcap.
Compile o dream para seu dispositivo com o comando gcc -O3 dream.c -lpcap.
Dream é uma ferramenta para monitorar tráfego 802.11 com uma saída que pode ser filtrada por linha (grep). Ela também salva o tráfego capturado em arquivos no formato padrão pcap. O Wisp chama o dream para cada rádio de monitoramento e analisa a saída em busca de tráfego de clientes. Aqui estão seus argumentos:
--a: Relatar apenas tráfego de clientes associados. (Todos os pacotes ainda são registrados em disco se --d estiver ativado.)--d (arquivo): Despejar pacotes no arquivo especificado.-[b][c][d][f][s][t]: Especifica quais campos exibir por linha, especificamente:
b: BSSc: Número do canal.d: Nome do dispositivo que recebeu o pacote.f: Frequência.s: Estação (STA).t: Timestamp do pcap.Esses campos são sempre impressos na mesma ordem, independentemente da ordem especificada. (Isto é, -bcst é equivalente a -sctb.)
O Wisp lê um arquivo formatado em json chamado wisp.json para configuração. Aqui está uma descrição das chaves:
monitors: Contém uma lista de dispositivos a serem configurados como monitores. Cada dispositivo contém subchaves descrevendo sua configuração específica:
channel: O canal para o dispositivo monitorar.injector: O dispositivo a ser configurado para injetar quadros deauth.timing: Lista vários parâmetros de tempo, todos em milissegundos:
delay: O atraso entre os pacotes deauth enviados, por cliente.jitter: Modula o tempo de atraso por um valor aleatório, no intervalo fornecido.stale: Tempo em que um cliente não é visto antes de ser removido da lista de atraso. Tem pouco efeito prático a menos que esteja próximo do intervalo de atraso.Todos os parâmetros são carregados de wisp.json, então o wisp é invocado simplesmente: python3 ./wisp.py
O Wisp configurará automaticamente os rádios conforme descrito em wisp.json. Ele também desabilitará o rfkill e encerrará quaisquer processos interferentes, semelhante ao comportamento do airmon-ng.
O Wisp renomeia os dispositivos especificados com o formato wispX, onde X é o número associado ao phy. Ele renomeará os dispositivos de volta para seus nomes originais ao sair.
O Wisp exibe um . para cada deauth enviado. Esta é uma maneira simples e eficaz de garantir que está operando conforme o esperado.
O Wisp (através do dream) produzirá arquivos pcap com prefixo do nome do rádio (phy) que capturou os pacotes, junto com uma string hexadecimal aleatória, terminando em .cap. Algo como phy0-8cf9ec5ca146943f.cap, por exemplo. Você pode então inspecionar, analisar e manipular esses arquivos com qualquer ferramenta comum para arquivos pcap.