Embora os usuários quase sempre se preocupem com a segurança da sua rede Wi-Fi para troca de informações, a realidade também indica que a fraca configuração de uma rede Wi-Fi pode ser a porta de entrada para um atacante assumir o controle de um computador, roubar senhas e até comprometer outros dispositivos ligados à mesma rede, como vimos no caso de um ataque que começa com o acesso a uma rede Wi-Fi para, em seguida, atacar uma Smart TV. É por isso que neste post vamos compartilhar algumas ferramentas gratuitas com as quais é possível auditar a segurança de uma rede para determinar o seu nível de segurança.
O uso de senhas fracas não é uma prática exclusiva dos usuários domésticos. De fato, um texto recentemente publicado pela FastCompany revelou que uma empresa reconhecida mundialmente oferecendo espaços compartilhados para empreendedores, startups e freelancers, usava a mesma senha em vários de seus escritórios – considerada fraca, já que fazia parte da lista das piores senhas. Portanto, este post pode ser de interesse não só para usuários domésticos com determinados conhecimentos técnicos, mas também para empresas ou organizações interessadas em avaliar a segurança de sua rede Wi-Fi.
Como auditar a segurança de uma rede Wi-FI
Embora existam muitas ferramentas disponíveis, destacamos algumas delas:
O primeiro passo é criar um Live CD do Kali Linux. Para isso, devemos:
- Baixar uma imagem ISO de 32 bits ou 64 bits, dependendo da arquitetura do processador, desde o site oficial;
- Baixar o programa Win32DiskImager ou outro aplicativo para criar um disco de inicialização com a imagem baixada;
- Iniciar o sistema a partir da mídia removível escolhida.
Capturar o “handshake” da conexão
Embora existam muitas maneiras de auditar uma rede Wi-Fi, neste caso vamos focar em um 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 a seguir, este é um método muito eficaz.
Para este exemplo, vamos usar a ferramenta Wifite que vem instalada por padrão com o Kali Linux. Esta ferramenta usará, de forma visível, o Aireplay-ng e o Airmon-ng para ouvir passivamente se algum novo cliente se conecta à rede e capturar o “handshake”. Caso não consiga, ou se não quiser esperar muito tempo, a ferramenta continuará automaticamente com um processo mais agressivo, enviando um “deauth packet” para algum cliente, forçando-o a desconectar. Assim, o dispositivo desconectado tentará reconectar-se ao Ponto de Acesso automaticamente e é nesse momento que o Wifite obterá o handshake da conexão.
Crackear o handshake e obter a senha: parte teórica
Antes de passarmos à parte prática sobre como capturar o handshake, vejamos a parte teórica deste processo.
Agora devemos obter a senha. Como é apresentado na imagem a seguir, o protocolo WPA2 utiliza um processo de autenticação descrito no protocolo IEEE-802.11i:
O cliente que desconectamos já sabia a senha correta para a conexão com a rede Wi-Fi, e toda essa informação foi obtida capturando o handshake. Obviamente, aqueles que desenvolveram o protocolo não foram tão desatentos, por isso não podemos encontrar a senha em texto simples. O que acontece é que a senha de autenticação (PSK) foi usada para construir o Pairwise Transient Key (PTK) e outras chaves.
O que devemos fazer neste momento é:
- Adotar senhas diferentes (PSK),
- Calcular o PTK e o resto das chaves para cada suposição que fazemos,
- Comparar o MIC (Message Integrity Code) "genuíno" que capturamos no handshake com o qual obtemos ao computar as chaves em cada caso.
Se definirmos uma senha e os MICs (o computador e o original) corresponderem, as chances de termos a senha errada são de 2^(-128), ou seja, 0,00000, seguido por outros 33 zeros.
Felizmente, existem ferramentas para automatizar este processo. Nossa melhor opção será tentar obter a senha através da técnica de força bruta, ou seja, tentar todas as combinações possíveis, uma a uma, até chegar ao resultado. Nesse caso, todo o processo será "off-line", portanto, no caso de um ataque real, a vítima não terá como saber que alguém está tentando adivinhar sua senha.
Para economizar tempo, é importante que no momento deste processo tenhamos o máximo de informação possível sobre a senha. Em seguida, veremos porque pode se tornar uma dor de cabeça deixar as configurações padrão para se conectar à rede Wi-Fi no dispositivo enviado pela empresa provedora de Internet.
Crackear o handshake e obter a senha: parte prática
Entrando na parte prática deste processo, para este exemplo utilizarei o meu próprio Ponto de Acesso com a configuração que vem por padrão, ou seja, sem ter feito qualquer modificação à sua configuração, que é o erro cometido pela maioria dos usuários.
Vou começar abrindo um novo terminal e iniciar a ferramenta:
Uma vez que a ferramenta esteja aberta, ela colocará automaticamente nosso adaptador sem fio no modo de monitoramento e começará a varrer as redes dentro do alcance.
Na coluna "NUM" encontraremos o índice atribuído a cada rede. Simplesmente escolhemos a rede que queremos auditar entrando no seu índice. Neste caso, vamos trabalhar no índice 1. Um processo automatizado irá iniciar e capturar o handshake. Sim, o Wifite torna tudo muito fácil.
Após alguns minutos, obteremos o seguinte resultado, indicando que a captura foi bem sucedida:
Pronto, temos o handshake. Para realizar o processo de força bruta usaremos a ferramenta hashcat. A primeira coisa que precisamos fazer é converter o formato do arquivo capturado contendo o handshake de .cap para .hccapx, que é o formato usado pelo hashcat. Para a conversão vamos usar o cap2hccapx, embora existam outras ferramentas disponíveis.
É necessário baixar o código fonte do cap2hccapx, disponível no GitHub, e compilá-lo. Para isso, basta digitar 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
Para finalizar, execute a conversão com o comando:
$ cap2hccapx <nombre del archivo>.cap <nombre del archivo>.hccapx
Como mencionei anteriormente, quanto mais informação sobre a senha tivermos antes, melhor. O problema das chaves Wi-Fi que normalmente encontramos por padrão em muitas redes de usuários na América Latina é que são exclusivamente numéricas e de 10 ou 11 dígitos. Alguns dos quais conhecemos, pois são sempre os mesmos. Esta é a configuração padrão com a qual muitos roteadores são instalados e cuja configuração nunca é modificada pelo usuário.
Deve-se também notar que existem bancos de dados de senhas comuns - chamados de "arquivos de dicionário" - que o hashcat nos permitirá usar para auditar a rede. Uma boa recomendação para os usuários é certificar-se de que a senha que você escolheu para sua conexão não esteja dentro de um desses arquivos.
Usando o padrão conhecido por algumas empresas, descobrimos que há dígitos que não mudam - para o nosso exemplo, vamos adotar os 3 primeiros dígitos como: 004 ou 014 e tentar com ambos.
Em seguida, alguns dos números associados ao cliente continuam, como o seu número de identificação. Precisaremos encontrar os 7 ou 8 dígitos restantes da senha. Conhecendo esta informação vamos abrir um novo console e digitar o seguinte comando:
$ hashcat -m 2500 -a3 004?d?d?d?d?d?d?d <nombre del archivo>.hccapx
Em que:
-m 2500 indica um handshake WPA.
-a3 indica que o ataque será por força bruta (masked).
e 004?d?d?d?d?d?d?d?d?d?d?d?d indica que a senha será de 10 números iniciando com 004.
Uma vez que o comando é inserido, o hashcat começará a tentar adivinhar a senha. O tempo para o processo dependerá da qualidade do nosso hardware. Vale a pena notar que é possível usar o hashcat com uma placa de vídeo para acelerar o processo.
Como podemos ver, há 10 milhões de senhas possíveis. Embora seja um número alto, se considerarmos a "velocidade" de processamento que os processadores atuais têm, vemos que esse processo leva apenas aproximadamente 32 minutos. A senha crackeada pode ser encontrada no potfile.
Com essas etapas, podemos identificar o quão segura é uma senha de rede Wi-Fi e, portanto, seu nível de exposição a um ataque que explora essas vulnerabilidades.
Uma vez obtida a senha da rede Wi-Fi é possível conectar-se à mesma e ter acesso a outros dispositivos que estão conectados. Isso pode dar ao atacante a capacidade de explorar outras vulnerabilidades presentes em outros dispositivos.
Infelizmente, é extremamente comum encontrar usuários usando as senhas padrão que vêm com o roteador, o que representa um problema de segurança para o usuário, pois dá ao atacante a capacidade de acessar a configuração do roteador e executar diferentes tipos de ataque. Assim, quase sempre é possível acessar à configuração do roteador, dando origem a diferentes tipos de ataques.
O que posso fazer para me proteger?
- As recomendações que damos são as mesmas que para proteção em outros campos da segurança. Não use as senhas por padrão – é fundamental alterá-las sempre.
Existem muitas formas de acessar a configuração do roteador e modificar as senhas de acesso do dispositivo e as de suas redes Wi-Fi. Só é necessária uma pesquisa no Google.
- Use senhas longas e difíceis de adivinhar que contenham letras, números e caracteres especiais
Leia o nosso post sobre como criar uma senha forte. Tenha em conta que para uma senha complexa, o processo de força bruta pode nos levar literalmente a milhões de anos, em vez de 32 minutos.
- Não permita que o alcance da sua rede Wi-Fi exceda o perímetro de sua casa.
Isto pode ser feito baixando a potência da antena a partir da página de configuração do roteador.