Identificar Tipos de Hash Desconhecidos

Kali LinuxBeginner
Pratique Agora

Introdução

Nos campos da cibersegurança e forense digital, você frequentemente encontrará hashes criptográficos. Um hash é uma string de bytes de tamanho fixo que resulta de uma função matemática unidirecional aplicada a um bloco arbitrário de dados. Antes de tentar quebrar um hash de senha, você deve primeiro identificar o algoritmo usado para criá-lo, como MD5, SHA-1 ou NTLM.

Neste laboratório, você aprenderá a habilidade essencial de identificar tipos de hash desconhecidos. Você usará ferramentas comuns de linha de comando disponíveis no Linux para analisar uma lista de hashes de exemplo e determinar seus algoritmos correspondentes. Este é um primeiro passo crítico para qualquer atividade de quebra de senha.

Reunir uma Lista de Vários Hashes de Exemplo

Nesta etapa, você criará um arquivo de texto contendo vários tipos diferentes de hashes. Este arquivo servirá como entrada para as ferramentas de identificação nas etapas subsequentes. Cada algoritmo de hashing produz um hash com um comprimento e conjunto de caracteres específicos, que é como as ferramentas de identificação podem distingui-los.

Primeiro, use o comando cat com um Here Document (<<EOF) para criar um arquivo chamado hashes.txt no diretório ~/project. Este arquivo conterá três tipos comuns de hash: MD5, SHA-1 e NTLM.

Execute o seguinte comando no seu terminal:

cat << EOF > hashes.txt
d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858
EOF

Após criar o arquivo, você pode verificar seu conteúdo usando o comando cat novamente.

cat hashes.txt

Você deverá ver a seguinte saída, confirmando que os três hashes foram salvos no arquivo:

d41d8cd98f00b204e9800998ecf8427e
da39a3ee5e6b4b0d3255bfef95601890afd80709
32ed87bd5fdc5e204e2620a05a069858

Agora que você tem sua lista de hashes, está pronto para começar a identificá-los.

Use a Ferramenta hashid no Kali

Nesta etapa, você usará a ferramenta hashid para analisar os hashes que salvou no arquivo hashes.txt. hashid é uma utilidade de linha de comando que identifica diferentes tipos de hash analisando seu comprimento e composição de caracteres. É uma ferramenta simples, porém poderosa, para a fase inicial de análise de hash.

Para usar o hashid, você simplesmente fornece o arquivo contendo os hashes como um argumento. A ferramenta processará cada linha do arquivo e tentará identificar o hash nessa linha.

Execute o hashid no seu arquivo hashes.txt:

hashid hashes.txt

A ferramenta analisará cada hash e imprimirá suas descobertas no terminal. A saída mostrará a string do hash, seguida por uma lista de possíveis algoritmos de hash.

--File 'hashes.txt'--
d41d8cd98f00b204e9800998ecf8427e
[+] MD5
[+] Domain Cached Credentials (DCC)
da39a3ee5e6b4b0d3255bfef95601890afd80709
[+] SHA-1
[+] RipeMD-160
32ed87bd5fdc5e204e2620a05a069858
[+] NTLM
[+] MD4
[+] MD5
--End of file 'hashes.txt'--

Como você pode ver, o hashid fornece uma ou mais correspondências potenciais para cada hash. Na próxima etapa, você aprenderá como interpretar essa saída.

Analisar a Saída do hashid

Nesta etapa, você aprenderá a interpretar a saída do hashid. Embora a ferramenta forneça uma lista de possibilidades, você geralmente precisa usar o contexto ou uma análise adicional para restringir o tipo de hash correto.

Vamos analisar a saída da etapa anterior:

  • Para o primeiro hash (d41d8cd98f00b204e9800998ecf8427e), o hashid sugere MD5 e Domain Cached Credentials (DCC). MD5 é o tipo mais comum para um hash com este formato.
  • Para o segundo hash (da39a3ee5e6b4b0d3255bfef95601890afd80709), as sugestões são SHA-1 e RipeMD-160. SHA-1 é uma escolha muito comum.
  • Para o terceiro hash (32ed87bd5fdc5e204e2620a05a069858), o hashid lista NTLM, MD4 e MD5. Em ambientes Windows, NTLM é um candidato muito provável.

O hashid também pode mostrar o código de modo correspondente usado pela ferramenta de quebra de senhas Hashcat. Para fazer isso, use a flag -m seguida por um único hash. Vamos verificar o primeiro hash para o seu modo Hashcat.

hashid -m d41d8cd98f00b204e9800998ecf8427e

A saída agora incluirá o número do modo Hashcat para cada tipo de hash potencial.

--Hash 'd41d8cd98f00b204e9800998ecf8427e'--
[+] MD5 [HC: 0]
[+] Domain Cached Credentials (DCC) [HC: 1100]

Isso informa que, para o Hashcat, MD5 corresponde ao modo -m 0. Esta informação é crucial para configurar uma sessão de quebra.

Use uma Ferramenta Online de Análise de Hash como Segunda Opinião

Nesta etapa, você usará outra ferramenta de linha de comando, hash-identifier, para obter uma segunda opinião sobre os tipos de hash. Em qualquer análise, é uma boa prática usar várias ferramentas para verificar suas descobertas, pois ferramentas diferentes podem ter bancos de dados e algoritmos distintos.

hash-identifier é um script interativo em Python. Você executa o comando e ele solicita que você insira o hash que deseja identificar.

Primeiro, inicie a ferramenta digitando seu nome no terminal:

hash-identifier

Você verá um prompt solicitando o hash.

   #########################################################################
   ##     __  __                     __           __    _           _   _   #
   ##    / / / /___  ____ ___  ___  / /_  _______/ /_  (_)_________| | / /   #
   ##   / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ __ \/ / / ___/ ___/  |/ /    #
   ##  / __  / /_/ / / / / / /  __/ /_/ / /__/ / / / / / /__/ /  / /|  /     #
   ## /_/ /_/\____/_/ /_/ /_/\___/_.___/\___/_/ /_/_/_/\___/_/  /_/ |_/      #
   ##                                                                       #
   ##                                by c0decracker                         #
   #########################################################################

 HASH:

Agora, copie um dos hashes do seu arquivo hashes.txt, por exemplo, o segundo (da39a3ee5e6b4b0d3255bfef95601890afd80709), cole-o no prompt e pressione Enter.

A ferramenta analisará o hash e fornecerá sua conclusão.

 HASH: da39a3ee5e6b4b0d3255bfef95601890afd80709

Possible Hashs:
[+] SHA-1
[+] RipeMD-160

Least Possible Hashs:

A saída confirma a descoberta do hashid de que o hash é muito provavelmente SHA-1. Você pode pressionar Ctrl+C para sair da ferramenta hash-identifier.

Combinar o Tipo de Hash Identificado com o Código -m do Hashcat

Nesta etapa final, você aprenderá a encontrar o código de modo (-m) correto para usar com o Hashcat, a ferramenta de recuperação de senhas mais rápida do mundo. Embora hashid -m possa fornecer essa informação, você também pode encontrá-la diretamente no extenso menu de ajuda do Hashcat. Isso é útil para confirmar o modo ou encontrar códigos para tipos de hash menos comuns.

O Hashcat exige que você especifique o tipo de hash usando um código numérico com a flag -m. Para encontrar o código correto, você pode usar grep para pesquisar a saída de ajuda do Hashcat.

Vamos encontrar o modo para MD5. Execute o seguinte comando:

hashcat --help | grep "MD5"

A saída será uma longa lista de todos os modos relacionados ao MD5. Procure pela entrada de MD5 simples.

...
      0 | MD5                                            | Raw Hash
...

Como você pode ver, o modo para um hash MD5 padrão é 0.

Agora, vamos fazer o mesmo para SHA-1:

hashcat --help | grep "SHA-1"
...
    100 | SHA-1                                          | Raw Hash
...

O modo para SHA-1 é 100.

Finalmente, vamos encontrar o modo para NTLM:

hashcat --help | grep "NTLM"
...
   1000 | NTLM                                           | Raw Hash
...

O modo para NTLM é 1000. Ao identificar corretamente o tipo de hash e seu modo Hashcat correspondente, você está agora preparado para configurar um ataque de quebra de senha.

Resumo

Neste laboratório, você aprendeu o processo fundamental de identificação de tipos de hash desconhecidos, um pré-requisito crítico para a quebra de senhas. Você começou criando um arquivo com vários exemplos de hashes. Em seguida, utilizou duas poderosas ferramentas de linha de comando, hashid e hash-identifier, para analisar esses hashes e determinar seus algoritmos prováveis. Finalmente, você aprendeu a cruzar o tipo de hash identificado com a extensa lista de modos do Hashcat para encontrar o código -m correto para uma sessão de cracking. Essa habilidade é indispensável para qualquer profissional de cibersegurança envolvido em testes de penetração ou forense digital.