Use o Modo de Ataque PRINCE no Hashcat

LinuxBeginner
Pratique Agora

Introdução

O Hashcat é uma ferramenta poderosa e versátil de recuperação de senhas, amplamente reconhecida pela sua velocidade e suporte a inúmeros algoritmos de hashing e modos de ataque. Uma das suas funcionalidades mais inovadoras é o ataque PRINCE (Probabilistic Relevant Incremental Nonce-based Candidate-generator Extension).

Ao contrário de um ataque de dicionário padrão que apenas tenta palavras de uma lista, o ataque PRINCE gera novos candidatos a senha combinando palavras de uma wordlist fornecida de várias maneiras. Isso o torna altamente eficaz contra senhas que são concatenações de duas ou mais palavras de dicionário, um padrão comum para criar senhas memoráveis, mas aparentemente complexas.

Neste laboratório, você aprenderá os fundamentos do modo de ataque PRINCE no Hashcat. Você preparará uma wordlist, executará um ataque PRINCE contra um hash de amostra, analisará os candidatos gerados e, finalmente, o combinará com um rule file para lidar com variações de senha ainda mais complexas.

Compreender a Geração Probabilística de Palavras com PRINCE

Nesta etapa, você aprenderá o conceito central por trás do modo de ataque PRINCE. O ataque PRINCE é designado pela flag de modo de ataque -a 8 no Hashcat. Sua força reside na criação de novos candidatos a senha a partir de uma wordlist menor, em vez de depender de um dicionário massivo. Ele combina algoritmicamente as palavras da sua lista de origem para gerar um conjunto muito maior e mais complexo de senhas potenciais.

Por exemplo, se sua wordlist contiver "apple" e "pie", o PRINCE pode gerar candidatos como "apple", "pie", "applepie", "pieapple", "appleapple", e assim por diante.

Vamos começar confirmando a opção do modo de ataque PRINCE no menu de ajuda do Hashcat. Você pode usar grep para filtrar a extensa saída de ajuda e encontrar a linha relevante.

Execute o seguinte comando no seu terminal:

hashcat --help | grep "PRINCE"

Você verá a linha que define o modo de ataque PRINCE, confirmando sua disponibilidade e seu número de modo de ataque correspondente.

      8 | PRINCE

Isso confirma que -a 8 é a flag correta para invocar um ataque PRINCE.

Preparar uma Pequena Wordlist Base

Nesta etapa, você criará uma pequena wordlist base. A eficácia de um ataque PRINCE está diretamente relacionada à qualidade da wordlist de entrada. Mesmo uma lista pequena e bem escolhida de palavras pode ser incrivelmente poderosa. Para este laboratório, criaremos um arquivo contendo algumas palavras simples.

Nossa senha alvo para a primeira parte do laboratório é "labexrocks". Portanto, nossa wordlist deve conter as palavras base "labex" e "rocks".

Use o comando echo com redirecionamento de saída para criar um arquivo chamado wordlist.txt no seu diretório atual (~/project).

echo -e "labex\nrocks\npass\nword" > wordlist.txt

A flag -e habilita a interpretação de escapes de barra invertida, de modo que \n cria uma nova linha para cada palavra.

Agora, verifique o conteúdo da sua wordlist recém-criada usando o comando cat.

cat wordlist.txt

Você deverá ver a seguinte saída, confirmando que o arquivo foi criado corretamente:

labex
rocks
pass
word

Agora você tem uma wordlist base pronta para o ataque PRINCE.

Executar um Ataque PRINCE com -a 8

Nesta etapa, você usará a wordlist que criou para quebrar um hash MD5 de exemplo. O script de configuração para este laboratório já criou um arquivo chamado hash.txt contendo o hash MD5 da senha "labexrocks".

Vamos construir o comando Hashcat:

  • hashcat: O executável.
  • -m 0: Especifica o modo de hash. 0 corresponde a MD5.
  • -a 8: Especifica o modo de ataque, que é PRINCE.
  • hash.txt: O arquivo contendo o hash alvo.
  • wordlist.txt: Sua wordlist base.

Agora, execute o comando completo no seu terminal:

hashcat -m 0 -a 8 hash.txt wordlist.txt

O Hashcat inicializará e começará o ataque. Como a wordlist é pequena e a senha é uma combinação direta das palavras nela contidas, o processo será muito rápido. Você verá a saída detalhando a sessão e, o mais importante, a senha quebrada.

A saída será semelhante a esta (alguns detalhes podem variar):

...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 22
* Keyspace..: 468

2d4a2b23999534c734b26e1b31b5579d:labexrocks

Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d4a2b23999534c734b26e1b31b5579d
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Mode.......: PRINCE
Speed.#*.........: ...
Recovered........: 1/1 (100.00%) Digests
Progress.........: 468/468 (100.00%)
Rejected.........: 0/468 (0.00%)
Restore.Point....: 468/468 (100.00%)
Restore.Sub.#*...: ...
Candidate.Engine.: PRINCE
Candidates.#*....: ...
Hardware.Mon.#*..: ...
...

A linha 2d4a2b23999534c734b26e1b31b5579d:labexrocks mostra claramente o hash original e a senha recuperada. Você usou com sucesso o ataque PRINCE para quebrar a senha.

Analisar as Senhas Candidatas Geradas

Nesta etapa, você explorará o que o PRINCE está fazendo nos bastidores. Em vez de quebrar um hash, você pode instruir o Hashcat a simplesmente exibir as senhas candidatas que ele gera no console. Isso é feito usando a flag --stdout. É uma excelente maneira de entender como sua wordlist base está sendo transformada.

Vamos usar --stdout com nosso wordlist.txt para ver as candidatas geradas.

hashcat --stdout -a 8 wordlist.txt

Isso exibirá um grande número de combinações na sua tela. Para tornar a saída mais gerenciável, você pode redirecioná-la para o comando head para visualizar apenas as primeiras 10 linhas.

hashcat --stdout -a 8 wordlist.txt | head -n 10

A saída mostrará as primeiras candidatas geradas pelo PRINCE.

pass
word
labex
rocks
passpass
password
passlabex
passrocks
wordpass
wordword

Como você pode ver, o PRINCE começa com as palavras originais e, em seguida, começa a criar novas combinações. A senha que quebramos anteriormente, "labexrocks", seria gerada mais adiante nesta lista. Isso demonstra o poder do PRINCE para expandir uma wordlist pequena em um conjunto muito maior e mais eficaz de suposições de senha.

Combinar PRINCE com um Arquivo de Regras para Mais Complexidade

Nesta etapa, você aprenderá como tornar o ataque PRINCE ainda mais poderoso combinando-o com um arquivo de regras. Arquivos de regras aplicam mutações específicas a cada senha candidata gerada pelo PRINCE. Isso permite testar variações comuns como capitalização, adição de números ou anexação de caracteres especiais.

A configuração do laboratório forneceu um arquivo de hash hash2.txt (para a senha "Labexrocks") e um arquivo de regras comum chamado best64.rule. Este arquivo de regras contém 64 das regras mais eficazes de manipulação de senhas.

O fluxo do ataque será:

  1. O PRINCE gera uma candidata (por exemplo, "labexrocks").
  2. O Hashcat aplica regras de best64.rule a essa candidata (por exemplo, capitalizar a primeira letra -> "Labexrocks").
  3. A candidata modificada é testada contra o hash.

Para combinar um ataque PRINCE com um arquivo de regras, basta adicionar a flag -r seguida pelo caminho para o arquivo de regras.

Execute o seguinte comando:

hashcat -m 0 -a 8 hash2.txt wordlist.txt -r best64.rule

O Hashcat agora executará o ataque PRINCE, mas cada candidata gerada será modificada pelas regras em best64.rule antes de ser testada.

Você verá uma quebra bem-sucedida na saída:

...
15895e67271a552214b5e422d5752e47:Labexrocks

Session..........: hashcat
Status...........: Cracked
...

A senha recuperada é "Labexrocks". Ela foi encontrada porque o PRINCE gerou "labexrocks", e uma das regras em best64.rule capitalizou a primeira letra, correspondendo à senha alvo. Essa combinação de modos de ataque é extremamente eficaz em cenários do mundo real.

Resumo

Neste laboratório, você aprendeu com sucesso como usar o modo de ataque PRINCE no Hashcat. Você ganhou experiência prática com uma das técnicas de quebra de senha mais criativas e eficazes disponíveis.

Você aprendeu a:

  • Entender o conceito do ataque PRINCE (-a 8) e como ele gera probabilisticamente senhas candidatas.
  • Preparar uma wordlist simples e direcionada para servir de base para o ataque.
  • Executar um ataque PRINCE básico para quebrar uma senha formada pela concatenação de palavras.
  • Usar a flag --stdout para analisar as candidatas geradas pelo PRINCE e entender sua lógica.
  • Combinar o ataque PRINCE com um arquivo de regras (-r) para quebrar senhas mais complexas com variações como capitalização.

O ataque PRINCE é uma ferramenta poderosa no arsenal de qualquer profissional de segurança, especialmente ao lidar com senhas criadas a partir de várias palavras. Dominar seu uso e sua combinação com outros modos de ataque aumentará significativamente suas capacidades de recuperação de senhas.