Como quebrar senhas usando a ferramenta Hashcat?

Em hackers éticos e testes de penetração, a quebra de senha é crucial para obter acesso a um sistema ou servidor.

Em sistemas e bancos de dados, as senhas raramente são salvas em formato de texto simples.

As senhas são sempre criptografadas antes de serem armazenadas no banco de dados e o hash é comparado durante o processo de verificação.

Dependendo da criptografia empregada, diferentes sistemas armazenam hashes de senha de maneiras diferentes. E se você tiver hashes, poderá quebrar qualquer senha facilmente.

E neste artigo, exploraremos como quebrar hashes de senha usando uma ferramenta de linha de comando útil e excelente Hashcat.

Então vamos começar.

Mas antes disso…

O que é uma função Hash?

Hashing é o processo de converter um texto de entrada normal em uma string de texto de tamanho fixo usando alguma função matemática que é conhecida como Função Hash. Qualquer texto, independentemente do tamanho, pode ser transformado em uma combinação aleatória de números inteiros e alfabetos usando um algoritmo.

  • A entrada refere-se à mensagem que será hash.
  • A função de hash é o algoritmo de criptografia como MD5 e SHA-256 que converte uma string em um valor de hash.
  • E, finalmente, o valor de hash é o resultado.

O que é Hashcat?

Hashcat é a ferramenta de recuperação de senha mais rápida. Ele foi projetado para quebrar as senhas de alta complexidade em um curto período de tempo. E essa ferramenta também é capaz de ataques de lista de palavras e força bruta.

  Como excluir suas informações pessoais de sites People-Finder

Hashcat tem duas variantes. Baseado em CPU e GPU (Graphical Processing Unit). A ferramenta baseada em GPU pode quebrar os hashes em menos tempo que a CPU. Você pode verificar os requisitos do driver da GPU em seu site oficial.

Características

  • Gratuito e de código aberto
  • Mais de 200 variações de tipo de hash podem ser implementadas.
  • Suporta vários sistemas operacionais como Linux, Windows e macOS.
  • Multiplataformas como suporte a CPU e GPU estão disponíveis.
  • Vários hashes podem ser quebrados ao mesmo tempo.
  • Arquivos hex-salt e hex-charset são suportados, juntamente com o ajuste automático de desempenho.
  • Um sistema de benchmarking integrado está disponível.
  • Redes de cracking distribuídas podem ser suportadas usando sobreposições.

E você pode ver outros recursos também no site deles.

Instalação do Hashcat

Primeiro, certifique-se de que seu sistema Linux esteja atualizado com os programas e ferramentas mais recentes.

Para isso, abra um terminal e digite:

$ sudo apt update && sudo apt upgrade

Hashcat geralmente é pré-instalado no Kali Linux. Você pode encontrar a ferramenta na seção de quebra de senha. Mas se você precisar instalá-lo manualmente em qualquer distribuição Linux, digite o seguinte comando no terminal.

$ sudo apt-get install hashcat

Uso da ferramenta

Para começar com o Hashcat, precisaremos de alguns hashes de senha. Se você não tiver um hash para quebrar, criaremos alguns hashes primeiro.

Para criar hashes usando a linha de comando, basta seguir o formato abaixo.

echo -n "input" | algorithm | tr -d "-">>outputfiename

Por exemplo, você pode ver que transformei algumas palavras em hashes usando o algoritmo md5 abaixo.

┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "etechpt.com" | md5sum | tr -d "-">>crackhash.txt
echo -n "password123" | md5sum | tr -d "-">>crackhash.txt
echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt
echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt
echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

E a saída será salva no arquivo crackhash.txt.

  Como encontrar o índice de um item em listas do Python

Agora vamos verificar os hashes que foram salvos no arquivo fornecido.

┌──(root💀kali)-[/home/writer/Desktop]
└─# cat crackhash.txt

066d45208667198296e0688629e28b14
482c811da5d5b4bcd497ffeaa98491e3
72a2bc267579aae943326d17e14a8048
2192d208d304b75bcd00b29bc8de5024
caae8dd682acb088ed63e2d492fe1e13

Você pode ver, agora temos alguns hashes para quebrar. Este é o procedimento para criar um hash usando o algoritmo de sua escolha.

O próximo passo é iniciar uma ferramenta Hashcat em sua máquina Linux. Basta usar o seguinte comando para usar o Hashcat.

$ hashcat --help

Ele mostrará todas as opções que você precisa saber para executar a ferramenta. No terminal, você pode encontrar todos os modos de ataque e hash.

A forma geral do comando é

$ hashcat -a num -m num hashfile wordlistfile

Aqui o ‘num’ representa um ataque específico e um modo de hash a ser usado. Se você rolar o terminal, poderá encontrar os números exatos para cada modo de ataque e hash, como para md4 – o número é 0 e para o algoritmo sha256 – o número é 1740.

A lista de palavras que vou usar é a lista de palavras rockyou. Você pode encontrar facilmente essa lista de palavras no caminho /usr/share/wordlists.

Você pode até usar o comando locate para encontrar esse caminho da lista de palavras.

┌──(root💀kali)-[/home/writer]
└─# locate rockyou.txt

E, finalmente, para quebrar os hashes usando o arquivo wordlist, use o seguinte comando.

$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

Depois de executar este comando, você pode obter um erro de tempo de execução ( erro de exceção de comprimento de token ) que pode ser resolvido facilmente.

  7 rastreadores de preços da Amazon para comprar na hora certa

Para resolver isso, salve cada hash separadamente em um arquivo diferente. Este erro ocorre se você tiver uma baixa velocidade de CPU ou GPU. Se o seu computador tiver um processador de alta velocidade, você pode facilmente quebrar todos os hashes ao mesmo tempo como um único arquivo.

Então depois de corrigir o erro e tudo mais, o resultado será assim.

┌──(root💀kali)-[/home/writer/Desktop]
└─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt
hashcat (v6.1.1) starting...

OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
=============================================================================================================================
* Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Dictionary cache built:
* Filename..: rockyou.txt
* Passwords.: 14344405
* Bytes.....: 139921671
* Keyspace..: 14344398
* Runtime...: 1 sec

8276b0e763d7c9044d255e025fe0c212: [email protected]
                                                 
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 8276b0e763d7c9044d255e025fe0c212
Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs)
Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs)
Guess.Base.......: File (rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4096/14344398 (0.03%)
Rejected.........: 0/4096 (0.00%)
Restore.Point....: 0/14344398 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> pampam

Started: Sun Dec 12 08:06:13 2021
Stopped: Sun Dec 12 08:06:16 2021

No resultado acima, após os detalhes do cache do dicionário, você pode notar que o hash foi quebrado e a senha foi revelada.

Conclusão

Espero que você tenha entendido melhor como usar o Hashcat para quebrar senhas.

Você também pode estar interessado em conhecer as várias ferramentas de força bruta para testes de penetração e algumas das melhores ferramentas de pentesting.