Arquivos Potfile e de Saída do Hashcat

LinuxBeginner
Pratique Agora

Introdução

Hashcat é uma ferramenta poderosa e popular de recuperação de senhas. Ao executar uma sessão de cracking, o Hashcat precisa de uma maneira de gerenciar os resultados. É crucial saber quais senhas foram decifradas com sucesso e quais permanecem sem solução.

Neste laboratório, você aprenderá os fundamentos do gerenciamento da saída (output) do Hashcat. Exploraremos o hashcat.potfile, que armazena automaticamente as senhas decifradas. Você também aprenderá a usar opções de linha de comando como --show para exibir as senhas decifradas, -o para salvar os resultados em um arquivo específico e --left para identificar quais hashes ainda não foram decifrados. Dominar esses recursos é essencial para qualquer fluxo de trabalho eficaz de auditoria ou recuperação de senhas.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 97%. Recebeu uma taxa de avaliações positivas de 83% dos estudantes.

Compreender a finalidade do hashcat.potfile

Nesta etapa, você aprenderá sobre o hashcat.potfile, um componente crucial do Hashcat. Para evitar a nova tentativa de decifrar os mesmos hashes em sessões futuras, o Hashcat salva automaticamente cada hash decifrado com sucesso e sua senha em texto simples correspondente em um arquivo. Este arquivo é chamado de "potfile". Por padrão, ele é nomeado hashcat.potfile e está localizado no diretório ~/.local/share/hashcat/.

Vamos executar um ataque de dicionário básico para decifrar alguns hashes. Isso gerará o potfile para nós. Temos um arquivo chamado hashes.txt contendo hashes MD5 e um arquivo wordlist.txt com senhas potenciais.

Execute o seguinte comando para iniciar o ataque:

hashcat -m 0 -a 0 hashes.txt wordlist.txt

Aqui está uma descrição do comando:

  • -m 0: Especifica o tipo de hash, onde 0 corresponde a MD5.
  • -a 0: Especifica o modo de ataque, onde 0 é um ataque de dicionário direto (straight dictionary attack).
  • hashes.txt: O arquivo de entrada contendo os hashes a serem decifrados.
  • wordlist.txt: O arquivo de dicionário contendo as senhas a serem testadas.

Você verá o Hashcat iniciar. Como nossa lista de palavras contém as senhas corretas para todos os hashes, o processo terminará rapidamente.

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  ... H/s (0.00ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 4/4 (100.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 5/5 (100.00%)
Rejected.........: 0/5 (0.00%)
Restore.Point....: 5/5 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> testing
Hardware.Mon.#1..: Temp: 46c Fan: 33%
...
Started: ...
Stopped: ...

A saída mostra que todos os 4 hashes foram recuperados. Isso significa que o hashcat.potfile foi criado e preenchido com esses resultados.

Visualizar pares hash-senha decifrados no potfile

Nesta etapa, inspecionaremos o conteúdo do hashcat.potfile diretamente. Isso o ajudará a entender como o Hashcat armazena as credenciais decifradas. O formato é simples e eficaz: cada linha contém o hash, um separador de dois pontos (colon) e a senha em texto simples decifrada.

Para visualizar o conteúdo do potfile, use o comando cat. O arquivo está localizado em um diretório oculto dentro da sua pasta pessoal (home folder).

cat ~/.local/share/hashcat/hashcat.potfile

A saída exibirá os pares de hash-senha que foram decifrados com sucesso na etapa anterior.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

Como você pode ver, o arquivo contém os quatro hashes de hashes.txt que corresponderam às senhas em wordlist.txt. Embora visualizar o potfile diretamente seja útil para entender sua estrutura, ele pode ficar poluído e difícil de ler em cenários do mundo real com milhares de senhas decifradas. Na próxima etapa, você aprenderá uma maneira mais eficiente de visualizar os resultados para uma tarefa específica.

Usar '--show' para exibir senhas decifradas para uma lista de hashes específica

Nesta etapa, você aprenderá um método mais prático para verificar seus resultados. Em vez de ler manualmente o potfile inteiro, você pode usar a opção --show do Hashcat. Este comando instrui o Hashcat a comparar uma lista de hashes fornecida com seu potfile e exibir apenas os hashes decifrados dessa lista. Ele não realiza nenhuma nova tentativa de decifragem.

Isso é extremamente útil quando você deseja ver rapidamente os resultados para uma lista de alvos específica sem vasculhar um potfile potencialmente enorme contendo resultados de muitas sessões diferentes.

Execute o seguinte comando para exibir os hashes decifrados do nosso arquivo hashes.txt:

hashcat -m 0 --show hashes.txt

O Hashcat verificará instantaneamente o potfile e imprimirá os resultados em um formato limpo e legível.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

A saída é limpa e responde diretamente à pergunta: "Quais hashes de hashes.txt eu já decifrei?" Esta é a maneira recomendada de verificar senhas decifradas de uma sessão específica.

Salvar senhas decifradas em um arquivo de saída dedicado usando '-o'

Nesta etapa, você aprenderá como salvar seus resultados de decifração em um arquivo separado. Embora o potfile seja um excelente banco de dados interno para o Hashcat, muitas vezes você precisa de um arquivo de saída limpo para relatórios ou análise. Isso é alcançado usando a opção -o (ou --outfile).

Quando você adiciona -o ao seu comando de ataque, combinado com --show, o Hashcat recuperará os pares hash-senha decifrados do potfile e os gravará no arquivo de saída especificado. Isso é particularmente útil quando os hashes já foram decifrados e existem no potfile, pois você pode extrair e salvar rapidamente esses resultados em um arquivo dedicado.

Vamos executar o comando com as opções --show e -o para salvar os resultados decifrados.

hashcat -a 0 -m 0 --show -o cracked.txt hashes.txt wordlist.txt

O Hashcat verificará instantaneamente o potfile e gravará todos os pares de senha decifrados em cracked.txt.

Agora, vamos visualizar o conteúdo do nosso novo arquivo de saída.

cat cracked.txt

A saída será uma lista limpa dos pares decifrados.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

Este arquivo cracked.txt é agora um registro portátil dos resultados bem-sucedidos deste ataque específico, separado do potfile principal.

Usar '--left' para ver quais hashes não foram decifrados

Nesta etapa, você aprenderá como identificar quais hashes permanecem sem decifrar. Isso é tão importante quanto saber quais você resolveu, pois permite que você concentre seus esforços em ataques subsequentes (por exemplo, usando uma lista de palavras ou modo de ataque diferente). O Hashcat fornece a opção --left para este propósito.

Quando usada com --show, a flag --left exibirá todos os hashes da sua lista de entrada que não estão presentes no potfile.

Vamos ver quais hashes de hashes.txt ainda não foram decifrados.

hashcat -m 0 --show --left hashes.txt

Como todos os hashes em nossa lista foram decifrados, a saída estará vazia (nenhum hash não decifrado permanece).

Você também pode combinar --left com a opção -o para salvar esses hashes restantes em um novo arquivo. Esta é uma prática comum para criar uma lista de trabalho para sua próxima tentativa de decifragem.

hashcat -m 0 -a 0 hashes.txt wordlist.txt --left -o uncracked.txt

Agora, verifique o conteúdo do arquivo uncracked.txt.

cat uncracked.txt

Como todos os hashes foram decifrados, o arquivo uncracked.txt estará vazio.

Resumo

Neste laboratório, você aprendeu as técnicas essenciais para gerenciar e interpretar a saída do Hashcat. Essas habilidades são fundamentais para organizar um fluxo de trabalho de decifragem de senhas eficiente.

Você aprendeu:

  • O papel do hashcat.potfile como um banco de dados automático para todas as senhas decifradas.
  • Como usar hashcat --show para exibir de forma limpa as senhas decifradas de uma lista de hashes específica.
  • Como usar a opção -o para salvar as senhas decifradas em um arquivo de saída dedicado para relatórios e análise.
  • Como usar a opção --left para isolar os hashes não decifrados, permitindo que você concentre seus esforços futuros de forma eficaz.

Ao dominar esses recursos de saída e gerenciamento de arquivos, você pode executar sessões de recuperação de senhas mais organizadas, eficientes e eficazes com o Hashcat.