Pesquisar

John the Ripper: O Que É, Como Utilizar e Como Integrar Listas de Senhas para Melhorar a Eficiência

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.

image 6
John the Ripper

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.

  1. 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.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana