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:
12500paraRAR3-hp13000paraRAR5
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
Hashcatusando 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.


