Introdução
Hashcat é uma ferramenta poderosa e popular para recuperação de senhas. Uma de suas principais funcionalidades para operação eficiente é o "potfile". O potfile (abreviação de "pot of gold file" - arquivo do pote de ouro) é um arquivo onde o hashcat armazena automaticamente hashes que foram recuperados com sucesso e seus textos planos correspondentes. Isso impede que o hashcat desperdice tempo e recursos tentando recuperar novamente hashes que já foram resolvidos em sessões anteriores.
Neste laboratório, você aprenderá os fundamentos do gerenciamento de hashes recuperados usando o potfile do hashcat. Você aprenderá como localizar o potfile, visualizar seu conteúdo e usar flags específicas do hashcat para consultá-lo ou até mesmo ignorá-lo quando necessário.
Compreender o Propósito do Potfile
Nesta etapa, você aprenderá sobre o papel fundamental do potfile do hashcat.
O potfile é uma das funcionalidades mais importantes do hashcat para a eficiência. Cada vez que o hashcat recupera com sucesso um hash, ele salva o resultado no potfile. O propósito principal disso é construir um banco de dados de hashes resolvidos.
Antes de iniciar uma nova sessão de recuperação, o hashcat verifica os hashes em seu arquivo de entrada contra as entradas no potfile. Se um hash já estiver presente no potfile, o hashcat o ignorará, exibindo o status "Removed" (Removido). Isso garante que você não desperdice ciclos valiosos de CPU/GPU em trabalhos que já foram realizados.
O formato padrão para as entradas no potfile é simples e eficaz:
HASH:PLAINTEXT
Esta etapa é puramente conceitual para construir seu entendimento. Não há comandos para executar. Você pode prosseguir para a próxima etapa para descobrir onde este arquivo está localizado.
Localizar o hashcat.potfile Padrão
Nesta etapa, você localizará o potfile padrão criado pelo hashcat.
Por padrão, o hashcat não cria o potfile no seu diretório de trabalho atual. Em vez disso, ele o coloca em uma pasta dedicada do hashcat dentro do diretório pessoal do usuário para mantê-lo persistente entre diferentes sessões e projetos de recuperação. A localização padrão em um sistema Linux é ~/.local/share/hashcat/.
Vamos verificar a existência do arquivo. Use o comando ls -l para listar o conteúdo do diretório do hashcat.
ls -l ~/.local/share/hashcat/
Você deverá ver o hashcat.potfile na saída, juntamente com outros arquivos potenciais relacionados à sessão.
total 4
-rw-r--r-- 1 labex labex 42 May 20 10:30 hashcat.potfile
Agora que você localizou o arquivo, a próxima etapa será visualizar seu conteúdo.
Visualizar o Conteúdo do Potfile
Nesta etapa, você inspecionará o conteúdo do hashcat.potfile para ver como os hashes recuperados são armazenados.
Como o potfile é um arquivo de texto simples, você pode usar qualquer visualizador de texto padrão da linha de comando como cat, less ou more para ver o que há dentro. Para um arquivo pequeno como o nosso, cat é perfeito.
Execute o seguinte comando no seu terminal para exibir o conteúdo do potfile padrão:
cat ~/.local/share/hashcat/hashcat.potfile
A saída mostrará o hash que foi recuperado durante a configuração do laboratório, seguido por dois pontos (:), e depois a senha em texto simples.
5f4dcc3b5aa765d61d8327deb882cf99:password
Este formato simples HASH:PLAINTEXT torna o arquivo fácil de ler e analisar, tanto para humanos quanto para o próprio hashcat.
Usar a Flag --show para Consultar o Potfile
Nesta etapa, você aprenderá a usar a flag --show para consultar eficientemente o potfile em busca de hashes recuperados.
Embora você possa usar manualmente cat e grep no potfile, o hashcat oferece uma maneira muito mais elegante e integrada de verificar se os hashes de um determinado arquivo já foram recuperados. A flag --show é usada para esse fim. Ela recebe um arquivo de hash como entrada e exibe os textos simples recuperados para quaisquer hashes encontrados no potfile.
Vamos usá-la para verificar nosso arquivo hashes.txt.
hashcat -m 0 --show hashes.txt
Vamos detalhar o comando:
hashcat: O próprio programa.-m 0: Especifica o modo de hash.0é para MD5, que é o tipo de hash em nosso arquivohashes.txt. Isso é necessário para que--showfuncione corretamente.--show: Esta flag informa ao hashcat para realizar uma operação de consulta em vez de uma sessão de recuperação.hashes.txt: O arquivo de entrada contendo os hashes que você deseja verificar.
O comando produzirá a seguinte saída, que é idêntica ao conteúdo do potfile porque nosso hash foi encontrado.
5f4dcc3b5aa765d61d8327deb882cf99:password
Este comando é extremamente útil quando você tem uma lista grande de hashes e deseja ver rapidamente quais foram recuperados anteriormente.
Remover Hashes Recuperados da Entrada com --potfile-disable
Nesta etapa, você aprenderá como o hashcat evita automaticamente a recuperação de hashes e como você pode substituir esse comportamento com a flag --potfile-disable.
Primeiro, vamos ver o que acontece quando você tenta executar o mesmo trabalho de recuperação novamente. Como o hash já está no potfile, o hashcat deve reconhecer isso e terminar instantaneamente.
hashcat -m 0 -a 0 hashes.txt wordlist.txt --force
Observe a saída. O hashcat relatará que todos os hashes foram encontrados no potfile e não os processará novamente.
...
All hashes found in potfile!
NOTE: All hashes loaded from file hashes.txt are already cracked and were skipped.
To re-crack these hashes, you need to remove them from the potfile.
...
Agora, e se você quiser recuperar o hash novamente, talvez para fins de benchmarking ou para testar um modo de ataque diferente? Você pode usar a flag --potfile-disable. Isso informa ao hashcat para ignorar completamente o potfile tanto para leitura quanto para escrita.
Execute o comando novamente, mas desta vez adicione a flag:
hashcat -m 0 -a 0 hashes.txt wordlist.txt --force --potfile-disable
Desta vez, o hashcat realizará a operação completa de recuperação porque está ignorando o potfile. Você verá o progresso do status e um status "Cracked" no final.
...
Session..........: hashcat
Status...........: Cracked
...
Cracked (1/1) hashes, (1/1) digests
...
Usar --potfile-disable é uma ferramenta específica para situações específicas. Na maioria dos casos, você desejará aproveitar o potfile para economizar tempo.
Resumo
Neste laboratório, você aprendeu as habilidades essenciais para gerenciar hashes recuperados com o potfile do hashcat.
Agora você entende que o potfile é um recurso crucial para eficiência, atuando como um banco de dados de hashes resolvidos. Você aprendeu a:
- Localizar o potfile padrão em
~/.local/share/hashcat/hashcat.potfile. - Visualizar seu conteúdo usando comandos padrão do Linux como
cat. - Consultar o potfile para hashes específicos de um arquivo de entrada usando a flag
--show. - Ignorar a funcionalidade do potfile para casos de uso específicos com a flag
--potfile-disable.
Dominar o uso do potfile é um passo fundamental para se tornar um usuário proficiente do hashcat, permitindo que você execute tarefas de recuperação de senhas mais eficazes e eficientes.


