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
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.