hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md

61 KiB

Pentesting Wifi

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

HackenProof é o lar de todas as recompensas por bugs de criptografia.

Seja recompensado sem atrasos
As recompensas do HackenProof são lançadas apenas quando seus clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.

Adquira experiência em pentesting web3
Protocolos de blockchain e contratos inteligentes são a nova Internet! Domine a segurança web3 em seus dias de ascensão.

Torne-se a lenda do hacker web3
Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leaderboard semanal.

Cadastre-se no HackenProof comece a ganhar com seus hacks!

{% embed url="https://hackenproof.com/register" %}

Comandos básicos do Wifi

ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis

EAPHammer

EAPHammer is a toolkit designed for performing targeted evil twin attacks against WPA2-Enterprise networks. It is built on top of the hostapd-wpe project and uses the hostapd-mana framework for creating the rogue access point.

Installation

To install EAPHammer, follow these steps:

  1. Clone the EAPHammer repository from GitHub:

    git clone https://github.com/s0lst1c3/eaphammer.git
    
  2. Change into the EAPHammer directory:

    cd eaphammer
    
  3. Run the installation script:

    ./kali-setup
    

Usage

To use EAPHammer, follow these steps:

  1. Start EAPHammer:

    ./eaphammer
    
  2. Select the target network from the list of available networks.

  3. Choose the attack mode (e.g., Evil Twin, Credential Harvester, etc.).

  4. Follow the on-screen instructions to complete the attack.

For more information on how to use EAPHammer, refer to the official documentation.

Disclaimer

EAPHammer is a powerful tool that can be used for both legitimate and malicious purposes. It is important to obtain proper authorization before using this tool and to use it responsibly and ethically. The author of EAPHammer is not responsible for any misuse or damage caused by this tool.

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

Airgeddon is a multi-purpose tool designed for wireless penetration testing. It provides a comprehensive set of features and functionalities to assess the security of Wi-Fi networks. With Airgeddon, you can perform various attacks, such as deauthentication, fake access point creation, and password cracking.

Features

  • Deauthentication: Airgeddon can send deauthentication frames to disconnect clients from a Wi-Fi network, allowing you to perform man-in-the-middle attacks or capture handshake packets.

  • Fake Access Point: This tool can create a fake access point to trick clients into connecting to it. This enables you to intercept their traffic and perform further attacks.

  • Password Cracking: Airgeddon supports various password cracking techniques, including dictionary attacks, WPS attacks, and brute-force attacks. It can also leverage external tools like Aircrack-ng and Hashcat for more advanced cracking methods.

  • Evil Twin Attack: With Airgeddon, you can set up an evil twin access point that mimics a legitimate network. This allows you to capture sensitive information, such as login credentials, from unsuspecting users.

  • Wireless Survey: This tool provides a wireless survey mode that allows you to gather information about nearby Wi-Fi networks, including their SSIDs, signal strength, and encryption types.

  • Integration with Other Tools: Airgeddon integrates with various other tools, such as Aircrack-ng, MDK3, and Wifite, to enhance its capabilities and provide a more comprehensive testing environment.

Usage

To use Airgeddon, you need a compatible wireless network adapter that supports monitor mode and packet injection. Once you have the necessary hardware, you can download and run Airgeddon on your preferred Linux distribution.

For detailed instructions on how to install and use Airgeddon, refer to the official documentation.

Note: It is important to use Airgeddon responsibly and only on networks that you have permission to test. Unauthorized use of this tool is illegal and unethical.

mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe

Executar o airgeddon com docker

O airgeddon é uma ferramenta de teste de penetração Wi-Fi que pode ser executada em um ambiente Docker para facilitar a instalação e configuração. O Docker é uma plataforma de virtualização leve que permite empacotar aplicativos em contêineres isolados.

Para executar o airgeddon com o Docker, siga as etapas abaixo:

  1. Certifique-se de ter o Docker instalado em seu sistema. Você pode encontrar instruções de instalação para o seu sistema operacional no site oficial do Docker.

  2. Clone o repositório do airgeddon do GitHub para o seu sistema:

    git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
    
  3. Navegue até o diretório do airgeddon:

    cd airgeddon
    
  4. Construa a imagem Docker usando o arquivo Dockerfile fornecido:

    docker build -t airgeddon .
    
  5. Execute o airgeddon dentro de um contêiner Docker:

    docker run -it --net=host --privileged airgeddon
    

    O uso da opção --net=host permite que o contêiner acesse a interface de rede do host, o que é necessário para realizar testes de penetração Wi-Fi.

Agora você pode usar o airgeddon dentro do contêiner Docker para realizar testes de penetração em redes Wi-Fi. Certifique-se de seguir todas as leis e regulamentos aplicáveis ao realizar testes de penetração.

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

De: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux

wifiphisher

Ele pode realizar ataques de Evil Twin, KARMA e Beacons Conhecidos e, em seguida, usar um modelo de phishing para obter a senha real da rede ou capturar credenciais de redes sociais.

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Wifite2

Esta ferramenta automatiza ataques WPS/WEP/WPA-PSK. Ela irá automaticamente:

  • Configurar a interface em modo de monitoramento
  • Escanear possíveis redes - E permitir que você selecione a(s) vítima(s)
  • Se for WEP - Lançar ataques WEP
  • Se for WPA-PSK
  • Se for WPS: Ataque Pixie dust e ataque de força bruta (tenha cuidado, o ataque de força bruta pode levar muito tempo). Observe que ele não tenta PIN nulo ou PINs gerados do banco de dados.
  • Tentar capturar o PMKID do AP para quebrá-lo
  • Tentar desautenticar clientes do AP para capturar um handshake
  • Se tiver PMKID ou Handshake, tentar força bruta usando as 5000 senhas mais comuns.

Resumo dos Ataques

  • DoS
  • Pacotes de desautenticação/desassociação -- Desconectar todos (ou um ESSID/Cliente específico)
  • APs falsos aleatórios -- Ocultar redes, possíveis scanners de falhas
  • Sobrecarregar AP -- Tentar derrubar o AP (geralmente não é muito útil)
  • WIDS -- Brincar com o IDS
  • TKIP, EAPOL -- Alguns ataques específicos para DoS em alguns APs
  • Quebra de Senha
  • Quebrar WEP (várias ferramentas e métodos)
  • WPA-PSK
  • WPS pin "Força Bruta"
  • WPA PMKID força bruta
  • [DoS +] Captura de handshake WPA + Quebra de senha
  • WPA-MGT
  • Captura de nome de usuário
  • Força Bruta de credenciais
  • Evil Twin (com ou sem DoS)
  • Evil Twin aberto [+ DoS] -- Útil para capturar credenciais de portal cativo e/ou realizar ataques de LAN
  • Evil Twin WPA-PSK -- Útil para ataques de rede se você souber a senha
  • WPA-MGT -- Útil para capturar credenciais da empresa
  • KARMA, MANA, Loud MANA, Beacon conhecido
  • + Aberto -- Útil para capturar credenciais de portal cativo e/ou realizar ataques de LAN
  • + WPA -- Útil para capturar handshakes WPA

DoS

Pacotes de Desautenticação

A forma mais comum desse tipo de ataque é através de pacotes de desautenticação. Estes são um tipo de quadro "gerenciamento" responsável por desconectar um dispositivo de um ponto de acesso. Forjar esses pacotes é a chave para hackear muitas redes Wi-Fi, pois você pode desconectar forçadamente qualquer cliente da rede a qualquer momento. A facilidade com que isso pode ser feito é um tanto assustadora e muitas vezes é feito como parte da coleta de um handshake WPA para quebrar.

Além de usar momentaneamente essa desconexão para obter um handshake para quebrar, você também pode deixar essas desautenticações continuarem, o que tem o efeito de enviar pacotes de desautenticação para o cliente aparentemente da rede à qual estão conectados. Como esses quadros não são criptografados, muitos programas se aproveitam dos quadros de gerenciamento, forjando-os e enviando-os para um ou todos os dispositivos em uma rede.
Descrição retirada da qui.

Desautenticação usando Aireplay-ng

aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
  • -0 significa desautenticação
  • 1 é o número de desautenticações a serem enviadas (você pode enviar várias se desejar); 0 significa enviá-las continuamente
  • -a 00:14:6C:7E:40:80 é o endereço MAC do ponto de acesso
  • -c 00:0F:B5:34:30:30 é o endereço MAC do cliente a ser desautenticado; se isso for omitido, será enviada uma desautenticação de transmissão (nem sempre funciona)
  • ath0 é o nome da interface

Pacotes de Desassociação

Pacotes de desassociação são outro tipo de quadro de gerenciamento que é usado para desconectar um nó (ou seja, qualquer dispositivo como um laptop ou celular) de um ponto de acesso próximo. A diferença entre os quadros de desautenticação e desassociação é principalmente a forma como são usados.

Um ponto de acesso que deseja desconectar um dispositivo não autorizado enviaria um pacote de desautenticação para informar o dispositivo de que ele foi desconectado da rede, enquanto um pacote de desassociação é usado para desconectar quaisquer nós quando o ponto de acesso está desligando, reiniciando ou saindo da área.

Descrição retirada aqui.

Esse ataque pode ser realizado pelo mdk4 (modo "d"):

# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F

Mais ataques de DOS por mdk4

De aqui.

MODO DE ATAQUE b: Beacon Flooding

Envia quadros de beacon para mostrar APs falsos aos clientes. Isso às vezes pode travar scanners de rede e até mesmo drivers!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

MODO DE ATAQUE a: Negativa de Serviço de Autenticação

Envia quadros de autenticação para todos os APs encontrados na área. Muitos clientes podem congelar ou reiniciar vários APs.

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

MODO DE ATAQUE p: Sondagem de SSID e Força Bruta

Sonda os APs e verifica se há resposta, útil para verificar se o SSID foi decloakado corretamente e se o AP está dentro do seu alcance de envio. A força bruta de SSIDs ocultos com ou sem uma lista de palavras também está disponível.

MODO DE ATAQUE m: Exploração de Contramedidas Michael

Envia pacotes aleatórios ou reinjeta duplicatas em outra fila de QoS para provocar as Contramedidas Michael em APs TKIP. O AP então desligará por um minuto inteiro, tornando isso um DoS efetivo.

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

MODO DE ATAQUE e: Injeção de Pacotes EAPOL Start e Logoff

Inunda um AP com quadros de início EAPOL para mantê-lo ocupado com sessões falsas e, assim, desabilitá-lo para lidar com clientes legítimos. Ou desconecta clientes injetando mensagens falsas de Logoff EAPOL.

# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

MODO DE ATAQUE s: Ataques para redes mesh IEEE 802.11s

Vários ataques à gestão de links e roteamento em redes mesh. Inundar vizinhos e rotas, criar buracos negros e desviar o tráfego!

MODO DE ATAQUE w: Confusão de WIDS

Confundir/abusar de Sistemas de Detecção e Prevenção de Intrusões, conectando clientes a vários nós WDS ou a falsos APs rogue.

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

MODO DE ATAQUE f: Fuzzer de Pacotes

Um fuzzer de pacotes simples com várias fontes de pacotes e um conjunto interessante de modificadores. Tenha cuidado!

Airggedon

Airgeddon oferece a maioria dos ataques propostos nos comentários anteriores:

WPS

WPS significa Wi-Fi Protected Setup. É um padrão de segurança de rede sem fio que tenta tornar as conexões entre um roteador e dispositivos sem fio mais rápidas e fáceis. O WPS funciona apenas para redes sem fio que usam uma senha que é criptografada com os protocolos de segurança WPA Personal ou WPA2 Personal. O WPS não funciona em redes sem fio que estão usando a segurança WEP obsoleta, que pode ser facilmente quebrada por qualquer hacker com um conjunto básico de ferramentas e habilidades. (De aqui)

O WPS usa um PIN de 8 dígitos para permitir que um usuário se conecte à rede, mas primeiro são verificados os primeiros 4 números e, se estiverem corretos, então são verificados os segundos 4 números. Assim, é possível fazer um ataque de força bruta na primeira metade e depois na segunda metade (apenas 11000 possibilidades).

Força Bruta WPS

Existem 2 ferramentas principais para realizar essa ação: Reaver e Bully.

  • Reaver foi projetado para ser um ataque robusto e prático contra o WPS e foi testado em uma ampla variedade de pontos de acesso e implementações do WPS.
  • Bully é uma nova implementação do ataque de força bruta do WPS, escrita em C. Ele possui várias vantagens em relação ao código original do reaver: menos dependências, melhor desempenho de memória e CPU, manipulação correta de endianness e um conjunto mais robusto de opções.

Esse ataque aproveita uma vulnerabilidade no código PIN WPS de oito dígitos; devido a esse problema, o protocolo revela informações sobre os quatro primeiros dígitos do PIN, e o último dígito funciona como um checksum, o que facilita a força bruta do AP WPS.
Observe que alguns dispositivos incluem proteções contra força bruta, que geralmente bloqueiam endereços MAC que tentam atacar repetidamente. Nesse caso, a complexidade desse ataque aumenta, pois você teria que rotacionar os endereços MAC enquanto testa os PINs.

Se o código WPS válido for encontrado, tanto o Bully quanto o Reaver o usarão para descobrir o PSK WPA/WPA2 usado para proteger a rede, para que você possa se conectar sempre que precisar.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

Smart Brute force

Em vez de começar a tentar todos os PINs possíveis, você deve verificar se existem PINs descobertos para o AP que você está atacando (dependendo do MAC do fabricante) e os PINs gerados pelo software.

  • O banco de dados de PINs conhecidos é feito para Access Points de certos fabricantes, nos quais é sabido que eles usam os mesmos PINs WPS. Este banco de dados contém os três primeiros octetos dos endereços MAC e uma lista de PINs correspondentes que são muito prováveis para este fabricante.
  • Existem vários algoritmos para gerar PINs WPS. Por exemplo, ComputePIN e EasyBox usam o endereço MAC do Access Point em seus cálculos. Mas o algoritmo Arcadyan também requer um ID de dispositivo.

Ataque WPS Pixie Dust

Dominique Bongard descobriu que alguns APs têm maneiras fracas de gerar nonces (conhecidos como E-S1 e E-S2) que devem ser secretos. Se formos capazes de descobrir quais são esses nonces, podemos facilmente encontrar o PIN WPS de um AP, pois o AP deve nos fornecê-lo em um hash para provar que ele também conhece o PIN, e o cliente não está se conectando a um AP falso. Esses E-S1 e E-S2 são essencialmente as "chaves para desbloquear a caixa de fechadura" que contém o PIN WPS. Mais informações aqui: https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)

Basicamente, algumas implementações falharam no uso de chaves aleatórias para criptografar as 2 partes do PIN (pois ele é descomposto em 2 partes durante a comunicação de autenticação e enviado ao cliente), então um ataque offline pode ser usado para forçar bruta o PIN válido.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully  wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3

Ataque Null Pin

Algumas implementações realmente ruins permitem a conexão com o Null PIN (muito estranho também). O Reaver pode testar isso (o Bully não pode).

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

Todos os ataques WPS propostos podem ser facilmente realizados usando o airgeddon.

  • 5 e 6 permitem que você tente seu PIN personalizado (se você tiver algum)
  • 7 e 8 realizam o ataque Pixie Dust
  • 13 permite que você teste o PIN NULL
  • 11 e 12 irão coletar os PINs relacionados ao AP selecionado a partir de bancos de dados disponíveis e gerar possíveis PINs usando: ComputePIN, EasyBox e opcionalmente Arcadyan (recomendado, por que não?)
  • 9 e 10 testarão todos os PINs possíveis

WEP

Tão quebrado e desaparecido que não vou falar sobre isso. Apenas saiba que o airgeddon tem uma opção WEP chamada "All-in-One" para atacar esse tipo de proteção. Mais ferramentas oferecem opções semelhantes.

HackenProof é o lar de todas as recompensas por bugs de criptografia.

Seja recompensado sem atrasos
As recompensas do HackenProof são lançadas apenas quando os clientes depositam o orçamento da recompensa. Você receberá a recompensa após a verificação do bug.

Adquira experiência em pentesting web3
Protocolos de blockchain e contratos inteligentes são a nova Internet! Domine a segurança web3 em seus dias de ascensão.

Torne-se a lenda dos hackers web3
Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leaderboard semanal.

Cadastre-se no HackenProof comece a ganhar com seus hacks!

{% embed url="https://hackenproof.com/register" %}

WPA/WPA2 PSK

PMKID

Em 2018, os autores do hashcat divulgaram um novo tipo de ataque que não apenas depende de um único pacote, mas também não requer que nenhum cliente esteja conectado ao nosso AP de destino, apenas a comunicação entre o atacante e o AP.

Acontece que muitos roteadores modernos adicionam um campo opcional no final do primeiro quadro EAPOL enviado pelo próprio AP quando alguém está se associando, chamado Rede de Segurança Robusta, que inclui algo chamado PMKID.

Conforme explicado na postagem original, o PMKID é derivado usando dados que são conhecidos por nós:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Uma vez que a string "PMK Name" é constante, sabemos tanto o BSSID do AP quanto da estação e o PMK é o mesmo obtido a partir de um handshake completo de 4 vias, isso é tudo o que o hashcat precisa para quebrar a PSK e recuperar a senha!
Descrição obtida aqui.

Para coletar essas informações e fazer força bruta localmente na senha, você pode fazer:

airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

Os PMKIDs capturados serão mostrados no console e também salvos dentro de _ /tmp/attack.pcap_
Agora, converta a captura para o formato do hashcat/john e quebre-o:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Por favor, observe que o formato de um hash correto contém 4 partes, como: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7*566f6461666f6e65436f6e6e6563743034383131343838
__Se o seu contém apenas 3 partes, então ele é inválido (a captura PMKID não foi válida).

Observe que o hcxdumptool também captura handshakes (algo como isso aparecerá: MP:M1M2 RC:63258 EAPOLTIME:17091). Você pode transformar os handshakes para o formato do hashcat/john usando o cap2hccapx.

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

Captura de Handshake

Uma maneira de atacar redes WPA/WPA2 é capturando um handshake e tentando quebrar a senha usada offline. Para fazer isso, você precisa encontrar o BSSID e o canal da rede da vítima, e um cliente que esteja conectado à rede.
Uma vez que você tenha essas informações, você precisa começar a escutar toda a comunicação desse BSSID nesse canal, pois esperançosamente o handshake será enviado lá:

airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap

Agora você precisa desautenticar o cliente por alguns segundos para que ele se autentique novamente automaticamente no AP (por favor, leia a parte sobre DoS para encontrar várias maneiras de desautenticar um cliente):

aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work

Nota que, como o cliente foi desconectado, ele pode tentar se conectar a um AP diferente ou, em outros casos, a uma rede diferente.

Assim que o airodump-ng mostrar algumas informações de handshake, isso significa que o handshake foi capturado e você pode parar de ouvir:

Uma vez que o handshake é capturado, você pode quebrá-lo com o aircrack-ng:

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

Verificar se há handshake no arquivo

aircrack

aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark é uma ferramenta de linha de comando que faz parte do conjunto de ferramentas Wireshark. É usado para capturar e analisar o tráfego de rede em tempo real. O tshark permite visualizar e filtrar pacotes de dados capturados, extraindo informações úteis para análise e solução de problemas de rede. Ele suporta uma ampla variedade de formatos de captura e pode ser executado em várias plataformas, incluindo Windows, Linux e macOS. O tshark é uma ferramenta poderosa para pentesters e administradores de rede que desejam examinar o tráfego de rede em detalhes.

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty é uma ferramenta de linha de comando usada para quebrar senhas de redes Wi-Fi protegidas pelo protocolo WPA/WPA2. Ele utiliza o método de ataque de força bruta para testar várias combinações de senhas até encontrar a correta. O cowpatty é altamente eficiente e pode ser usado para testar a segurança de redes Wi-Fi.

cowpatty -r psk-01.cap -s "ESSID" -f -

Se esta ferramenta encontrar um handshake incompleto de um ESSID antes do completo, ela não detectará o válido.

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

WPA Enterprise (MGT)

É importante falar sobre os diferentes métodos de autenticação que podem ser usados por um Wifi empresarial. Para esse tipo de Wifi, você provavelmente encontrará algo como isso no airodump-ng:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi

EAP (Extensible Authentication Protocol) é o esqueleto da comunicação de autenticação, sobre o qual um algoritmo de autenticação é usado pelo servidor para autenticar o cliente (suplicante) e, em alguns casos, pelo cliente para autenticar o servidor.
Os principais algoritmos de autenticação usados nesse caso são:

  • EAP-GTC: É um método EAP para suportar o uso de tokens de hardware e senhas únicas com EAP-PEAP. Sua implementação é semelhante ao MSCHAPv2, mas não usa um desafio entre pares. Em vez disso, as senhas são enviadas para o ponto de acesso em texto simples (muito interessante para ataques de degradação).
  • EAP-MD-5 (Message Digest): O cliente envia o hash MD5 da senha. Não recomendado: Vulnerável a ataques de dicionário, sem autenticação do servidor e sem maneira de gerar chaves de privacidade equivalentes com fio (WEP) por sessão.
  • EAP-TLS (Transport Layer Security): Ele depende de certificados do lado do cliente e do servidor para realizar a autenticação e pode ser usado para gerar dinamicamente chaves WEP baseadas em usuário e sessão para garantir comunicações subsequentes.
  • EAP-TTLS (Tunneled Transport Layer Security): Autenticação mútua do cliente e da rede por meio de um canal (ou túnel) criptografado, bem como um meio de derivar chaves WEP dinâmicas por usuário e por sessão. Ao contrário do EAP-TLS, o EAP-TTLS requer apenas certificados do lado do servidor (o cliente usará credenciais).
  • PEAP (Protected Extensible Authentication Protocol): O PEAP é como o protocolo EAP, mas cria um túnel TLS para proteger a comunicação. Em seguida, protocolos de autenticação fracos podem ser usados em cima do EAP, pois eles serão protegidos pelo túnel.
  • PEAP-MSCHAPv2: Também é conhecido como apenas PEAP porque é amplamente adotado. Este é apenas o desafio/resposta vulnerável chamado MSCHAPv2 em cima do PEAP (é protegido pelo túnel TLS).
  • PEAP-EAP-TLS ou apenas PEAP-TLS: É muito semelhante ao EAP-TLS, mas um túnel TLS é criado antes da troca de certificados.

Você pode encontrar mais informações sobre esses métodos de autenticação aqui e aqui.

Captura de Nome de Usuário

Lendo https://tools.ietf.org/html/rfc3748#page-27, parece que se você estiver usando EAP, as mensagens de "Identidade" devem ser suportadas, e o nome de usuário será enviado em texto claro nas mensagens de "Resposta de Identidade".

Mesmo usando um dos métodos de autenticação mais seguros: PEAP-EAP-TLS, é possível capturar o nome de usuário enviado no protocolo EAP. Para fazer isso, capture uma comunicação de autenticação (inicie o airodump-ng em um canal e o wireshark na mesma interface) e filtre os pacotes por eapol.
Dentro do pacote "Resposta, Identidade", o nome de usuário do cliente aparecerá.

Identidades Anônimas

(Informações retiradas de https://www.interlinknetworks.com/app_notes/eap-peap.htm)

Tanto o EAP-PEAP quanto o EAP-TTLS suportam ocultação de identidade. Em um ambiente WiFi, o ponto de acesso (AP) geralmente gera uma solicitação de EAP-Identity como parte do processo de associação. Para preservar o anonimato, o cliente EAP no sistema do usuário pode responder com informações apenas o suficiente para permitir que o servidor RADIUS de primeira etapa processe a solicitação, como mostrado nos exemplos a seguir.

  • EAP-Identity = anonymous

Neste exemplo, todos os usuários compartilharão o pseudonome de usuário "anonymous". O servidor RADIUS de primeira etapa é um servidor EAP-PEAP ou EAP-TTLS que executa o servidor final do protocolo PEAP ou TTLS. O tipo de autenticação interno (protegido) será então tratado localmente ou encaminhado para um servidor RADIUS remoto (doméstico).

  • EAP-Identity = anonymous@realm_x

Neste exemplo, os usuários pertencentes a diferentes domínios ocultam sua própria identidade, mas indicam a qual domínio pertencem para que o servidor RADIUS de primeira etapa possa encaminhar as solicitações EAP-PEAP ou EAP-TTLS para servidores RADIUS em seus domínios domésticos, que atuarão como o servidor PEAP ou TTLS. O servidor de primeira etapa atua puramente como um nó de retransmissão RADIUS.

Alternativamente, o servidor de primeira etapa pode atuar como o servidor EAP-PEAP ou EAP-TTLS e processar o método de autenticação protegido ou encaminhá-lo para outro servidor. Essa opção pode ser usada para configurar políticas diferentes para diferentes domínios.

No EAP-PEAP, uma vez que o servidor PEAP e o cliente PEAP estabelecem o túnel TLS, o servidor PEAP gera uma solicitação de EAP-Identity e a transmite pelo túnel TLS. O cliente responde a essa segunda solicitação de EAP-Identity enviando uma resposta de EAP-Identity contendo a verdadeira identidade do usuário pelo túnel criptografado. Isso impede que qualquer pessoa que esteja interceptando o tráfego 802.11 descubra a verdadeira identidade do usuário.

O EAP-TTLS funciona de maneira um pouco diferente. Com o EAP-TTLS, o cliente geralmente se autentica via PAP ou CHAP protegido pelo túnel TLS. Nesse caso, o cliente incluirá um atributo User-Name e um atributo Password ou CHAP-Password na primeira mensagem TLS enviada após o estabelecimento do túnel.

Com qualquer um dos protocolos, o servidor PEAP/TTLS aprende a verdadeira identidade do usuário assim que o túnel TLS for estabelecido. A verdadeira identidade pode estar na forma de usuário@domínio ou simplesmente usuário. Se o servidor PEAP/TTLS também estiver autenticando o usuário, ele agora sabe a identidade do usuário e prossegue com o método de autenticação protegido pelo túnel TLS. Alternativamente, o servidor PEAP/TTLS pode encaminhar uma nova solicitação RADIUS para o servidor RADIUS doméstico do usuário. Essa nova solicitação RADIUS tem o protocolo PEAP ou TTLS removido. Se o método de autenticação protegido for EAP, as mensagens EAP internas são transmitidas para o servidor RADIUS doméstico sem a estrutura EAP-PEAP ou EAP-TTLS. O atributo User-Name da mensagem RADIUS de saída contém a verdadeira identidade do usuário - não a identidade anônima do atributo User-Name da solicitação RADIUS de entrada. Se o método de autenticação protegido for PAP ou CHAP (suportado apenas pelo TTLS), o atributo User-Name e outros atributos de autenticação recuperados da carga útil TLS são colocados na mensagem RADIUS de saída no lugar do atributo User-Name anônimo e dos atributos EAP-Message TTLS incluídos na solicitação RADIUS de entrada.

EAP-Bruteforce (ataque de força bruta)

Se o cliente deve usar um nome de usuário e senha (observe que EAP-TLS não será válido neste caso), você pode tentar obter uma lista de nomes de usuários (veja a próxima parte) e senhas e tentar atacar por força bruta o acesso usando o air-hammer.

./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

Você também pode realizar esse ataque usando o eaphammer:

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

Teoria de ataques ao cliente

Seleção de rede e roaming

Embora o protocolo 802.11 tenha regras muito específicas que ditam como uma estação pode se juntar a uma ESS, ele não especifica como a estação deve selecionar uma ESS para se conectar. Além disso, o protocolo permite que as estações se movam livremente entre pontos de acesso que compartilham o mesmo ESSID (porque você não gostaria de perder a conectividade WiFi ao caminhar de uma extremidade de um prédio para outra, etc). No entanto, o protocolo 802.11 não especifica como esses pontos de acesso devem ser selecionados. Além disso, embora as estações precisem ser autenticadas na ESS para se associarem a um ponto de acesso, o protocolo 802.11 não exige que o ponto de acesso seja autenticado na estação.

Listas de rede preferidas (PNLs)

Cada vez que uma estação se conecta a uma rede sem fio, o ESSID da rede é armazenado na Lista de Redes Preferidas (PNL) da estação. A PNL é uma lista ordenada de todas as redes às quais a estação se conectou no passado, e cada entrada na PNL contém o ESSID da rede e qualquer informação de configuração específica da rede necessária para estabelecer uma conexão.

Varredura passiva

Em redes de infraestrutura, os pontos de acesso periodicamente transmitem quadros de beacon para anunciar sua presença e capacidades às estações próximas. Os beacons são quadros de transmissão, o que significa que eles são destinados a serem recebidos por todas as estações próximas dentro do alcance. Os beacons incluem informações sobre as taxas suportadas pelo AP, capacidades de criptografia, informações adicionais e, o mais importante, os quadros de beacon contêm o ESSID do AP (desde que a transmissão do ESSID não esteja desativada).

Durante a varredura passiva, o dispositivo cliente ouve os quadros de beacon dos pontos de acesso próximos. Se o dispositivo cliente receber um quadro de beacon cujo campo ESSID corresponda a um ESSID da PNL do cliente, o cliente se conectará automaticamente ao ponto de acesso que enviou o quadro de beacon. Em seguida, suponha que queiramos direcionar um dispositivo sem fio que não esteja atualmente conectado a nenhum wireless. Se soubermos pelo menos uma entrada na PNL desse cliente, podemos forçar o cliente a se conectar a nós simplesmente criando nosso próprio ponto de acesso com o ESSID dessa entrada.

Sondagem ativa

O segundo algoritmo de seleção de rede usado no 802.11 é conhecido como Sondagem Ativa. Dispositivos clientes que usam sondagem ativa transmitem continuamente quadros de solicitação de sondagem para determinar quais APs estão dentro do alcance, bem como quais são suas capacidades. As solicitações de sondagem são enviadas em duas formas: direcionadas e de transmissão. As solicitações de sondagem direcionadas são endereçadas a um ESSID específico e são a maneira do cliente verificar se uma rede específica está próxima.

Clientes que usam sondagem direcionada enviarão solicitações de sondagem para cada rede em sua PNL. Deve-se observar que a sondagem direcionada é a única maneira de identificar a presença de redes ocultas próximas. As solicitações de sondagem de transmissão funcionam quase da mesma maneira, mas são enviadas com o campo SSID definido como NULL. Isso endereça a solicitação de sondagem de transmissão a todos os pontos de acesso próximos, permitindo que a estação verifique se alguma de suas redes preferidas está próxima sem revelar o conteúdo de sua PNL.

AP simples com redirecionamento para a Internet

Antes de explicar como realizar ataques mais complexos, será explicado como apenas criar um AP e redirecionar seu tráfego para uma interface conectada à Internet.

Usando ifconfig -a, verifique se a interface wlan para criar o AP e a interface conectada à Internet estão presentes.

DHCP e DNS

apt-get install dnsmasq #Manages DHCP and DNS

Crie um arquivo de configuração /etc/dnsmasq.conf da seguinte forma:

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

Em seguida, configure os IPs e rotas:

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

E então inicie o dnsmasq:

dnsmasq -C dnsmasq.conf -d

hostapd

O hostapd é um daemon que implementa o ponto de acesso Wi-Fi (AP) e o autenticador para redes sem fio. Ele é usado principalmente para criar pontos de acesso Wi-Fi em sistemas Linux.

O hostapd suporta vários recursos, incluindo autenticação baseada em EAP (Extensible Authentication Protocol), autenticação de pré-compartilhamento de chave (PSK), autenticação de chave WPA/WPA2 e muito mais. Ele também pode ser configurado para suportar várias interfaces de rede e pode ser usado em conjunto com outros softwares para criar uma solução completa de ponto de acesso Wi-Fi.

O hostapd é uma ferramenta útil para testes de penetração em redes Wi-Fi, pois permite que os testadores simulem um ponto de acesso legítimo e realizem ataques de autenticação e criptografia. Ele também pode ser usado para testar a segurança de redes Wi-Fi existentes, identificando vulnerabilidades e pontos fracos.

Para mais informações sobre como usar o hostapd, consulte a documentação oficial.

apt-get install hostapd

Crie um arquivo de configuração hostapd.conf:

interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

Parar processos irritantes, definir modo de monitoramento e iniciar o hostapd:

airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

Encaminhamento e Redirecionamento

Forwarding and redirection are techniques used in network communication to redirect traffic from one destination to another. These techniques are commonly used in the context of pentesting WiFi networks to redirect network traffic to an attacker-controlled device.

Forwarding

Forwarding involves redirecting network traffic from one network interface to another. This can be done at the network level or at the application level. Network-level forwarding is typically done using routing tables, where packets are forwarded based on their destination IP address. Application-level forwarding, on the other hand, involves redirecting traffic based on specific protocols or ports.

In the context of WiFi pentesting, forwarding can be used to redirect traffic from a target device to an attacker-controlled device. This allows the attacker to intercept and analyze the network traffic for further exploitation.

Redirection

Redirection, on the other hand, involves redirecting traffic from one URL or domain to another. This is commonly done using HTTP status codes, such as 301 (Moved Permanently) or 302 (Found). When a client receives a redirection response, it automatically sends a new request to the redirected URL.

In the context of WiFi pentesting, redirection can be used to trick users into visiting malicious websites or capturing their credentials. By redirecting the traffic from a legitimate website to a malicious one, the attacker can exploit vulnerabilities in the user's browser or steal sensitive information.

Both forwarding and redirection are powerful techniques that can be used by attackers to manipulate network traffic and deceive users. As a pentester, it is important to understand these techniques and how to defend against them.

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Evil Twin

Um ataque de Evil Twin é um tipo de ataque Wi-Fi que funciona aproveitando o fato de que a maioria dos computadores e telefones só verá o "nome" ou ESSID de uma rede sem fio (pois a estação base não precisa se autenticar contra o cliente). Isso na verdade torna muito difícil distinguir entre redes com o mesmo nome e o mesmo tipo de criptografia. Na verdade, muitas redes terão vários pontos de acesso que estendem a rede, todos usando o mesmo nome para expandir o acesso sem confundir os usuários.

Devido à forma como a implementação dos clientes funciona (lembre-se de que o protocolo 802.11 permite que as estações se movam livremente entre os pontos de acesso dentro do mesmo ESS), é possível fazer com que um dispositivo mude a estação base à qual está conectado. Isso é possível oferecendo um sinal melhor (o que nem sempre é possível) ou bloqueando o acesso à estação base original (pacotes de desautenticação, interferência ou algum outro tipo de ataque DoS).

Observe também que as implantações de redes sem fio no mundo real geralmente têm mais de um ponto de acesso, e esses pontos de acesso geralmente são mais poderosos e têm melhor alcance de linha de visão devido à sua colocação no teto. Desautenticar um único ponto de acesso geralmente resulta no alvo se movendo para outro ponto de acesso válido em vez do seu AP falso, a menos que todos os pontos de acesso próximos sejam desautenticados (alto) ou você seja muito cuidadoso com a colocação do AP falso (difícil).

Você pode criar um Evil Twin básico aberto (sem capacidade de rotear tráfego para a Internet) fazendo:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

Você também pode criar um Evil Twin usando o eaphammer (observe que para criar evil twins com o eaphammer, a interface NÃO DEVE ESTAR no modo monitor):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

Ou usando o Airgeddon: Opções: 5,6,7,8,9 (dentro do menu de ataque Evil Twin).

Por favor, observe que por padrão, se um ESSID na PNL estiver salvo como protegido por WPA, o dispositivo não se conectará automaticamente a um Evil Twin aberto. Você pode tentar fazer um DoS no AP real e esperar que o usuário se conecte manualmente ao seu Evil Twin aberto, ou você pode fazer um DoS no AP real e usar um Evil Twin com WPA para capturar o handshake (usando esse método, você não poderá permitir que a vítima se conecte a você, pois você não conhece a PSK, mas pode capturar o handshake e tentar quebrá-lo).

Alguns sistemas operacionais e antivírus avisarão o usuário de que se conectar a uma rede aberta é perigoso...

Evil Twin WPA/WPA2

Você pode criar um Evil Twin usando WPA/2 e se os dispositivos estiverem configurados para se conectar a esse SSID com WPA/2, eles tentarão se conectar. No entanto, para completar o handshake de 4 vias, você também precisa saber a senha que o cliente vai usar. Se você não souber, a conexão não será concluída.

./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

Evil Twin Empresarial

Para entender esses ataques, recomendo ler antes a breve explicação sobre WPA Enterprise.

Usando o hostapd-wpe

O hostapd-wpe precisa de um arquivo de configuração para funcionar. Para automatizar a geração dessas configurações, você pode usar https://github.com/WJDigby/apd_launchpad (faça o download do arquivo python dentro de /etc/hostapd-wpe/)

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

No arquivo de configuração, você pode selecionar várias coisas diferentes, como ssid, canal, arquivos de usuário, credenciais/chave, parâmetros dh, versão wpa e autenticação...

Usando o hostapd-wpe com EAP-TLS para permitir qualquer certificado para fazer login.

Usando o EAPHammer

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

Por padrão, o EAPHammer utiliza os seguintes métodos de autenticação (observe que o GTC é o primeiro a ser utilizado para obter senhas em texto simples e, em seguida, são utilizados métodos de autenticação mais robustos):

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

Esta é a metodologia padrão para evitar tempos de conexão longos. No entanto, você também pode especificar para o servidor os métodos de autenticação do mais fraco para o mais forte:

--negotiate weakest

Ou você também pode usar:

  • --negotiate gtc-downgrade para usar uma implementação de downgrade GTC altamente eficiente (senhas em texto simples)
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP para especificar manualmente os métodos oferecidos (oferecer os mesmos métodos de autenticação na mesma ordem que a organização tornará o ataque muito mais difícil de detectar).
  • Encontre mais informações no wiki

Usando o Airgeddon

Airgeddon pode usar certificados previamente gerados para oferecer autenticação EAP a redes WPA/WPA2-Enterprise. A rede falsa irá rebaixar o protocolo de conexão para EAP-MD5, para que seja possível capturar o usuário e o MD5 da senha. Posteriormente, o atacante pode tentar quebrar a senha.
Airggedon oferece a possibilidade de um ataque Evil Twin contínuo (ruidoso) ou apenas criar o ataque Evil até que alguém se conecte (suave).

Depurando túneis TLS PEAP e EAP-TTLS em ataques Evil Twins

Este método foi testado em uma conexão PEAP, mas como estou descriptografando um túnel TLS arbitrário, isso também deve funcionar com EAP-TTLS

Dentro da configuração do hostapd-wpe, comente a linha que contém dh_file (de dh_file=/etc/hostapd-wpe/certs/dh para #dh_file=/etc/hostapd-wpe/certs/dh)
Isso fará com que o hostapd-wpe troque chaves usando RSA em vez de DH, para que você possa descriptografar o tráfego posteriormente, conhecendo a chave privada do servidor.

Agora inicie o Evil Twin usando o hostapd-wpe com essa configuração modificada como de costume. Também inicie o wireshark na interface que está realizando o ataque Evil Twin.

Agora ou mais tarde (quando você já tiver capturado algumas tentativas de autenticação), você pode adicionar a chave privada RSA ao wireshark em: Editar --> Preferências --> Protocolos --> TLS --> (Lista de chaves RSA) Editar...

Adicione uma nova entrada e preencha o formulário com os seguintes valores: Endereço IP = qualquer -- Porta = 0 -- Protocolo = dados -- Arquivo de chave (selecione seu arquivo de chave, para evitar problemas, selecione um arquivo de chave sem proteção por senha).

E observe a nova aba "TLS Descriptografado":

Ataque KARMA, MANA, Loud MANA e Beacons conhecidos

Listas negras e brancas de ESSID e MAC

A tabela a seguir lista os diferentes tipos de MFACLs (Listas de Controle de Acesso a Quadros de Gerenciamento) disponíveis, bem como seus efeitos quando usados:

# example EAPHammer MFACL file, wildcards can be used
78:f0:97:fc:b5:36
9a:35:e1:01:4f:cf
69:19:14:60:20:45
ce:52:b8:*:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
apples
oranges
grapes
pears

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

Os ataques Karma são uma segunda forma de ataque de ponto de acesso falso que explora o processo de seleção de rede usado pelas estações. Em um whitepaper escrito em 2005, Dino Dai Zovi e Shane Macaulay descrevem como um atacante pode configurar um ponto de acesso para ouvir solicitações de sonda direcionadas e responder a todas elas com respostas de sonda direcionadas correspondentes. Isso faz com que as estações afetadas enviem automaticamente uma solicitação de associação para o ponto de acesso do atacante. O ponto de acesso então responde com uma resposta de associação, fazendo com que as estações afetadas se conectem ao atacante.

MANA

De acordo com Ian de Villiers e Dominic White, as estações modernas são projetadas para se proteger contra ataques Karma, ignorando respostas de sonda direcionadas de pontos de acesso que ainda não responderam a pelo menos uma solicitação de sonda de transmissão. Isso levou a uma queda significativa no número de estações vulneráveis a ataques Karma até 2015, quando White e de Villiers desenvolveram um meio de contornar tais proteções. No aprimoramento do ataque Karma de White e de Villiers (ataque MANA), as respostas de sonda direcionadas são usadas para reconstruir as PNLs das estações próximas. Quando uma solicitação de sonda de transmissão é recebida de uma estação, o ponto de acesso do atacante responde com um SSID arbitrário da PNL da estação que já foi visto em uma sonda direcionada desse dispositivo.

Resumindo, o algoritmo MANA funciona da seguinte maneira: cada vez que o ponto de acesso recebe uma solicitação de sonda, ele primeiro determina se é uma sonda de transmissão ou direcionada. Se for uma sonda direcionada, o endereço MAC do remetente é adicionado à tabela de hash (se ainda não estiver lá) e o ESSID é adicionado à PNL desse dispositivo. O ponto de acesso então responde com uma resposta de sonda direcionada. Se for uma sonda de transmissão, o ponto de acesso responde com respostas de sonda para cada uma das redes na PNL desse dispositivo.

Ataque MANA usando o eaphammer:

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

Ataque Loud MANA

Observe que o ataque MANA padrão ainda não nos permite atacar dispositivos que não usam sondagem direcionada. Portanto, se também não conhecemos previamente nenhuma entrada dentro do PNL do dispositivo, precisamos encontrar outra maneira de atacá-lo.

Uma possibilidade é o que é chamado de ataque Loud MANA. Esse ataque se baseia na ideia de que dispositivos clientes em proximidade física próxima provavelmente têm pelo menos algumas entradas em comum em seus PNLs.

Resumidamente, o ataque Loud MANA, em vez de responder às solicitações de sondagem com cada ESSID no PNL de um dispositivo específico, o AP falso envia respostas de sondagem para cada ESSID em todos os PNLs de todos os dispositivos que ele já viu antes. Relacionando isso à teoria dos conjuntos, podemos dizer que o AP envia respostas de sondagem para cada ESSID na união de todos os PNLs dos dispositivos próximos.

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

Ataque Beacon Conhecido

Ainda existem casos em que o ataque Loud MANA não terá sucesso. O ataque Beacon Conhecido é uma forma de "Força Bruta" de ESSIDs para tentar fazer com que a vítima se conecte ao atacante. O atacante cria um AP que responde a qualquer ESSID e executa algum código enviando beacons falsificando ESSIDs de cada nome dentro de uma lista de palavras. Esperançosamente, a vítima contém alguns desses nomes de ESSID em sua PNL e tentará se conectar ao AP falso. O Eaphammer implementou esse ataque como um ataque MANA, onde todos os ESSIDs dentro de uma lista são carregados (você também pode combinar isso com --loud para criar um ataque Loud MANA + Beacon Conhecido):

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

Ataque de Beacon Burst conhecido

Como os beacons conhecidos são chamativos. Você pode usar um script dentro do projeto Eaphammer para lançar rapidamente beacons com o nome de cada ESSID em um arquivo. Se você combinar esse script com um ataque MANA do Eaphammer, os clientes poderão se conectar ao seu AP.

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5

Wi-Fi Direct

O Wi-Fi Direct é um padrão de Wi-Fi que permite que dispositivos se conectem entre si sem um ponto de acesso sem fio, pois um dos dois dispositivos atuará como AP (chamado de proprietário do grupo). Você pode encontrar o Wi-Fi Direct em muitos dispositivos IoT, como impressoras, TVs...

O Wi-Fi Direct depende do Wi-Fi Protected Setup (WPS) para conectar os dispositivos com segurança. O WPS possui vários métodos de configuração, como Configuração por Botão de Pressão (PBC), entrada de PIN e Comunicação de Campo Próximo (NFC).

Portanto, os ataques anteriormente vistos ao PIN do WPS também são válidos aqui se o PIN for usado.

Sequestro do EvilDirect

Isso funciona como um Evil-Twin, mas para o Wi-Fi Direct, você pode se passar por um proprietário de grupo para tentar fazer com que outros dispositivos, como telefones, se conectem a você: airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0

Referências

TODO: Dê uma olhada em https://github.com/wifiphisher/wifiphisher (login com Facebook e imitação de WPA em portais cativos)

HackenProof é o lar de todas as recompensas por bugs de criptografia.

Seja recompensado sem atrasos
As recompensas do HackenProof são lançadas apenas quando seus clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.

Adquira experiência em pentesting web3
Protocolos de blockchain e contratos inteligentes são a nova Internet! Domine a segurança web3 em seus dias de ascensão.

Torne-se a lenda do hacker web3
Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leaderboard semanal.

Cadastre-se no HackenProof comece a ganhar com seus hacks!

{% embed url="https://hackenproof.com/register" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥