Claramente um das ações que mais chama a atenção no mundo hacker é a quebra de senhas, sendo assim, neste artigo irei abordar um software de quebra de senhas amplamente conhecido: o John The Ripper.
Atenção! Este conteúdo é direcionado a pessoas que estudam e/ou atuam na área de segurança da informação e não deve ser usado para qualquer outro fim.
Caso você ainda não conheça, o John The Ripper é um software gratuito que permite realizar a quebra de senhas através dos seguintes métodos:
- Através de Wordlists (arquivos que contém supostas senhas)
- Quebra simples (Single Crack)
- Incremental
- Externo
Basicamente, esses 4 modos oferecem uma gama de oportunidades para realizar a quebra de senhas, abaixo vamos conhecer um pouco mais sobre cada um deles:
1. Quebra de senhas com Wordlists
Certamente um dos modos mais conhecidos e utilizados, pois você apenas precisa indicar o arquivo contendo as supostas senhas e o programa se encarrega da parte bruta.
Entretanto, você pode personalizar essa tentativa através de Wordlists criando várias regras para manipular as palavras de cada senha dentro do arquivo da Wordlist.
Caso você esteja se perguntando onde encontrar arquivos de Wordlist, atualmente você pode acha-los facilmente espalhados pela internet ou em distribuições focadas em Pentest.
2. Quebra de senhas Single Crack (Quebra simples)
Provavelmente esse é o primeiro modo que a maioria das pessoas começa a utilizar quando se aventura no John The Ripper.
Este modo utiliza uma técnica que busca informações relevantes ao usuário, como nome e nome de diretórios, para gerar possíveis senhas até chegar a um resultado compatível.
Além disso, é possível personalizar esse modo com algumas regras onde as informações são manipuladas tornando o processo ainda mais eficaz.
3. Quebra de senhas com Modo Incremental (Considerado o modo mais poderoso)
Com certeza você já viu cenas de filmes onde hackers tentam quebrar senhas com um programa que vai testando todas as combinações de caracteres possíveis, não é mesmo?
Bom, com o John the Ripper isso também é possível, entretanto, é bem provável que isso leve muito, muito tempo, pois seriam necessárias milhares de combinações para chegar a um resultado.
Sendo assim, ao utilizar esse modo é indicado fazer uso dos parâmetros para definir algumas personalizações que possam reduzir o tempo para quebrar uma senha.
4. Quebra de senhas com Modo Externo (O mais completo e complicado)
Basicamente esse modo pode ser resumido como o mais completo, porém, mais complexo modo dentro do John The Ripper.
Através deste modo é possível definir regras de programação dentro do arquivo de configuração do “John”.
Portanto, através deste modo o programa vai usar algumas funções programadas e adaptadas para gerar as possíveis senhas que você esteja tentando quebrar.
Casos de uso do John The Ripper
Claramente podemos observar que o John The Ripper é uma ferramenta poderosa que permite ter acesso a diversos modos de quebra de senhas.
Ou seja, com ele é possível adaptar tentativas de quebra de senhas para diversos tipos de finalidades, sejam elas senhas de usuários Windows, Linux ou até mesmo arquivos .ZIP.
Sendo assim, os usos do “John” podem ser os mais variados, dentre os mais comuns estão: durante testes de invasão legais, ataques cibernéticos e em caso de você perder uma senha e precisar tentar recuperá-la.
Confira abaixo algumas tecnologias de criptografias suportadas pelo John The Ripper:
- UNIX crypt(3)
- SHA-crypt hashes
- SHA-crypt e SUN MD5 hashes
- DES
- Windows LM
- Kerberos/AFS
- OpenBSD Blowfish
- FreeBSD MD5
- Bigcrypt
- BSDI
Essas são as criptografias suportadas oficialmente pelo software, contudo, existem centenas de extensões disponíveis que podem tornar o John ainda mais poderoso.
Quebrando senhas de arquivos ZIP com o John The Ripper
Agora que já compreendemos um pouco sobre o funcionamento do John The Ripper, vamos por a mão na massa!
Neste primeiro exemplo vou demonstrar o funcionamento do John The Ripper para quebrar senhas de arquivos .ZIP ou .RAR. Para esse tutorial estarei usando os pacotes Snap no Ubuntu, mas você pode ficar àvontade para usá-lo no Windows ou no Kali Linux (Ele já vem pronto para uso).
Caso esteja usando o Ubuntu e queira instalá-lo basta executar o comando abaixo:
snap install john-the-ripper
Em seguida habilite a função do zip2john executando o seguinte comando:
sudo snap alias john-the-ripper.zip2john zip2john
Para esta demonstração criei um arquivo .ZIP contendo uma simples imagem dentro e configurei uma senha.
Uma vez que você já possuir um arquivo ZIP que necessite quebrar a senha, basta no terminal navegar até a pasta onde o arquivo se encontra e primeiramente extrair a hash da senha, veja como.
Inicialmente execute o seguinte comando:
zip2john NomeDoArquivo.zip > hash
Substitua o nome do arquivo conforme necessário, após o > você pode colocar qualquer nome, para este tutorial utilizei o termo “hash”, confira um exemplo prático na imagem abaixo:
Logo após o processo ser finalizado, podemos dar início a tentativa da quebra de senha utilizando o John The Ripper, para isso veja como é simples, execute o seguinte comando:
john hash
Uma vez que o comando for executado basta apenas aguardar para que o John faça todo o trabalho, lembrando que dependendo da senha e do poder de processamento do computador isso pode demorar.
Abaixo é possível observar o resultado da quebra de senha do arquivo que durou 23 minutos e 26 segundos, resultando na senha “pti1234”.
Quebrando hashes de senhas usando o John
Neste outro exemplo irei utilizar uma hash MD5 para demonstrar o funcionamento do John The Ripper para quebra de hashes usando uma Wordlist.
Para iniciar, criei uma hash MD5 contendo o termo “pti#10tutorial”, que deu origem a seguinte hash 1efbb45f3a19101c2532cf892392cf00
Em seguida, para realizarmos a tentativa de quebra de senha de uma hash, precisamos executar o seguinte comando:
john --format=raw-md5 "Nome do arquivo que contém a hash ou as hashes" --wordlist="Diretório onde a sua lista com possíveis senhas está".
Provavelmente ao executar o comando você notará que ele ficará parecido com a da imagem abaixo:
No exemplo acima utilizei a famosa wordlist RockYou.txt que pode ser encontrada no GitHub. Como é possível observar, o John The Ripper comparou as palavras dentro do arquivo da Wordlist e encontrou uma palavra compatível com a hash MD5 mostrada acima.
O mesmo processo pode ser aplicado para outros tipos de hash, como SHA-1, bastando substituir o parâmetro format para “raw-sha-1”.
Hash SHA-1: c9b78f538d6982ebcfc3dad880b8d2d9e4b0c931
Abaixo confira o comando executado juntamente com o resultado da quebra da hash SHA-1 pelo John The Ripper.
Finalizando sobre quebra de senhas com o John The Ripper
Certamente a ferramenta John The Ripper é uma excelente escolha quando o assunto é quebra de senhas devido a sua performance e diversos módulos disponíveis.
Contudo, este artigo é apenas um resumo bem breve a respeito desta ferramenta, pois seria impossível abordar todos os aspectos do programa em um único artigo.
Espero que essa dica possa te ajudar de alguma forma e, se possível for, aprofunde-se na documentação do John The Ripper, você não vai se arrepender!