Introdução
Hashcat é uma ferramenta de recuperação de senhas renomada e poderosa, amplamente utilizada para quebrar hashes de senhas. Uma de suas funcionalidades mais flexíveis é o ataque híbrido, que combina a velocidade de um ataque de lista de palavras (wordlist attack) com a minúcia de um ataque de força bruta (brute-force) ou máscara (mask attack). Este método é particularmente eficaz contra senhas que são baseadas em uma palavra comum, mas modificadas com caracteres anexados ou prefixados, como números ou símbolos.
Neste laboratório, você aprenderá a usar as capacidades de ataque híbrido do Hashcat. Você explorará os dois modos híbridos principais: lista de palavras + máscara (wordlist+mask) e máscara + lista de palavras (mask+wordlist). Ao final deste laboratório, você terá experiência prática na configuração e execução desses ataques para quebrar hashes de senhas de amostra.
Diferenciar Entre Ataque Híbrido Lista de Palavras+Máscara e Máscara+Lista de Palavras
Nesta etapa, você aprenderá a diferença teórica entre os dois modos primários de ataque híbrido no Hashcat. Compreender essa distinção é crucial para escolher a estratégia correta para um determinado padrão de senha.
Ataque Híbrido Lista de Palavras+Máscara (Modo de Ataque 6)
Este modo, especificado com o flag -a 6, pega cada palavra da sua lista de palavras (wordlist) e anexa caracteres a ela com base em uma máscara definida. É ideal para senhas onde os usuários adicionam um sufixo a uma palavra base, como adicionar um ano ou caracteres especiais no final.
- Exemplo: Se sua lista de palavras contém
passworde sua máscara é?d?d, o Hashcat tentará candidatos comopassword00,password01,password02, e assim por diante, atépassword99.
Ataque Híbrido Máscara+Lista de Palavras (Modo de Ataque 7)
Este modo, especificado com o flag -a 7, faz o oposto. Ele prefixa caracteres definidos por uma máscara a cada palavra da sua lista de palavras. Isso é útil quando os usuários adicionam um prefixo a uma palavra base.
- Exemplo: Se sua lista de palavras contém
passworde sua máscara é?d?d, o Hashcat tentará candidatos como00password,01password,02password, e assim por diante, até99password.
Nenhum comando é necessário para esta etapa. Seu objetivo é entender esses dois conceitos fundamentais antes de aplicá-los nas próximas etapas.
Criar um Hash de Exemplo e uma Lista de Palavras Base
Nesta etapa, você criará os arquivos necessários para o nosso ataque: um hash de senha de exemplo e uma lista de palavras simples. Todas as operações serão realizadas no diretório ~/project.
Primeiro, precisamos de um hash alvo para quebrar. Para este laboratório, usaremos um hash MD5. Vamos assumir que a senha é labex2024. O hash MD5 para esta string é 2d3c839a453c68206911871584a5f70f.
Crie um arquivo chamado hash.txt e salve o hash nele.
echo "2d3c839a453c68206911871584a5f70f" > ~/project/hash.txt
Você pode verificar o conteúdo do arquivo usando o comando cat:
cat ~/project/hash.txt
Você deverá ver a seguinte saída:
2d3c839a453c68206911871584a5f70f
Em seguida, precisamos de uma lista de palavras que contenha a palavra base da nossa senha alvo. Como a senha é labex2024, a palavra base é labex. Vamos criar um arquivo de lista de palavras chamado wordlist.txt contendo apenas esta palavra.
echo "labex" > ~/project/wordlist.txt
Verifique o conteúdo da sua nova lista de palavras:
cat ~/project/wordlist.txt
A saída deve ser:
labex
Agora você tem um hash alvo e uma lista de palavras base, prontos para o ataque.
Executar um Ataque Híbrido Anexando Dígitos a Palavras
Nesta etapa, você realizará um ataque híbrido usando o modo lista de palavras+máscara (-a 6) para quebrar o hash que você criou. Nossa hipótese é que a senha consiste na palavra labex seguida por quatro dígitos.
Vamos construir o comando hashcat com os seguintes componentes:
-m 0: Especifica o tipo de hash, que é MD5.-a 6: Seleciona o modo de ataque híbrido lista de palavras+máscara.~/project/hash.txt: O arquivo contendo nosso hash alvo.~/project/wordlist.txt: Nossa lista de palavras base.?d?d?d?d: A máscara a ser anexada.?drepresenta um único dígito.
Agora, execute o seguinte comando no seu terminal:
hashcat -m 0 -a 6 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d
O Hashcat inicializará e iniciará o processo de quebra. Você pode ver um aviso sobre desempenho em um ambiente virtualizado, o que é normal. Após um curto período, o Hashcat encontrará a senha.
A saída será semelhante a esta (alguns detalhes podem variar):
...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d3c839a453c68206911871584a5f70f
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (~/project/wordlist.txt)
Guess.Mod........: Mask (?d?d?d?d)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: ... H/s (...)
Recovered........: 1/1 (100.00%) Digests
Progress.........: 10000/10000 (100.00%)
Rejected.........: 0/10000 (0.00%)
Restore.Point....: 1/1 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex1000 -> labex9999
Hardware.Mon.#1..: Temp: ...
2d3c839a453c68206911871584a5f70f:labex2024
Started: ...
Stopped: ...
O Hashcat quebrou com sucesso o hash e encontrou a senha: labex2024.
Você pode visualizar a senha quebrada a qualquer momento usando a opção --show:
hashcat -m 0 --show ~/project/hash.txt
Isso exibirá o par hash-senha quebrados diretamente:
2d3c839a453c68206911871584a5f70f:labex2024
Executar um Ataque Híbrido Anexando Dígitos a Palavras
Agora, vamos tentar o outro modo híbrido: máscara+lista de palavras (-a 7). Nesta etapa, você tentará quebrar um novo hash onde o padrão é anexado.
Vamos assumir que nossa nova senha alvo é 2024labex. O hash MD5 para esta string é b68137c355d785422120884212515e86.
Primeiro, crie um novo arquivo de hash chamado hash2.txt com este novo hash.
echo "b68137c355d785422120884212515e86" > ~/project/hash2.txt
Para este cenário, precisamos usar o modo de ataque -a 7 para anexar a máscara de quatro dígitos à nossa palavra base. A estrutura do comando é semelhante, mas o modo de ataque é diferente.
Execute o seguinte comando:
hashcat -m 0 -a 7 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d
O Hashcat iniciará novamente. Como escolhemos o modo de ataque correto para esta estrutura de senha, ele encontrará rapidamente a senha.
A saída mostrará a senha quebrada:
...
Session..........: hashcat
Status...........: Cracked
...
b68137c355d785422120884212515e86:2024labex
...
Você quebrou com sucesso o segundo hash usando o modo máscara+lista de palavras.
Como antes, você pode usar a opção --show para ver o resultado:
hashcat -m 0 --show ~/project/hash2.txt
Saída:
b68137c355d785422120884212515e86:2024labex
Comparar a Eficácia de Ambos os Modos Híbridos
Nesta etapa prática final, você verá o que acontece ao usar o modo híbrido incorreto para um determinado padrão de senha. Isso destacará a importância de escolher a estratégia de ataque correta.
Primeiro, vamos tentar quebrar nosso hash original (hash.txt, para labex2024) usando o modo máscara+lista de palavras (-a 7). Este modo anexa dígitos, o que está incorreto para esta senha.
hashcat -m 0 -a 7 ~/project/hash.txt ~/project/wordlist.txt ?d?d?d?d
O Hashcat será executado, mas tentará candidatos como 0000labex, 0001labex, etc. Como a senha correta é labex2024, este ataque falhará. Após verificar todas as 10.000 possibilidades, o processo terminará com o status Exhausted, significando que tentou todas as combinações sem sucesso. Você pode esperar ele terminar ou pressionar q para sair.
Em seguida, vamos tentar quebrar nosso segundo hash (hash2.txt, para 2024labex) usando o modo lista de palavras+máscara (-a 6). Este modo anexa dígitos, o que também está incorreto para esta senha.
hashcat -m 0 -a 6 ~/project/hash2.txt ~/project/wordlist.txt ?d?d?d?d
Da mesma forma, este ataque tentará candidatos como labex0000, labex0001, etc., e também falhará, terminando com o status Exhausted.
Este experimento demonstra um ponto crucial: o sucesso de um ataque híbrido depende inteiramente da identificação correta da estrutura da senha. Usar o modo incorreto desperdiçará tempo e recursos sem produzir a senha correta.
Resumo
Neste laboratório, você ganhou experiência prática com o poderoso recurso de ataque híbrido do Hashcat. Você aprendeu como combinar listas de palavras e máscaras para quebrar eficientemente senhas que seguem um padrão previsível.
Especificamente, você aprendeu:
- A diferença fundamental entre os dois modos de ataque híbrido: lista de palavras+máscara (
-a 6) para anexar padrões e máscara+lista de palavras (-a 7) para prependê-los. - Como se preparar para um ataque criando um arquivo de hash alvo e uma lista de palavras base.
- Como executar ambos os tipos de ataques híbridos para quebrar senhas com sucesso.
- A importância crítica de selecionar o modo de ataque correto com base na estrutura suspeita da senha, pois usar o modo incorreto levará ao fracasso.
Ataques híbridos são uma técnica essencial no kit de ferramentas de qualquer auditor de senhas, oferecendo um equilíbrio inteligente entre métodos direcionados e força bruta.


