Explicamos como auditar a segurança de uma rede Wi-Fi com Kali Linux para determinar se é segura ou não. Incluímos ainda uma série de recomendações para melhorar a segurança de uma rede.
Apesar da preocupação dos utilizadores passar muitas vezes por reconhecer se a sua rede Wi-Fi é segura para trocar informações, a realidade também indica que a configuração de uma rede Wi-Fi pode ser a porta de entrada para que um atacante possa tomar o controlo de um computador, roubar chaves de acesso e comprometer mesmo outros dispositivos ligados à mesma rede, tal como vimos num caso prático de um ataque que começa pelo acesso a uma rede Wi-Fi e depois passa para uma Smart TV. É por isso que neste artigo partilhamos algumas ferramentas gratuitas com as quais é possível auditar a segurança de uma rede para determinar se são seguras ou não.
O uso de passwords fracas não é uma prática exclusiva dos utilizadores domésticos. Na verdade, num artigo publicado recentemente pela FastCompany revelou que uma reconhecida empresa a nível global que oferece espaços partilhados para empreendedores, startups e freelancers, utilizava em vários dos seus escritórios a mesma password; que era tão fraca que fazia parte da lista das piores passwords. Portanto este artigo pode ser interessante não apenas para utilizadores domésticos com alguns conhecimentos técnicos, mas também para empresas ou organizações interessadas em avaliar a segurança da sua rede Wi-Fi.
Como auditar a segurança de uma rede Wi-Fi
Apesar de existirem várias ferramentas disponíveis, de seguida explicamos algumas delas e quais os passos a seguir:
A primeira coisa que devemos fazer é criar um Live CD de Kali Linux. Para tal devemos:
- Descarregar uma imagem ISO de 32 ou 64 bits, dependendo da arquitetura do processador, a partir da página oficial;
- Descarregar o programa Win32DiskImager ou outra aplicação para criar um disco de arranque com a imagem descarregada;
- Iniciar o sistema a partir do meio removível eleito.
Capturar o “handshake” da ligação
Apesar de existirem muitas formas de auditar uma rede sem fios, neste caso focamo-nos num método que começa com a captura do handshake (processo de autenticação entre o Ponto de Acesso e o cliente, por exemplo, um dispositivo móvel). Como veremos mais à frente, tratava-se de um método muito eficaz.
Para esta demonstração, utilizaremos a ferramenta Wifite que vem instalada por defeito com Kali Linux. Esta ferramenta utilizará internamente, de forma transparente para nós, Aireplay-ng e Airmon-ng para escutar passivamente se algum novo cliente se liga à rede e capturar o “handshake”. Caso não consiga, ou caso não queira esperar demasiado tempo, continuará de forma automática com um processo mais agressivo, enviando um “deauth packet” (pacote de desautenticação) a algum cliente forçando a desligar. Assim, o dispositivo desligado tentará ligar-se novamente ao Ponto de Acesso de forma automática e é nesse instante que o Wifite obtém o handshake da ligação.
Crackear o handshake e obter a password: parte teórica
Antes de ir à parte prática de como capturar o handshake, vejamos a parte teórica deste processo.
Agora devemos obter a password. Como é possível ver na seguinte imagem, o protocolo WPA2 utiliza um processo de autenticação descrito dentro do protocolo IEEE-802.11i:

O cliente que desligámos já conhecia a password correta para a ligação à rede Wi-Fi, e toda a informação foi obtida com a captura do handshake. Obviamente, quem desenvolveu o protocolo não foi tão descuidado, pelo que a password não será encontrada em texto simples. O que acontece é que a password de autenticação (PSK) foi utilizada para construir a Pairwise Transient Key (PTK) e outras passwords.
O que devemos fazer neste ponto é:
- Assumir diferentes passwords (PSK);
- Encriptar a PTK e as restantes passwords para cada suposição que fazemos;
- Comparar o MIC (Message Integrity Code) “genuíno” que capturámos no handshake com o que obtemos ao encriptar as passwords em cada caso.
Se assumimos uma password e os MIC (o encriptado e o original) coincidem, as chances de nos termos enganado na password são de 2^(-128), ou seja 0,00000, seguidos por outros 33 zeros.
Felizmente, existem ferramentas que permitem automatizar este processo. A nossa melhor opção será tentar obter a password mediante force brute, ou seja, testar todas as combinações possíveis, uma por uma, até chegar ao resultado. Neste caso, todo o processo será “offline” pelo que, caso se trate de um ataque real, a vítima não terá forma de saber que alguém está a tentar adivinhar a sua password.
Para poupar tempo, é importante que no momento de realizar este processo contemos com a maior quantidade de informação possível sobre a password. De seguida veremos porque pode converter-se numa dor de cabeça deixar no dispositivo que nos é enviado pelo fornecedor de serviços de Internet a configuração p0or defeito para se ligar à rede Wi-Fi.
Crackear o handshake e obter a password: parte prática
Entrando na parte prática deste processo, para esta demonstração utilizei o meu próprio Ponto de Acesso com a configuração que vem por defeito, isto é, sem ter realizado nenhuma modificação à sua configuração, que é o erro que lamentavelmente a maioria dos utilizadores cometem.
Começarei por abrir um novo terminal e iniciar a ferramenta:

Uma vez aberta a ferramenta, colocará automaticamente o nosso adaptador sem fios no modo de monitorização começará a verificação das redes que se encontram dentro do alcance.

Na coluna “NUM” encontraremos o índice assignado a cada rede. Simplesmente elegemos a rede que pretendemos auditar entrando no índice. Neste caso, trabalharemos sobre o índice 1. Dará início a um processo automatizado e capturará o handshake. Sim, o Wifite torna-o realmente simples.
Passados alguns minutos, obteremos o seguinte resultado, indicando que a captura foi conseguida com sucesso:

Assim, já teremos o handshake. Para realizar o processo de force brute utilizaremos a ferramenta hashcat. A primeira coisa que devemos fazer é converter o formato do arquivo capturado que contém o handshake de .cap a .hccapx, que é o formato que utiliza hashcat. Para a conversão utilizaremos cap2hccapx, embora existam outras ferramentas disponíveis.
Há que descarregar o código fonte de cap2hccapx, disponível no GitHub, e compilá-lo. Para tal, basta introduzir os seguintes comandos em ordem:
$ wget https://raw.githubusercontent.com/hashcat/hashcat-utils/master/src/cap2hccapx.c $ gcc -o cap2hccapx cap2hccapx.c $ mv cap2hccapx /bin
Finalmente, realizar a conversão com o comando:
$ cap2hccapx <nombre del archivo>.cap <nombre del archivo>.hccapx
Como já mencionado anteriormente, quanto mais informação da password tenhamos de antemão, melhor. Há, no entanto, que ter também em consideração que existem bases de dados de passwords comuns – chamados “arquivos de dicionário” – que hashcat nos permitirá utilizar para auditar a rede. Uma boa recomendação para os utilizadores é que se assegurem que a password escolhida para a ligação não se encontre dentro de um destes arquivos.
Usando o padrão conhecido para algumas empresas, descobrimos que existem dígitos que não mudam, tomaremos como exemplo os primeiros 3 dígitos como: 004 ou 014 e testaremos ambos.
De seguida, alguns dos números associados ao cliente continuam, como o número de identificação. Precisamos encontrar os 7 ou 8 dígitos restantes da password. Conhecendo estas informações, abriremos uma nova consola e digita-se o seguinte comando:
$ hashcat -m 2500 -a3 004?d?d?d?d?d?d?d <nombre del archivo>.hccapx
Onde:
-m 2500 indica que se trata de um handshake WPA.
-a3 indica que o ataque será por force brute (masked).
e 004?d?d?d?d?d?d?d indica que a password será de 10 números a começar com 004.
Depois de introduzido o comando, o hashcat começa a tentar adivinhar a password. Dependendo da qualidade do nosso hardware, o tempo necessário pode ser diferente. Há que esclarecer que é possível usar o hashcat com uma placa de vídeo para acelerar o processo.

Como vemos, existem 10 milhões de passwords possíveis. Embora seja um número alto, se tivermos em consideração a “velocidade” de processamento que os processadores atuais têm, vemos que este processo leva apenas aproximadamente 32 minutos. A senha crackeada pode ser encontrada no arquivo potfile.
Com estes passos, podemos identificar quão segura é a password de uma rede sem fios e, portanto, seu nível de exposição a um ataque que explora essas vulnerabilidades.
Depois de obter a password da rede Wi-Fi, é possível ligar-se à rede e obter acesso aos restantes dispositivos que estão ligados. Isto pode dar ao invasor a possibilidade de explorar outras vulnerabilidades presentes noutros dispositivos.
Infelizmente, é extremamente comum encontrar utilizadore que usam as credenciais padrão que acompanham o router, o que representa um problema de segurança para o utilizador, pois oferece ao invasor a possibilidade de aceder à configuração do router e executar diferentes tipos de ataque. Portanto, na maioria das vezes é possível aceder à sua configuração, dando origem a diferentes tipos de ataques.
Que pode fazer para se proteger?
- As recomendações que damos são as mesmas a ter em consideração na proteção noutros âmbitos informáticos. Não utilizar as credenciais por defeito, alterá-lass sempre.
Existem muitas formas de chegar à configuração do router e modificar as credenciais de acesso ao mesmo e às suas redes Wi-Fi. Basta uma pesquisa no Google.
- Utilizar passwords grandes, difíceis de adivinhar, que contenham letras, números e carateres especiais
Há que ter em conta que para uma password complexa, o processo de adivinhá-la por force brute que realizámos poderia levar milhões de anos, em vez de 32 minutos.
- Não permitir que o alcance da sua rede Wi-Fi exceda o perímetro da sua casa
Isto pode realizar-se diminuindo a potência da antena a partir da página de configuração do router.