Introdução
Na forense digital, a recuperação de senhas de evidências apreendidas é frequentemente um passo crítico. Essas senhas podem desbloquear arquivos criptografados, acessar contas de usuário ou fornecer insights cruciais sobre as atividades de um suspeito. John the Ripper é uma ferramenta gratuita e de código aberto para quebra de senhas, amplamente utilizada por profissionais de segurança e investigadores forenses para testar a força das senhas e recuperar senhas perdidas ou comprometidas.
Este laboratório irá guiá-lo através da aplicação prática do John the Ripper em um contexto de forense digital. Você aprenderá como extrair hashes de senha de várias fontes, usar o John the Ripper para quebrar esses hashes e entender a importância da documentação adequada e da cadeia de custódia em investigações forenses. Ao final deste laboratório, você terá uma compreensão sólida de como integrar o John the Ripper em seu fluxo de trabalho de forense digital.
Extrair Hashes de Imagens Forenses
Nesta etapa, você aprenderá como simular a extração de hashes de senha de uma imagem forense. Em um cenário do mundo real, esses hashes seriam extraídos de várias fontes, como arquivos /etc/shadow, bancos de dados SAM ou contêineres criptografados. Para este laboratório, criamos previamente um arquivo chamado hashes.txt contendo hashes MD5 de exemplo.
Primeiro, vamos examinar o conteúdo do arquivo hashes.txt para entender o formato dos hashes com os quais trabalharemos.
cat ~/project/hashes.txt
Você deverá ver uma saída semelhante a esta, onde cada linha representa um nome de usuário seguido por dois pontos e seu hash correspondente:
user1:5f4dcc3b5aa765d61d8327deb882cf99
user2:21232f297a57a5a743894a0e4a801fc3
user3:d41d8cd98f00b204e9800998ecf8427e
user4:a87ff679a2f3e71d9181a67b7542122c
Estes são hashes MD5. O John the Ripper pode detectar automaticamente muitos tipos de hash, mas entender o formato é crucial para uma quebra eficaz.
Usar John the Ripper para Recuperar Senhas de Evidências
Nesta etapa, você usará o John the Ripper para quebrar os hashes extraídos na etapa anterior. Usaremos um ataque simples de lista de palavras (wordlist attack), que é uma técnica comum na quebra de senhas onde o John tenta comparar hashes com uma lista de senhas comuns.
Primeiro, vamos usar o John the Ripper com o arquivo hashes.txt e o arquivo wordlist.txt. A opção --format=Raw-MD5 informa explicitamente ao John the Ripper para tratar os hashes como MD5 brutos, embora ele frequentemente detecte automaticamente.
john --wordlist=~/project/wordlist.txt ~/project/hashes.txt
Após executar o comando, o John the Ripper tentará quebrar as senhas. A saída mostrará o progresso e quaisquer senhas quebradas. Isso pode levar alguns momentos.
Quando o John terminar, você poderá visualizar as senhas quebradas usando a opção --show.
john --show ~/project/hashes.txt
Você deverá ver uma saída semelhante a esta, mostrando as senhas quebradas para os usuários:
user1:password (user1)
user2:admin (user2)
user4:test (user4)
3 password hashes cracked, 1 left
Observe que a senha do user3 (que está vazia, representada por d41d8cd98f00b204e9800998ecf8427e) pode não ser quebrada por esta lista de palavras específica, pois senhas vazias são frequentemente tratadas de forma diferente ou requerem regras específicas.
Documentar Procedimentos Forenses com John the Ripper
Em forense digital, a documentação meticulosa é fundamental. Cada passo dado durante uma investigação, incluindo o uso de ferramentas como o John the Ripper, deve ser registrado. Isso garante a integridade da evidência e a credibilidade das descobertas em tribunal.
Nesta etapa, você simulará a documentação do processo de quebra de senhas. Você deve registrar:
- Ferramenta utilizada: John the Ripper
- Versão: (Você pode encontrar isso executando
john --version) - Arquivo de entrada:
~/project/hashes.txt - Lista de palavras utilizada:
~/project/wordlist.txt - Senhas quebradas: A saída de
john --show - Data e Hora: Quando a quebra de senhas foi realizada.
Vamos criar um arquivo de texto simples para documentar isso. Use nano para criar e editar um arquivo chamado forensic_log.txt no seu diretório ~/project.
nano ~/project/forensic_log.txt
Dentro do nano, adicione conteúdo semelhante ao seguinte, substituindo as senhas quebradas pelos seus resultados reais:
Forensic Log - Password Cracking
Date: <Current Date and Time>
Investigator: LabEx User
Tool Used: John the Ripper
Version: <Output of john --version>
Input Hash File: ~/project/hashes.txt
Wordlist Used: ~/project/wordlist.txt
Cracking Command:
john --wordlist=~/project/wordlist.txt ~/project/hashes.txt
Cracked Passwords:
user1:password
user2:admin
user4:test
Notes:
Attempted to crack MD5 hashes using a provided wordlist.
Pressione Ctrl+X, depois Y para salvar e Enter para confirmar o nome do arquivo.
Após salvar, você pode visualizar o conteúdo do seu arquivo de log:
cat ~/project/forensic_log.txt
Este log serve como uma parte crucial do seu relatório forense.
Manter a Cadeia de Custódia para Senhas Quebradas
Manter a cadeia de custódia é vital em forense digital para garantir que a evidência seja manuseada corretamente e permaneça admissível em tribunal. Isso significa documentar quem teve acesso à evidência, quando e para qual propósito. Para senhas quebradas, isso envolve armazená-las de forma segura e documentar sua descoberta.
Nesta etapa, você simulará a segurança das senhas quebradas e a documentação de seu manuseio. Embora em um cenário real você possa usar contêineres criptografados ou bancos de dados seguros, aqui simplesmente moveremos as senhas quebradas para um diretório designado de "evidências" e atualizaremos nosso log.
Primeiro, vamos criar um diretório para armazenar as evidências.
mkdir -p ~/project/evidence/cracked_passwords
Agora, vamos redirecionar a saída de john --show para um arquivo dentro deste novo diretório. Este arquivo conterá apenas as senhas quebradas.
john --show ~/project/hashes.txt > ~/project/evidence/cracked_passwords/cracked_passwords_output.txt
Verifique se o arquivo foi criado e contém as senhas quebradas:
cat ~/project/evidence/cracked_passwords/cracked_passwords_output.txt
Finalmente, atualize seu forensic_log.txt para refletir que as senhas quebradas foram protegidas. Abra o arquivo de log novamente:
nano ~/project/forensic_log.txt
Adicione uma nova seção ao log, semelhante a esta:
Cracked Passwords Secured:
Location: ~/project/evidence/cracked_passwords/cracked_passwords_output.txt
Date Secured: <Current Date and Time>
Salve e saia do nano (Ctrl+X, Y, Enter).
Este processo garante que as senhas quebradas sejam tratadas como evidência e que seu manuseio seja documentado.
Apresentar Descobertas em um Relatório Forense
A etapa final em qualquer investigação forense digital é apresentar as descobertas em um relatório forense claro, conciso e legalmente válido. Este relatório resume a investigação, os métodos utilizados, as evidências encontradas e as conclusões tiradas.
Nesta etapa, você compilará as informações coletadas ao longo deste laboratório em um relatório forense simplificado. Este relatório normalmente incluiria:
- Informações do Caso: ID do Caso, Investigador, Data.
- Resumo Executivo: Breve visão geral das descobertas.
- Metodologia: Ferramentas e técnicas utilizadas (por exemplo, John the Ripper, ataque de lista de palavras).
- Descobertas: Senhas específicas quebradas e suas contas associadas.
- Conclusão: Resumo do que as descobertas implicam.
- Apêndices: Logs brutos, arquivos de hash, etc. (como
forensic_log.txt).
Vamos criar um novo arquivo chamado forensic_report.txt no seu diretório ~/project usando nano.
nano ~/project/forensic_report.txt
Adicione conteúdo semelhante ao seguinte, incorporando os detalhes do seu forensic_log.txt e as senhas quebradas:
Digital Forensic Report
Case ID: LABEX-JTR-001
Investigator: LabEx User
Date of Report: <Current Date and Time>
1. Executive Summary:
This report details the recovery of user account passwords from seized digital evidence using John the Ripper. Three passwords were successfully recovered.
2. Methodology:
Password hashes were extracted from a simulated forensic image (hashes.txt). John the Ripper (version <John version>) was utilized with a custom wordlist (wordlist.txt) to perform a dictionary attack against the extracted MD5 hashes.
3. Findings:
The following user accounts and their corresponding passwords were recovered:
- user1: password
- user2: admin
- user4: test
The raw output of the cracking process and detailed procedural logs are appended in the Forensic Log (forensic_log.txt).
4. Conclusion:
The recovered passwords provide access to the identified user accounts, which may contain further relevant evidence for the ongoing investigation.
5. Appendices:
- Forensic Log: ~/project/forensic_log.txt
- Cracked Passwords Output: ~/project/evidence/cracked_passwords/cracked_passwords_output.txt
Salve e saia do nano (Ctrl+X, Y, Enter).
Finalmente, revise seu relatório completo:
cat ~/project/forensic_report.txt
Este exercício demonstra a importância de consolidar todas as descobertas em um relatório abrangente para fins legais e investigativos.
Resumo
Parabéns! Você concluiu com sucesso o laboratório "John the Ripper para Forense Digital".
Neste laboratório, você adquiriu experiência prática com o John the Ripper, uma ferramenta fundamental em forense digital. Você aprendeu a:
- Simular a extração de hashes de evidências forenses.
- Utilizar o John the Ripper para recuperar senhas usando um ataque de lista de palavras.
- Documentar procedimentos forenses meticulosamente, criando um log detalhado de suas ações.
- Compreender e manter a cadeia de custódia para evidências descobertas, especificamente senhas quebradas.
- Compilar e apresentar descobertas em um relatório forense estruturado.
Essas habilidades são cruciais para qualquer investigador forense digital, permitindo que eles analisem evidências de forma eficaz, recuperem informações críticas e apresentem suas descobertas de maneira legalmente sólida. Continue explorando outras técnicas de quebra de senha e recursos avançados do John the Ripper para aprimorar ainda mais suas capacidades forenses.


