Pular para o conteúdo principal

hashcat

O Hashcat é uma ferramenta poderosa de quebra de senhas que suporta diversos algoritmos de hash e ataques de força bruta. Nesta documentação, apresentamos exemplos de uso do Hashcat para concatenar wordlists compactadas e realizar ataques de força bruta em hashes Linux.


Concatenar wordlists compactadas e o Hashcat

Para utilizar uma wordlist compactada com o Hashcat, é possível concatená-la diretamente na linha de comando, sem a necessidade de descompactá-la previamente. Veja o exemplo abaixo, onde estamos usando a wordlist rockyou.txt.gz e o hash mode -m0 para hashes MD5.

zcat /usr/share/wordlists/rockyou.txt.gz | hashcat -m0 hashes_md5.txt

Força bruta em hash Linux md5crypt

O exemplo abaixo demonstra como realizar um ataque de força bruta em um hash Linux md5crypt. Utilizamos o hash mode -m500 para especificar que estamos lidando com esse tipo de hash, o ataque mode -a0 para indicar que usaremos uma wordlist e a flag -o cracked.txt para salvar as senhas encontradas no arquivo cracked.txt. Além disso, a opção -O é usada para otimizar o hardware:

hashcat -m500 -a0 -o cracked.txt hash /usr/share/wordlists/sqlmap.txt -O

Conteúdo do arquivo hash:

$ cat hash
$1$t2gEU.Q/$vyBxDLNgISKrdezaIS3.7/

Força bruta em hash Linux sha512crypt

Aqui, demonstramos um ataque de força bruta em um hash Linux sha512crypt. Utilizamos o hash mode -m1800 para especificar o tipo de hash SHA-512, o ataque mode -a0 para indicar o uso de uma wordlist e a flag -o cracked.txt para salvar as senhas encontradas no arquivo cracked.txt. Novamente, a opção -O é usada para otimizar o hardware.

hashcat -m1800 -a0 -o cracked.txt hash '/mnt/Dados/weakpass_2a' -O

Conteúdo do arquivo hash:

$ cat hash
$6$LBh9do8.BDzrV0zM$vlP9JZJtfidW3RI3kredxhKXvBuRT4p/TU3B8qti7oiXCiW5p1ARj2zyCHGkIOoGG0vOTNr0JQqGtdObkwtRP1

Força bruta em hash Linux yescrypt

Caso deseje criar um hash para fins de teste:

echo password | mkpasswd -s -m yescrypt

Prepare o hash, com o hash completo antes do * e o salto logo em seguida:

# antes
$y$j9T$uxVFACnNnGBakt9MLrpFf0$SmbSZAge5oa1BfHPBxYGq3mITgHeO/iG2Mdfgo93UN0
# depois
$y$j9T$uxVFACnNnGBakt9MLrpFf0$SmbSZAge5oa1BfHPBxYGq3mITgHeO/iG2Mdfgo93UN0*$y$j9T$uxVFACnNnGBakt9MLrpFf0$

Comando conveniente pra fazer esse ajuste:

awk -F'$' '{
printf "$%s$%s$%s$%s*$%s$%s$%s$\n", $2, $3, $4, $5, $2, $3, $4
}' <<< '$y$j9T$uxVFACnNnGBakt9MLrpFf0$SmbSZAge5oa1BfHPBxYGq3mITgHeO/iG2Mdfgo93UN0'

Faço o download do Hashcat Python plugin já alterado para o yescrypt e copie para o diretório Python do Hashcat:

Link: /files/python/generic_hash_mp.py

sudo cp <python_file> /usr/share/hashcat/Python/generic_hash_mp.py

Instale a dependência e inicie o processo de força bruta:

pip install pyescrypt
hashcat -m 73000 hash /usr/share/wordlists/rockyou.txt
informação

Você pode encontrar mais informações sobre quebra de hashs customizados e como acoplar o seu código Python ao Hashcat como plugin nos links abaixo:

Confira também a quebra com John The Ripper: Força bruta em hash yescrypt

Tipos de algoritmos de hash suportados pelo Hashcat

O Hashcat oferece suporte a diversos algoritmos de hash. Abaixo estão alguns dos principais tipos utilizados para criptografar senhas do usuário no sistema operacional Linux.

  • $1: Algoritmo de hash MD5 (-m500).
  • $2: Algoritmo de hash Blowfish (-m3200).
  • $2a: Algoritmo de hash eksblowfish.
  • $5: Algoritmo de hash SHA-256 (-m1400).
  • $6: Algoritmo de hash SHA-512 (-m1800).
  • $y: Algoritmo de hash yescrypt.

Esses códigos são utilizados no hash mode do Hashcat para especificar o tipo de hash com o qual se está trabalhando. Ao executar ataques de força bruta, é importante selecionar o código correto para o tipo de hash a ser quebrado.

Com estas informações e exemplos, você pode começar a utilizar o Hashcat de forma mais eficiente e compreender melhor os tipos de ataques possíveis. Lembre-se sempre de utilizar a ferramenta de forma ética e legal, respeitando as políticas de uso e privacidade.