Cracking de senhas e hashes utilizando John The Ripper

Cracking de senhas e hashes utilizando John The Ripper

John The Ripper é uma ferramenta poderosa, de código aberto e gratuita e que tem como finalidade o cracking ou quebra de hashes/senhas. Ela suporta diversos algoritmos de hash e, neste post, vamos dar uma olhada em alguns exemplos básicos de como quebrar hashes usando o John. Um dos pontos positivos da ferramenta é que ela está disponível para Windows e Linux e tenta detectar automaticamente o tipo de hash que recebeu.

TL;DR

O uso básico consiste na seguinte linha de comando:

john --wordlist=/usr/share/wordlists/password.lst arquivo_de_hashes.txt

Primeiramente, o que é cracking de senhas?

A quebra (ou cracking) de senhas é o nome que se dá ao processo de obtenção de uma senha a partir de uma determinada hash. Por conta do avanço da segurança da informação, a maioria das senhas que você encontrará em um sistema não são armazenadas em clear text (texto claro ou que lê-se normalmente), mas sim no formato de hashes.

Uma hash é uma string, gerada pela execução de uma função de hash criptográfica. Ao fazer isso, é produzida uma saída exclusiva para aquela senha específica. Veja abaixo uma ilustração do processo de hashing.

Processo de Hashing

Instação do John The Ripper

sudo apt install john

Quebrar hashes com John The Ripper

Quebrar hashes utilizando uma wordlist (ataque de dicionário)

O ataque de dicionário é o mais utilizado e, neste modo, o john irá tentar quebrar a hash a partir de uma wordlist. No comando abaixo, por exemplo, estamos tentando quebrar hashes MD5 utilizando wordlist rockyou:

john --wordlist=/usr/share/wordlists/rockyou.txt arquivo_de_hashes.txt

Quebrar hashes utilizando bruteforce (ataque incremental)

Neste tipo de ataque o john irá tentar todas as combinações de carateres possíveis. Este é o tipo de ataque mais poderoso porém, mais demorado:

john --incremental arquivo_de_hashes

Extraindo hashes

O pacote do john vem com algumas ferramentas adicionais, que possibilitam extrair hashes de arquivos ZIP, RAR e chaves privadas, por exemplo. Veja abaixo alguns exemplos.

Extrair hashes de um arquivo ZIP

zip2john arquivo.zip > zip.hash

Extrair hashes de uma chave privada SSH

ssh2john id_rsa > id_rsa.hash

Extrair hashes de um arquivo RAR

rar2john arquivo.rar > rar.hash

E se eu quiser especificar uma hash?

Caso você queira especificar uma hash no john, basta listar os formatos e identificar o desejado, por exemplo:

john --list=formats | grep -i "md5"

Após isso, acrescente o parâmetro no comando, por exemplo:

john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt arquivo_de_hashes.txt

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !

Posts relacionados

Cracking de senhas e hashes utilizando Hashcat

Cracking de senhas e hashes utilizando Hashcat

Hashcat é uma ferramenta poderosa, de código aberto e gratuita e que tem como finalidade o cracking ou quebra de senhas.

Ler post completo