No universo da cibersegurança, testar a robustez das senhas é uma prática fundamental para garantir a segurança de sistemas e usuários. O John the Ripper (JtR) é uma das ferramentas mais populares para essa tarefa, sendo amplamente utilizado por pentesters, administradores de sistemas e pesquisadores de segurança.
Neste artigo do Blog Dolutech, exploraremos o que é o John the Ripper, como ele funciona, como utilizá-lo para quebrar senhas e como aumentar sua eficiência com listas de passwords personalizadas.
O Que é o John the Ripper?
O John the Ripper é um cracker de senhas open-source, desenvolvido para testar a força de senhas e auxiliar na recuperação de credenciais. Ele suporta uma grande variedade de formatos de hash e pode utilizar diferentes métodos para quebrá-los, incluindo:
✅ Força Bruta – Testando todas as combinações possíveis.
✅ Ataque de Dicionário – Utilizando listas de senhas conhecidas.
✅ Ataque Híbrido – Combinando palavras de dicionário com mutações.
✅ Ataques Avançados – Personalizados com regras e scripts específicos.
O JtR é frequentemente usado para auditorias de segurança e recuperação de senhas esquecidas, sendo compatível com Linux, Windows e macOS.
1. Instalando o John the Ripper
1.1. Instalando no Linux (Debian, Ubuntu, Kali)
sudo apt update
sudo apt install john -y
1.2. Instalando no Arch Linux
sudo pacman -S john
1.3. Instalando no macOS (via Brew)
brew install john-jumbo
1.4. Baixando e Instalando a Versão “Jumbo” (Mais Recursos)
A versão “Jumbo” do John the Ripper oferece suporte a mais formatos de hash e recursos avançados:
git clone https://github.com/openwall/john.git
cd john/src
./configure && make -s clean && make -sj4
Agora o John the Ripper estará pronto para uso.
2. Como Utilizar o John the Ripper
2.1. Descobrindo os Formatos de Hash Suportados
O JtR suporta diversos formatos de hash, desde senhas de sistemas Unix/Linux até credenciais armazenadas em bancos de dados.
Para visualizar os formatos suportados:
john --list=formats
2.2. Identificando o Tipo de Hash
Antes de tentar quebrar uma senha, é necessário identificar o tipo de hash utilizado:
john --show=hashes minha_lista_hashes.txt
Se preferir uma ferramenta específica para isso, pode utilizar o hashid:
hashid hash_exemplo
3. Realizando Ataques com o John the Ripper
3.1. Ataque de Dicionário
O ataque de dicionário utiliza listas de senhas conhecidas para tentar descobrir a senha correta.
- Baixe um dicionário de senhas:
wget https://github.com/danielmiessler/SecLists/raw/master/Passwords/Common-Credentials/10k-most-common.txt -O senhas.txt
Execute o John the Ripper utilizando a lista de senhas:
john --wordlist=senhas.txt minha_lista_hashes.txt
3.2. Ataque de Força Bruta
Se o ataque de dicionário não funcionar, pode-se usar um ataque de força bruta, que testa todas as combinações possíveis.
john --incremental=All minha_lista_hashes.txt
Isso usará o modo incremental, tentando combinações alfanuméricas e especiais.
3.3. Ataque Híbrido (Dicionário + Mutações)
O ataque híbrido combina palavras de uma lista com modificações, como substituição de caracteres (admin123 → Adm1n!23
).
john --wordlist=senhas.txt --rules minha_lista_hashes.txt
As regras podem ser editadas no arquivo john.conf
, criando mutações específicas para senhas personalizadas.
4. Extraindo Hashes para Testes
Antes de utilizar o John the Ripper, você pode precisar extrair hashes de arquivos de sistemas ou bancos de dados.
4.1. Extraindo Hashes do Linux
sudo unshadow /etc/passwd /etc/shadow > hashes_linux.txt
Isso gera um arquivo com as senhas encriptadas do sistema.
4.2. Extraindo Hashes de um Arquivo ZIP
Para testar a força de uma senha ZIP:
zip2john arquivo.zip > hash_zip.txt
john hash_zip.txt –wordlist=senhas.txt
4.3. Extraindo Hashes de um Arquivo PDF
pdf2john.pl arquivo.pdf > hash_pdf.txt
john hash_pdf.txt --wordlist=senhas.txt
5. Como Melhorar a Eficiência do John the Ripper
Para obter melhores resultados, podemos combinar o JtR com listas personalizadas de senhas e técnicas avançadas.
5.1. Integração com SecLists
O SecLists é um repositório de listas de senhas utilizadas por pentesters e hackers éticos. Você pode baixá-lo e usá-lo para melhorar a eficiência do JtR.
git clone https://github.com/danielmiessler/SecLists.git
Utilizando uma das listas:
john --wordlist=SecLists/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt minha_lista_hashes.txt
5.2. Criando um Dicionário Personalizado
Caso tenha padrões específicos de senhas, pode criar um dicionário customizado com base em nomes, datas e palavras-chave comuns:
echo "admin123" >> meu_dicionario.txt
echo "password2024" >> meu_dicionario.txt
E utilizá-lo no ataque:
john --wordlist=meu_dicionario.txt minha_lista_hashes.txt
6. Como Salvar e Exibir Resultados
Caso interrompa um ataque, você pode retomar posteriormente:
john --restore
Para visualizar as senhas quebradas:
john --show minha_lista_hashes.txt
Para salvar os resultados:
john --show minha_lista_hashes.txt > resultados.txt
7. Alternativas ao John the Ripper
Se precisar de ferramentas adicionais para testes de senhas, considere:
🔹 Hashcat – Melhor para uso com GPU.
🔹 Hydra – Focado em serviços online (SSH, FTP, RDP).
🔹 Medusa – Similar ao Hydra, usado para ataques em redes.
Conclusão
O John the Ripper é uma ferramenta essencial para pentesters e analistas de segurança, permitindo testar a força de senhas e realizar auditorias de segurança de maneira eficiente. A integração com listas de senhas como as do SecLists melhora significativamente sua capacidade de quebra de credenciais.
Com as técnicas abordadas neste artigo, você poderá utilizar o JtR de forma otimizada, aprimorando suas habilidades em testes de penetração e cibersegurança.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.