Introdução
Hashcat é uma ferramenta poderosa e popular para recuperação de senhas. Quebrar senhas pode ser um processo muito demorado, às vezes levando horas, dias ou até semanas. Por causa disso, é crucial saber como gerenciar essas tarefas de longa duração. Você pode precisar pausar uma tarefa para liberar recursos do sistema, ou pode enfrentar um desligamento inesperado do sistema. Sem um gerenciamento de sessão adequado, você teria que iniciar todo o processo do zero, desperdiçando tempo valioso.
Neste laboratório, você aprenderá os fundamentos do gerenciamento de sessões no Hashcat. Você praticará o início de uma sessão nomeada, pausando e retomando-a interativamente, e parando e restaurando-a usando os recursos de gerenciamento de sessão integrados do Hashcat. Essas habilidades são essenciais para qualquer uso prático do Hashcat.
Iniciar uma Sessão de Quebra de Senha de Longa Duração
Nesta etapa, você iniciará uma tarefa de quebra de senha e lhe dará um nome de sessão específico. Nomear uma sessão é o primeiro e mais importante passo para o gerenciamento, pois instrui o Hashcat a rastrear e salvar o progresso desta tarefa específica.
Usaremos um ataque de dicionário básico. A estrutura do comando utiliza várias flags:
-m 0: Especifica o tipo de hash.0corresponde a MD5.-a 0: Especifica o modo de ataque.0corresponde a um ataque direto (dicionário).--session <name>: Atribui um nome à sessão atual. Isso é crucial para pausar e retomar.
Primeiro, certifique-se de estar no diretório ~/project, onde o script de configuração criou os arquivos necessários (hashes.txt e wordlist.txt).
Agora, execute o seguinte comando para iniciar uma sessão de quebra chamada my_session:
hashcat -m 0 -a 0 hashes.txt wordlist.txt --session my_session
Após executar o comando, o Hashcat inicializará e exibirá uma tela de status no seu terminal. Esta tela fornece informações em tempo real sobre o progresso da quebra.
hashcat (v6.2.x) starting...
...
Session..........: my_session
Status...........: Running
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#*.........: ...
...
Progress.........: 123456/1000001 (12.34%)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Observe a linha Session..........: my_session, que confirma o nome da nossa sessão. O Status é Running (Em Execução), e a barra de Progress (Progresso) está avançando. Deixe o processo rodar por alguns momentos antes de prosseguir para a próxima etapa.
Pausar a Sessão Pressionando 'p'
Nesta etapa, você aprenderá como pausar uma sessão ativa do Hashcat. Isso é útil se você precisar alocar temporariamente os recursos do seu computador para outra tarefa sem perder o progresso da quebra de senha.
O Hashcat fornece um menu interativo na parte inferior da sua tela de status. Você pode ver as opções disponíveis: [s]tatus [p]ause [r]esume [b]ypass [q]uit.
Para pausar a sessão, basta pressionar a tecla p no seu teclado enquanto a janela do terminal do Hashcat estiver ativa. Você não precisa pressionar Enter.
Pressione p agora.
Você verá o campo Status na tela mudar imediatamente de Running (Em Execução) para Paused (Pausado).
...
Session..........: my_session
Status...........: Paused
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Enquanto a sessão está pausada, o Hashcat para todo o processamento e o uso da GPU/CPU para a tarefa cai para zero. No entanto, o aplicativo permanece ativo no seu terminal, aguardando novas instruções.
Retomar a Sessão Pressionando 'r'
Nesta etapa, você retomará a sessão que acabou de pausar.
Assim como você usou a tecla p para pausar, pode usar a tecla r para retomar. Isso instruirá o Hashcat a continuar o processo de quebra a partir do ponto exato onde foi pausado.
Com o terminal do Hashcat ainda ativo, pressione a tecla r.
O campo Status mudará de Paused (Pausado) de volta para Running (Em Execução), e você verá os indicadores de Progress (Progresso) e Speed (Velocidade) tornarem-se ativos novamente.
...
Session..........: my_session
Status...........: Running
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
A sessão agora está rodando novamente, e nenhum progresso foi perdido. Este ciclo de pausa/retomada pode ser repetido quantas vezes forem necessárias.
Parar a Sessão e Entender o Arquivo .restore
Nesta etapa, você aprenderá como parar uma sessão completamente e inspecionar o arquivo que o Hashcat usa para salvar seu estado. Isso é diferente de pausar; parar encerra o aplicativo inteiramente. É isso que você faria se precisasse desligar seu computador.
Para parar a sessão de forma limpa, pressione a tecla q (de quit - sair).
Pressione q agora.
O Hashcat irá parar o processo de quebra e sair, retornando você ao prompt de comando.
Quando você usa uma sessão nomeada, o Hashcat salva automaticamente seu progresso em um arquivo de restauração. Este arquivo tem o mesmo nome da sua sessão com a extensão .restore.
Vamos verificar se este arquivo foi criado. Liste os arquivos no seu diretório atual:
ls -l
Você deverá ver my_session.restore na lista de arquivos.
-rw-r--r-- 1 labex labex 28 Jul 10 10:30 hashes.txt
-rw-r--r-- 1 labex labex 48 Jul 10 10:32 my_session.restore
-rw-r--r-- 1 labex labex 8888898 Jul 10 10:30 wordlist.txt
Este arquivo contém todas as informações que o Hashcat precisa para retomar a sessão mais tarde, incluindo os argumentos originais da linha de comando e o último candidato a senha que foi testado. Você pode visualizar seu conteúdo com o comando cat:
cat my_session.restore
A saída será uma série de linhas contendo a configuração e o progresso da sessão. Este arquivo é a chave para as poderosas capacidades de gerenciamento de sessão do Hashcat.
Restaurar uma Sessão Anterior com as Flags --session e --restore
Nesta etapa final, você aprenderá como restaurar uma sessão que foi completamente parada. Isso é extremamente útil para continuar o trabalho após uma reinicialização ou após parar intencionalmente uma tarefa de longa duração.
Para restaurar uma sessão, você usa a flag --restore juntamente com a flag --session para especificar qual sessão retomar. Uma grande conveniência deste método é que você não precisa fornecer novamente o tipo de hash original, o modo de ataque ou os caminhos dos arquivos. O Hashcat lê todas essas informações do arquivo .restore.
Execute o seguinte comando para restaurar my_session:
hashcat --session my_session --restore
O Hashcat iniciará novamente e carregará automaticamente o estado do arquivo my_session.restore. Você verá a tela de status aparecer e, o mais importante, o Progress (Progresso) começará de onde parou, não do início.
...
Session..........: my_session
Status...........: Running
...
Progress.........: 123456/1000001 (12.34%) -> (Resuming from where it was stopped)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
Você restaurou com sucesso uma sessão parada. Agora você pode deixá-la rodar até a conclusão ou pressionar q para sair novamente.
Resumo
Neste laboratório, você aprendeu as habilidades essenciais para gerenciar sessões de cracking no Hashcat. Agora você sabe como lidar com tarefas de longa duração sem medo de perder o progresso devido a interrupções.
Você aprendeu a:
- Iniciar uma sessão nomeada usando a flag
--session, que é a base do gerenciamento de sessões. - Controlar interativamente uma sessão em execução pressionando
ppara pausar erpara retomar. - Parar uma sessão de forma limpa com
qe entender que o Hashcat cria automaticamente um arquivo.restorepara salvar o estado. - Restaurar uma sessão completamente parada usando as flags
--sessione--restore, permitindo que você continue o trabalho de forma eficiente.
Dominar esses recursos é fundamental para usar o Hashcat de forma eficaz em qualquer tarefa de quebra de senha não trivial.


