Introdução
Uma organização comunitária desativou o portal dos funcionários. Uma cópia sintética da antiga exportação de palavras-passe surgiu num exercício de incidente, enquanto o arquivo atual continua a funcionar. Determine o que os candidatos fornecidos recuperam realmente sem perder a relação entre um registo antigo e uma pessoa.
Vai utilizar o arquivo operacional, executar John the Ripper no Kali Linux e criar um inventário privado de recuperação. Todas as identidades são fictícias. Os contentores de auditoria e do alvo estão isolados e partilham o núcleo de uma VM. Apenas os ficheiros e o serviço fornecidos estão no âmbito; não é necessário instalar nem programar.
Os pré-requisitos são introduzir comandos e reconhecer caminhos. Este laboratório explica as opções e operações de ficheiros utilizadas. Reserve cerca de 45 minutos, incluindo leitura e erros comuns; é uma estimativa do autor. O laboratório guiado seguinte usa um ambiente independente e verifica o impacto atual.
Utilize o arquivo e proteja os resultados
Neste passo, vai observar o acesso normal antes de investigar a exportação. Abra Auditor. O terminal entra no contentor de auditoria Kali como auditor, em /home/auditor/project. O arquivo funciona noutro contentor.
SSH é um protocolo de início de sessão remoto encriptado. Este arquivo aceita palavras-passe e devolve apenas o nome da conta autenticada; não fornece uma shell geral. Comece pela conta de demonstração não sensível. -p seleciona a porta do serviço. As duas opções -o escolhem o ficheiro preparado de chaves do servidor e exigem uma chave correspondente. A chave do anfitrião identifica o servidor; a palavra-passe autentica o utilizador. O whoami final pede o nome da conta remota.
ssh -o UserKnownHostsFile=/etc/reuse/known_hosts -o StrictHostKeyChecking=yes -p 12222 demo@staff-archive whoami
Em demo@staff-archive's password:, introduza welcome-7 e prima Enter. Os caracteres não aparecem. Espere demo e depois o prompt local. Não introduza a palavra-passe como um comando da shell. Após uma gralha, cancele com Ctrl+C e repita o comando SSH. Uma falha de ligação ou da chave do anfitrião não é rejeição de credenciais; não desative a verificação de chaves.
Leia o âmbito autorizado. cat mostra um ficheiro; os caminhos relativos começam no diretório atual. inputs contém os originais de leitura apenas.
cat inputs/scope.tsv
As colunas separadas por tabulações são employee_id, current_login, host e port. Só pode testar estas identidades atuais em staff-archive:12222, além de demo. Não adivinhe outros utilizadores, anfitriões ou listas de candidatos.
As palavras-passe recuperadas são sensíveis mesmo aqui. umask 077 retira o acesso do grupo e dos restantes utilizadores aos novos ficheiros desta sessão. mkdir -m 700 cria um diretório onde apenas o proprietário pode entrar. Execute separadamente:
umask 077
mkdir -m 700 findings
findings é a sua área de escrita. Se já existir ao voltar a ligar, mantenha-a; repita umask 077 numa nova sessão. Use pwd para ver o diretório e cd /home/auditor/project para regressar se falhar um caminho relativo. Preserve todos os ficheiros de entrada, contas do arquivo e palavras-passe atuais durante a auditoria.
Recupere as correspondências do dicionário fornecido
Neste passo, vai testar cinco candidatos contra quatro hashes reais de palavras-passe. Um hash é um valor derivado da palavra-passe num único sentido. A recuperação offline calcula hashes dos candidatos com as definições guardadas e compara-os; não desencripta palavras-passe nem inicia sessão no arquivo.
Permaneça em Auditor, em /home/auditor/project. Leia cada pequena entrada:
cat inputs/legacy.txt
cat inputs/candidates.txt
As linhas antigas têm o formato record_id:hash. $6$ identifica SHA-512 crypt. O valor guardado inclui um salt, que faz palavras-passe iguais produzirem valores guardados diferentes. Mantenha cada identificador de registo associado. Este dicionário sintético diminuto torna o exercício rápido; a sua velocidade não estima a robustez de palavras-passe em produção.
No John, --format=sha512crypt seleciona o formato e --wordlist lê os candidatos fornecidos. Um pot guarda pares hash/palavra-passe recuperados. --pot seleciona um ficheiro privado em vez do predefinido partilhado. --session escolhe a localização dos ficheiros de retoma e registo da execução. OMP_NUM_THREADS=2 limita os threads de trabalho apenas para este comando. Estes caminhos não contêm espaços e não precisam de aspas.
OMP_NUM_THREADS=2 john --format=sha512crypt --wordlist=inputs/candidates.txt --pot=/home/auditor/project/findings/audit.pot --session=/home/auditor/project/findings/recovery inputs/legacy.txt
Espere pelo prompt. São esperados três hashes recuperados; o tempo e a ordem podem variar. Numa repetição, No password hashes left to crack pode significar que o pot já contém os resultados, não que a entrada estava vazia. --show lê os resultados guardados sem iniciar outra recuperação:
john --show --format=sha512crypt --pot=/home/auditor/project/findings/audit.pot inputs/legacy.txt
Espere estas relações, eventualmente noutra ordem:
portal-17:cedar42
portal-23:pebble7
portal-41:birch81
3 password hashes cracked, 1 left
Exporte a saída real. > redireciona a saída padrão para um ficheiro e substitui esse ficheiro de resultados numa repetição. Não altera os hashes.
john --show --format=sha512crypt --pot=/home/auditor/project/findings/audit.pot inputs/legacy.txt > findings/recovered.txt
cat findings/recovered.txt
A exportação tem de conservar os identificadores dos registos e as palavras-passe recuperadas. Após uma gralha num caminho, corrija e repita o comando afetado. Se criou um resultado legível por outros, chmod 600 findings/recovered.txt repõe a leitura e escrita exclusivas do proprietário; a mesma correção serve para outro ficheiro de resultados. Não partilhe o pot nem a exportação em texto simples como resumo do incidente.
Preserve a identidade e a incerteza
Neste passo, vai criar um inventário de recuperação sem palavras-passe. Permaneça em Auditor e leia a antiga lista de funcionários:
cat inputs/legacy-roster.tsv
A lista liga record_id a um employee_id estável e a um nome de apresentação. Duas pessoas chamam-se Morgan Rivera: portal-17 pertence a E101 e portal-41 a E103. Um nome não permite associar com segurança um registo antigo a um início de sessão atual.
Aqui, recovered significa que um hash original correspondeu a um candidato fornecido. not-recovered significa que nenhum candidato correspondeu nesta execução limitada e concluída. Não significa forte, seguro, ausente ou não reutilizado. A aceitação pelo serviço atual ainda é desconhecida para todos os registos.
Crie findings/recovery.tsv com as colunas record_id, employee_id, recovery. printf interpreta \t como tabulação e \n como mudança de linha. As aspas simples preservam estas sequências até serem lidas por printf; > cria ou substitui este inventário sem palavras-passe.
printf 'record_id\temployee_id\trecovery\nportal-17\tE101\trecovered\nportal-23\tE102\trecovered\nportal-41\tE103\trecovered\nportal-58\tE104\tnot-recovered\n' > findings/recovery.tsv
cat findings/recovery.tsv
Verifique que os quatro registos surgem uma vez com os identificadores da lista: três recuperados e um por resolver para além deste orçamento. Para corrigir um valor, altere o texto de printf e execute novamente. O pot e a exportação privados permitem prosseguir o trabalho autorizado; este inventário comunica o resultado sem revelar palavras-passe.
Resumo
Utilizou um serviço SSH operacional, recuperou três palavras-passe antigas sintéticas com John e preservou as identidades originais. Os resultados privados e o inventário sem palavras-passe distinguem correspondências offline bem-sucedidas dos limites de um dicionário esgotado. Ainda não foi demonstrado que qualquer palavra-passe recuperada funcione numa conta atual de funcionário. O laboratório guiado seguinte faz essa avaliação separada com pares exatos autorizados.



