no meu último post, passamos pela configuração de um adaptador Wi-Fi USB externo e passamos pelas etapas de configuração para colocar o adaptador no modo monitor. Também analisamos a saída padrão do airodump-ng e conseguimos obter um monte de boas informações sobre todos os pontos de acesso ao nosso redor, incluindo seu ESSID, BSSID, em que Canal eles estavam operando, que tipo de criptografia eles estão usando e que tipo de autenticação eles estão usando.
agora que temos todas essas informações, podemos escolher um único AP para ser nosso alvo com o objetivo de tentar quebrar a chave pré-compartilhada WPA2 (PSK) configurada no ponto de acesso. Assim que conseguirmos obter esse PSK, poderemos nos associar ao ponto de acesso e começar a estimular qualquer rede à qual ele esteja conectado.
configurando nosso adaptador e escolhendo um alvo
começaremos colocando nosso adaptador USB Wi-Fi no modo monitor. Se você não tem certeza do que está acontecendo aqui, consulte o artigo anterior.
agora vamos ver quais pontos de acesso estão perto de nós e escolher um para atingir. Para fazer isso, executaremos o airodump-ng em sua forma mais básica, usando apenas um único parâmetro – o nome da interface do monitor.
airodump-ng wlan1mon
nesta lista, escolheremos um AP para segmentar. Precisamos observar o BSSID, ESSID e o canal do AP. Como estamos direcionando WPA2-PSK neste exemplo, teremos que escolher um AP cujo tipo de criptografia está listado como WPA2 e cujo tipo de autenticação é PSK.
capturando quadros de / para o AP direcionado
assim que tivermos essa informação, Poderemos usar o airodump-ng para direcionar esse AP e seus clientes conectados especificamente. Ao fazer isso, também vamos especificar parâmetros adicionais que não especificamos antes. Vamos especificar o nome do canal em que nosso AP de destino está sendo executado com o switch-c, o nome do BSSID com o switch –bssid e o nome de um arquivo de saída com o switch-W.
o arquivo de saída conterá todos os quadros capturados que nosso adaptador sem fio do modo do monitor pode capturar. O que estamos procurando capturar especificamente é um handshake de autenticação WPA2-PSK entre um cliente e o AP. Esse aperto de mão contém uma versão com hash da chave pré-compartilhada, que estaremos forçando mais tarde.
neste exemplo, estou usando os valores que vieram do meu AP de destino (com o BSSID ligeiramente ofuscado por motivos de Privacidade). Você usará seus próprios valores, obtidos de nossa sessão airodump-ng anterior para substituir a minha. Você não precisa especificar uma extensão para o seu arquivo de saída, pois vários serão criados, cada um com uma extensão apropriada, automaticamente.
airodump-ng -c 1 --bssid 00:15:FF:EE:EE:EE -w capture wlan1mon
você notará que essa saída airodump-ng é semelhante à última saída, apenas a lista de APs não está preenchendo com mais do que apenas a que especificamos. Além disso, o campo canal no canto superior esquerdo não está caçando, pois especificamos o canal na linha de comando. airodump-ng agora está capturando apenas pacotes para o AP que especificamos, no canal que especificamos. Na parte inferior do terminal, a lista de clientes conectados deve começar a preencher.
esse processo pode demorar um pouco mais para ser executado, especialmente se não houver muitos clientes conectados ao AP. Para que isso funcione, precisamos de pelo menos um cliente conectado que esteja falando com o AP, mas quanto mais clientes estiverem conectados simultaneamente, mais fácil será capturar um handshake de autenticação WPA2-PSK.
acelerar a captura com um ataque de Desautenticação
se o seu adaptador sem fio suportar injeção de pacotes, podemos acelerar esse processo usando o utilitário aireplay-ng. Podemos fazer isso abrindo um novo shell, pois queremos manter o airodump em execução / captura em segundo plano e usando o seguinte contexto.
aireplay-ng -0 10 -a 00:15:FF:EE:EE:EE wlan1mon
o switch -0 informa ao aireplay-ng quantos pacotes deautenticação (deauth) transmitir “do AP.”Em teoria, o que deve acontecer é que todos os clientes conectados ao AP devem receber essas transmissões deauth, desautenticar do AP e, em seguida, reautenticar automaticamente para o AP assim que a transmissão deauth parar. Neste exemplo, enviaremos 10, o que deve ser suficiente para forçar um aperto de mão a acontecer após a reautenticação, dado o número de clientes conectados a este AP.
o interruptor-A especifica o ESSID do AP, e a opção final é apenas o nome de nossa relação do modo do monitor.
depois de executar o ataque deauth, observe algo que não vimos antes. No canto superior direito da janela do airodump, agora podemos ver que um aperto de mão WPA foi capturado. (Role até a última imagem para ver que ela não estava lá antes). Como estávamos capturando nosso arquivo de saída o tempo todo, esse arquivo agora deve conter uma captura do handshake WPA2-PSK.
se você não conseguir capturar um aperto de mão imediatamente, pode ser uma boa ideia esperar alguns minutos e tentar o ataque aireplay novamente. Também pode ser uma boa ideia prestar atenção ao aviso que aireplay nos deu depois que eu executei o comando e executei um ataque direcionado. Em vez de enviar transmissões para todos os clientes conectados, direcionaremos um ataque de desautenticação em um único cliente conectado. A sintaxe para isso é a seguinte.
aireplay-ng -0 10 -a 00:15:FF:EE:EE:EE -c E0:46:9A:11:22:33 wlan1mon
um ataque direcionado é basicamente o mesmo comando, mas tem o switch-c adicionado e especifica o endereço MAC do cliente sem fio que estamos tentando deauth.
Frame Capture File Information
agora que capturamos um handshake WPA2-PSK, você pode parar a sessão airodump pressionando CTRL+C. Agora haverá vários arquivos relacionados à captura em seu diretório inicial. O que mais nos preocupa é o.cap arquivo que corresponde à captura que tomamos acima. Usei o switch-w para chamar minha saída de captura de “capturefile”, então o arquivo com o qual estou preocupado é capturefile-01.tampa.
agora que temos o arquivo de que precisamos, podemos colocá-lo offline para quebrar. Não há razão para ficar nas proximidades do AP que você está mirando se não quiser. Obviamente, se isso estiver em um ambiente de laboratório, não importa, mas no mundo real, pode. Voltaremos depois que (espero) quebrarmos a chave pré-compartilhada.
além da conveniência de não ter que pendurar em torno de seu alvo enquanto seu hash está sendo quebrado (o que pode levar muito tempo), outra conveniência do mundo real existe em que quebrar hashes usando apenas a energia da CPU é um processo lento e quase inútil. Realisticamente, você levaria o arquivo de captura de volta para uma máquina executando uma ou mais GPUs e usaria essas GPUs para quebrar a chave com um utilitário que suporta quebra de GPU, como Hashcat.
se você não acha que uma GPU faria uma grande diferença em relação a uma CPU rápida, observe este estudo do mundo real que fiz no outro dia. Na tentativa de quebrar uma chave WPA2-PSK, usei um comando que executaria todos os números de telefone em um código de área contra um arquivo capturado (muitos usuários usam um número de telefone de 10 dígitos como uma chave WPA2). Sabendo que código de área eu ia usar, isso deixou 10.000.000 de possibilidades. Um Intel Core i5-7400 rodando a 3,0 GHz levou 8 horas e 14 minutos para concluir essa operação. Uma GeForce GTX 1070 fez o mesmo em 52 segundos.
no próximo post, mostrarei como converter o seu .cap arquivo para um .arquivo hccapx, que é o formato com o qual o Hashcat gosta de trabalhar. Também mostrarei alguns dos métodos que gosto de usar para quebrar hashes usando Hashcat, que pode se aplicar a praticamente qualquer hash, não apenas hashes WPA2-PSK.