Quebrar Arquivos RAR Protegidos por Senha

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá o processo de quebra de um arquivo RAR protegido por senha. Esta é uma tarefa comum em testes de penetração e forense digital. Você usará uma combinação de ferramentas poderosas e padrão da indústria disponíveis no Linux: rar para criar o arquivo, o conjunto John the Ripper (especificamente rar2john) para extrair um hash do arquivo e Hashcat para quebrar o hash e revelar a senha original.

O processo envolve a criação de um arquivo de exemplo protegido, a extração do seu hash de senha, a identificação do tipo de hash correto para a ferramenta de quebra e, finalmente, o lançamento de um ataque de dicionário para encontrar a senha. Este exercício prático fornecerá uma compreensão fundamental dos mecanismos de quebra de senha.

Criar um Arquivo RAR Protegido por Senha

Nesta etapa, você criará um arquivo RAR protegido por senha. Este servirá como alvo para nosso exercício de quebra de senha. Usaremos a ferramenta de linha de comando rar. O ambiente de laboratório já criou um arquivo de exemplo chamado secret.txt em seu diretório atual, /home/labex/project.

Primeiro, vamos usar o comando rar para criar um arquivo. A opção a significa "adicionar ao arquivo" (add to archive), e o switch -p é usado para especificar uma senha diretamente. Usaremos labex como senha para este exercício.

Execute o seguinte comando em seu terminal para criar um arquivo protegido por senha chamado secret.rar contendo o arquivo secret.txt.

rar a -plabex secret.rar secret.txt

Você verá uma saída indicando que o arquivo está sendo adicionado e o arquivo está sendo criado.

RAR 6.12   Copyright (c) 1993-2022 Alexander Roshal   17 May 2022
Trial version             Type 'rar -?' for help

Evaluation copy. Please register.

Creating archive secret.rar

Adding    secret.txt                                                      OK
Done

Agora, verifique se o arquivo secret.rar foi criado em seu diretório de projeto usando o comando ls -l.

ls -l
total 12
-rw-r--r-- 1 labex labex  338 Dec 05 10:30 secret.rar
-rw-r--r-- 1 labex labex   25 Dec 05 10:28 secret.txt
-rw-r--r-- 1 labex labex   29 Dec 05 10:28 wordlist.txt

Você agora criou com sucesso o arquivo alvo para este laboratório.

Usar rar2john para Extrair o Hash do Arquivo RAR

Nesta etapa, você usará o rar2john, um utilitário do conjunto John the Ripper, para extrair o hash de senha do arquivo secret.rar. Ferramentas de quebra como o Hashcat não funcionam diretamente no arquivo RAR; elas precisam de um formato de hash específico que contenha as informações necessárias para verificar uma senha. O rar2john foi projetado para este propósito exato.

Execute o seguinte comando para processar o arquivo secret.rar:

rar2john secret.rar

O comando imprimirá uma longa string no terminal. Esta string é o hash.

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

Este hash contém o salt do arquivo, dados criptografados e outros metadados necessários para o processo de quebra. Para facilitar o uso, a melhor prática é salvar este hash em um arquivo de texto.

Use o redirecionamento de saída (>) para salvar o hash em um arquivo chamado rar_hash.txt.

rar2john secret.rar > rar_hash.txt

Este comando não produzirá nenhuma saída visível porque a saída está sendo redirecionada para o arquivo. Você pode confirmar que o arquivo foi criado e contém o hash usando o comando cat.

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

Agora você tem o hash RAR em um formato que as ferramentas de quebra de senha podem entender.

Identificar o Modo de Hash Correto para RAR3-hp ou RAR5

Nesta etapa, você identificará o modo correto para o Hashcat usar ao quebrar o hash. O Hashcat suporta centenas de tipos de hash diferentes, e você deve especificar o correto usando um número de modo.

O hash que você extraiu começa com $RAR3$*.... Este prefixo informa o tipo de criptografia RAR utilizada. Para encontrar o modo correspondente no Hashcat, você pode pesquisar em seu menu de ajuda.

Use o seguinte comando para listar todos os modos do Hashcat e filtrar aqueles relacionados a "RAR". A flag -i no grep torna a pesquisa insensível a maiúsculas e minúsculas.

hashcat --help | grep -i "RAR"

A saída mostrará os diferentes modos RAR suportados pelo Hashcat.

...
12500 | RAR3-hp                                      | Archives
13000 | RAR5                                         | Archives
...

Da saída, você pode ver dois modos principais:

  • 12500 para RAR3-hp
  • 13000 para RAR5

Como nosso hash começa com $RAR3$, o modo correto a ser usado é 12500. Identificar o modo de hash correto é um passo crítico para uma tentativa de quebra bem-sucedida.

Preparar o Hash e a Wordlist para o Ataque

Nesta etapa, você preparará os arquivos necessários para a tentativa de quebra. Um ataque de dicionário, que é o que realizaremos, requer duas entradas principais: o arquivo contendo o hash a ser quebrado e uma wordlist (um arquivo contendo senhas potenciais).

Você já completou a primeira parte salvando o hash em rar_hash.txt. Vamos revisar rapidamente seu conteúdo.

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

Em seguida, você precisa da wordlist. Para este laboratório, uma wordlist simples chamada wordlist.txt foi criada para você durante o processo de configuração. Em um cenário do mundo real, você usaria uma wordlist muito maior, como a famosa rockyou.txt. Vamos examinar o conteúdo da nossa pequena wordlist.

cat wordlist.txt
password
123456
labex
secret

Como você pode ver, nossa wordlist contém algumas senhas comuns, incluindo a correta, labex. Com o arquivo de hash e a wordlist prontos, você está agora preparado para lançar o ataque.

Executar o Ataque para Encontrar a Senha do RAR

Nesta etapa, você executará o ataque de dicionário usando o Hashcat. Com o arquivo de hash, a wordlist e o número de modo correto identificados, você tem tudo o que precisa.

A sintaxe básica para um ataque de dicionário do Hashcat é: hashcat -m <modo> <arquivo_hash> <arquivo_wordlist>.

Agora, execute o comando usando o modo 12500, seu arquivo de hash rar_hash.txt e sua wordlist wordlist.txt.

hashcat -m 12500 rar_hash.txt wordlist.txt

O Hashcat inicializará, iniciará a sessão de quebra e testará rapidamente as senhas da sua wordlist contra o hash. Assim que encontrar uma correspondência, o processo terminará e o status mostrará Cracked.

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: RAR3-hp
Hash.Target......: secret.rar
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    24211 H/s (0.01ms) @ Accel:128 Loops:128 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1
Candidate.Engine.: Optimized Kernel
Candidates.#1....: password -> secret
Hardware.Mon.#1..: Temp: 45c Fan: 30%
...

O Hashcat salva automaticamente as senhas quebradas em um arquivo chamado "potfile", localizado em ~/.hashcat/hashcat.potfile. Para visualizar a senha quebrada, você pode usar a opção --show com seu comando original.

hashcat -m 12500 rar_hash.txt --show

Isso exibirá o hash e sua senha quebrada correspondente.

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0:labex

A senha, labex, é exibida no final da linha, separada por dois pontos. Você quebrou com sucesso a senha do arquivo RAR.

Resumo

Parabéns por completar este laboratório! Você aprendeu com sucesso o processo completo de quebra de um arquivo RAR protegido por senha.

Neste laboratório, você praticou várias habilidades importantes:

  • Criação de um arquivo protegido por senha usando o comando rar.
  • Extração de um hash que pode ser quebrado de um arquivo RAR com rar2john.
  • Identificação do tipo de hash correto e seu modo correspondente no Hashcat.
  • Execução de um ataque de dicionário com Hashcat usando o hash extraído e uma wordlist.
  • Visualização da senha recuperada.

Essas técnicas são fundamentais no campo da cibersegurança para recuperação de senhas e auditoria de segurança. É importante lembrar que essas habilidades devem ser usadas apenas de forma ética e legal, por exemplo, em sistemas que você tem permissão explícita para testar.