Em fevereiro publicamos o Desafio ESET #4, no qual os participantes supostamente eram um pentester contratado para identificar pontos de entrada na rede interna da empresa. Após algumas análises e ao conseguir estar no lugar certo e na hora certa, o participante poderia obter dois arquivos que, se devidamente analisados, garantem o acesso à porta de entrada.
Vencedor do Desafio ESET #4: @viiniikun
Abaixo mostro uma das possíveis soluções para o desafio:
Solução para o Desafio ESET #4
1 - Segundo a história proposta no desafio, o primeiro arquivo a ser obtido deveria ser o tráfego da cafeteria, em nosso caso representado pelo arquivo trafego-cafeteria.pcapng.
Começarei por ele e, para iniciar a análise, vejo seu conteúdo no wireshark. Nele é possível perceber que entre as requisições há algumas HTTP e alguns GETs.
Como estamos procurando um arquivo que nosso alvo tinha baixado, é interessante ver se o tráfego capturado já o possui em seu conteúdo. Para isso, sigo as opções: File > Export Objects > HTTP.
Uma tela é exibida contendo todos os arquivos baixados que foram interceptados nessa comunicação de rede. Prestando atenção ao que dizia o enunciado, ou adotando a estratégia da tentativa e erro 😊, chegamos ao arquivo acc-srv-W2K9-DC.zip. Para extraí-lo da captura de rede basta selecioná-lo e clicar na opção Save.
O arquivo ZIP está protegido por senha e não é possível acessar o conteúdo sem a chave, sendo assim, passemos para a análise do próximo arquivo.
Temos em mãos mais uma captura de tráfego de rede, mas agora com um handshake de conexão à rede corporativa da empresa. Segundo a conversa dos dois alvos, a senha do arquivo é idêntica a senha de conexão à rede Wi-Fi, então precisamos quebrá-la para obter o acesso.
Observação: é possível usar a ferramenta aircrack-ng diretamente no arquivo referente a captura de rede. No entanto, optei por convertê-lo para um formato que pode ser lido pelo john (John The Ripper), considerando que a ferramenta possui recursos de filtros e possibilidade de pause/resume do cracking de senhas, o que tem se mostrado muito útil para senhas mais difíceis de quebrar.
Como primeiro passo, extraí o handshake do arquivo de captura com o comando:
aircrack-ng -J wifi-hccap dump-rede-corp-01.cap
onde:
- -J wifi-hccap: cria um arquivo hashcat com o nome wifi-hccap.
- dump-rede-corp-01.cap: arquivo que contém o handshake da rede alvo.
Com o arquivo em formato hashcat, basta convertê-lo em um formato interpretado pelo John e iniciar a quebra.
Observação: nesse ponto seria possível seguir usando um outro software de quebra de senha, o hashcat. Eu acabei seguindo os passos para utilizar o john apenas por preferência.
O comando que utilizo durante todo o processo (Kali Linux) para conversão é simples e nativo da distribuição Linux:
hccap2john wifi-hccap-.hccap > crack-wifi-john
onde:
- wifi-hccap-.hccap: arquivo obtido da etapa anterior.
- crack-wifi-john: joga a saída do comando para o arquivo crack-wifi-john.
Também utilizo o comando cat para verificar se o conteúdo do arquivo criado está correto, antes de prosseguir com a quebra.
Agora basta utilizar o john para quebrar a senha presente no arquivo:
john --format=wpapsk --wordlist=/usr/share/wordlists/rockyou.txt crack-wifi-john
onde:
- --format=wpapsk: seleciona o tipo de senha contida no arquivo, como no nosso caso trata-se de uma senha de rede WI-FI, o formato a ser usado é o wpapsk.
- --wordlist=/usr/share/wordlists/rockyou.txt: estipula qual arquivo de dicionário será usado para tentar quebrar a senha.
- crack-wifi-john: arquivo obtido na etapa anterior contendo a senha a ser quebrada.
Observação: é possível usar o john sem escolher um dicionário, porém o tempo de quebra aumenta drasticamente. Como sugestão, procure sempre usar bons arquivos de dicionário antes de partir para uma quebra de senha puramente sequencial.
Caso os dicionários não sejam bem-sucedidos na quebra da senha, e caso haja a possibilidade, é possível utilizar os processadores da placa de vídeo para diminuir o tempo do processo. É sempre válido lembrar que processos de quebra de senha geram uma enorme sobrecarga no processamento das unidades, caso opte por fazer o processo sempre será por sua conta e risco.
Após alguns minutos o comando é concluído e a senha é encontrada.
Em posse da senha, basta extrair o arquivo ZIP e abrir o arquivo de texto dentro dele, que contém a senha de administrator, que é a flag que estamos buscando.
Agradecemos a todos os participantes e esperamos que tenham gostado do desafio.
Fiquem atentos, pois em breve criarei novos desafios para vocês.
Caso tenha ficado com alguma dúvida ou tenha sugestões de temas relacionados à segurança da informação que gostaria que abordássemos nas próximas publicações, conte-nos nos comentários deste artigo.