Introdução
A recuperação de senhas offline compara candidatos com hashes fornecidos em vez de tentar logins. Entender o formato, o conjunto de candidatos e o estado salvo da recuperação é essencial para interpretar sucesso ou falha.
Este laboratório fornece um hash de treinamento intencionalmente fraco e um pequeno dicionário. Você executará uma recuperação limitada por dicionário com John, com seus próprios pot e sessão, e depois exibirá e salvará o resultado vinculado à conta.
Recupere uma senha fraca fornecida offline
Nesta etapa, você usará uma pequena lista de candidatos contra um formato conhecido de hash de treinamento, mantendo o estado da recuperação separado de outros exercícios.
Entre no Kali e selecione o diretório de prática fornecido:
kali
cd /home/labex/project/password-practice
Um hash de senha é uma representação derivada usada para verificar uma senha sem armazená-la em texto simples. Um salt ajuda a fazer com que a mesma senha produza hashes armazenados diferentes. Este exercício fornece uma senha de treinamento intencionalmente fraca representada no formato com salt SHA512-crypt; esse não é o mesmo formato de um resumo SHA-512 bruto.
Leia o arquivo de conta e hash fornecido:
cat hashes.txt
A linha começa com o nome da conta de treinamento, dois-pontos e um hash que começa com $6$. O salt e o valor derivado fazem parte da representação armazenada. Você não precisa gerar nem editar o hash.
Inspecione a pequena lista de candidatos:
cat candidates.txt
Cada linha é uma senha possível. Uma recuperação por dicionário testa esses candidatos offline contra o hash fornecido. Ela não envia tentativas de login a um serviço de rede.
John é uma ferramenta de recuperação de senhas. --format=sha512crypt seleciona explicitamente o formato fornecido, --wordlist=candidates.txt seleciona o arquivo de candidatos e --pot=guided.pot mantém os resultados recuperados em um arquivo pot dedicado. --session=guided-session nomeia a sessão de recuperação desta execução em vez de misturá-la com uma sessão não relacionada:
john --format=sha512crypt --wordlist=candidates.txt --pot=guided.pot --session=guided-session hashes.txt
Aguarde a execução terminar. A saída deve informar uma senha recuperada. Números exatos de desempenho e mensagens de threads variam. Um arquivo pot armazena correspondências entre hashes e senhas recuperados, portanto repetir uma execução com o mesmo pot pode ignorar hashes já recuperados; isso não prova que uma nova tentativa os recuperou novamente.
Uma execução por dicionário pode falhar porque o candidato está ausente, o formato selecionado está errado ou a entrada está malformada. Uma execução malsucedida não prova que uma senha seja impossível de recuperar.
Exiba e preserve o resultado verificado da recuperação
Nesta etapa, você lerá o estado da recuperação com John e salvará um resultado vinculado à conta para revisão.
Permaneça no mesmo diretório de prática. O modo --show do John verifica o arquivo de hashes fornecido em relação ao pot selecionado e exibe resultados de conta/senha recuperados:
john --show --format=sha512crypt --pot=guided.pot hashes.txt
A linha da conta deve incluir training-user:cedar42, seguida por um resumo indicando um hash recuperado e nenhum restante. A senha é deliberadamente fraca e aparece na lista de candidatos fornecida.
Salve essa visão verificada em vez de escrever manualmente uma alegação de que a recuperação teve sucesso:
john --show --format=sha512crypt --pot=guided.pot hashes.txt > recovered.txt
cat recovered.txt
O arquivo salvo deve manter o resultado vinculado à conta e o resumo da recuperação. Mantenha os hashes fornecidos, a lista de candidatos e o pot dedicado juntos para que o resultado possa ser verificado contra os dados exatos de treinamento.
Esses resultados contêm credenciais de treinamento em texto simples. No trabalho real, senhas recuperadas são evidências sensíveis e devem permanecer somente no fluxo autorizado. Este exercício não pede que você teste uma conta real nem reutilize sua senha de demonstração.
Resumo
Você distinguiu hashes, salts e texto simples; executou uma recuperação offline por dicionário com formato explícito; isolou seu pot e sessão; e salvou o resultado produzido pelo modo show. Interpretou a recuperação como evidência sobre um hash fornecido e um conjunto de candidatos específicos.



