Guia Rápido do John the Ripper
Referência completa de quebra de senhas
Ataques por dicionário • Regras • Formatos de hash • Multiplataforma
O que é o John the Ripper?
John the Ripper é uma ferramenta gratuita e de código aberto para quebra de senhas. Originalmente desenvolvido para Unix, agora funciona em muitas plataformas e suporta centenas de tipos de hash. A versão "Jumbo" adiciona ainda mais formatos e recursos.
John vem pré-instalado no Kali Linux. Site oficial: openwall.com/john.
📦 Instalação
Kali Linux
sudo apt install john
Versão Jumbo (recomendada)
git clone https://github.com/openwall/john
cd john/src && ./configure && make
macOS (Homebrew)
brew install john-jumbo
🎯 Uso básico
# Quebrar com configurações padrão (detecção automática de formato)john hashes.txt# Usar wordlistjohn --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt# Especificar formato de hashjohn --format=raw-md5 hashes.txt# Mostrar senhas quebradasjohn --show hashes.txt# Listar formatos suportadosjohn --list=formats# Verificar status da sessãojohn --status# Restaurar sessão interrompidajohn --restore
⚔️ Modos de ataque
| Modo | Flag | Descrição |
|---|---|---|
| Single | --single | Usa nomes de login, GECOS, nomes de diretório |
| Wordlist | --wordlist=FILE | Ataque por dicionário |
| Incremental | --incremental | Força bruta de todas as combinações |
| Mask | --mask=MASK | Força bruta baseada em padrão |
| External | --external=MODE | Funções personalizadas tipo C |
# Modo single (mais rápido, usa nomes de usuário)john --single hashes.txt# Wordlist com regrasjohn --wordlist=rockyou.txt --rules hashes.txt# Incremental (minúsculas, até 8 caracteres)john --incremental=Lower hashes.txt# Modo maskjohn --mask='?u?l?l?l?d?d?d?d' hashes.txt
🎭 Caracteres do modo mask
| Placeholder | Conjunto de caracteres |
|---|---|
| ?l | Minúsculas (a-z) |
| ?u | Maiúsculas (A-Z) |
| ?d | Dígitos (0-9) |
| ?s | Caracteres especiais |
| ?a | Todos os caracteres ASCII imprimíveis |
| ?h | Hexadecimal minúsculo (0-9, a-f) |
| ?H | Hexadecimal maiúsculo (0-9, A-F) |
# Padrão Password1john --mask='?u?l?l?l?l?l?l?l?d' hashes.txt# PIN de 8 dígitosjohn --mask='?d?d?d?d?d?d?d?d' hashes.txt# Prefixo estático com sufixo variáveljohn --mask='Company?d?d?d?d' hashes.txt
📋 Formatos de hash comuns
| Formato | Descrição |
|---|---|
| raw-md5 | MD5 puro |
| raw-sha1 | SHA1 puro |
| raw-sha256 | SHA256 puro |
| raw-sha512 | SHA512 puro |
| sha512crypt | Arquivo shadow Linux ($6$) |
| sha256crypt | Arquivo shadow Linux ($5$) |
| md5crypt | MD5 crypt Linux/BSD ($1$) |
| bcrypt | Blowfish crypt ($2a$, $2b$, $2y$) |
| nt | Windows NTLM |
| lm | Windows LM |
| mscash2 | MS Cache 2 (Domain Cached) |
| krb5tgs | Kerberos TGS |
# Listar todos os formatosjohn --list=formats# Procurar formatojohn --list=formats | grep -i mysql
🔧 Ferramentas de extração de hash (*2john)
John inclui muitas ferramentas para extrair hashes de vários tipos de arquivos:
# Arquivo shadow Linuxunshadow /etc/passwd /etc/shadow > unshadowed.txt# Arquivo ZIPzip2john protected.zip > zip.hash# Arquivo RARrar2john protected.rar > rar.hash# Arquivo 7z7z2john protected.7z > 7z.hash# Arquivo PDFpdf2john protected.pdf > pdf.hash# Documentos Officeoffice2john document.docx > office.hash# Chave privada SSHssh2john id_rsa > ssh.hash# Banco de dados KeePasskeepass2john database.kdbx > keepass.hash# Chave privada GPG/PGPgpg2john private.key > gpg.hash# Tickets Kerberoskirbi2john ticket.kirbi > kirbi.hash
📜 Regras de transformação de palavras
# Usar regras padrãojohn --wordlist=rockyou.txt --rules hashes.txt# Usar conjunto de regras específicojohn --wordlist=rockyou.txt --rules=best64 hashes.txt# Regras Jumbo (mais abrangentes)john --wordlist=rockyou.txt --rules=jumbo hashes.txt# Listar regras disponíveisjohn --list=rules
Conjuntos de regras comuns
| Single | Regras padrão do modo single |
| Wordlist | Regras padrão de wordlist |
| best64 | Top 64 regras mais eficazes |
| jumbo | Conjunto de regras abrangente |
| KoreLogic | Regras muito detalhadas |
⚡ Opções de performance
| Flag | Descrição |
|---|---|
| --fork=N | Criar N processos para quebra paralela |
| --node=X/Y | Dividir trabalho para quebra distribuída |
| --devices=N | Seleção de dispositivo OpenCL |
| --min-length=N | Comprimento mínimo da senha |
| --max-length=N | Comprimento máximo da senha |
# Usar todos os núcleos da CPUjohn --fork=8 --wordlist=rockyou.txt hashes.txt
💾 Gerenciamento de sessões
# Nomear uma sessãojohn --session=mycrack --wordlist=rockyou.txt hashes.txt# Restaurar sessãojohn --restore=mycrack# Verificar status (durante execução)john --status=mycrack# Mostrar senhas quebradasjohn --show hashes.txt# Mostrar no formato usuário:senhajohn --show --format=raw-md5 hashes.txt
🔥 Cenários comuns de quebra
# Quebrar arquivo shadow Linuxunshadow /etc/passwd /etc/shadow > hashes.txt john hashes.txt# Quebrar hashes NTLMjohn --format=nt --wordlist=rockyou.txt ntlm_hashes.txt# Quebrar MD5 com regrasjohn --format=raw-md5 --wordlist=rockyou.txt --rules hashes.txt# Quebrar ZIP criptografadozip2john file.zip > zip.hash john zip.hash# Quebrar chave privada SSHssh2john id_rsa > ssh.hash john ssh.hash# Quebrar tickets Kerberoastjohn --format=krb5tgs --wordlist=rockyou.txt kerberos.hash
📚 Recursos adicionais
🔐 Guia rápido do John the Ripper completo!
Você agora tem uma referência completa para uma das ferramentas de quebra de senhas mais lendárias. De arquivos shadow a arquivos criptografados, esses comandos são essenciais para qualquer profissional de segurança.
Pronto para quebrar seu próximo hash!