“Quebrando” a senha de arquivos RAR

Recentemente (24/10/2011) tentei abrir um arquivo .rar que havia sido protegido com senha (por minha pessoa rsrs), mas eu havia esquecido a senha. Assim, não pensei duas vezes, vou utilizar um programa para quebrar a senha. Pesquisei na internet vários programas para “quebrar” a senha de arquivos .rar, mas sem sucesso, pois a maioria é pago e quando “free”, possui limitação de senha de até 3 dígitos ( quem usa senha de 3 digitos ???). A luz no fim do túnel veio quando encontrei uma implementação de um projeto OpenSource denominado CRARK (sugestivo o nome não ? rs).

CRARK: http://www.crark.net

CRARK é um programa que é utilizado via linha de comando, assim NÃO é recomendado para usuários leigos, pois além não possui interface gráfica, o manuseio por parte do leigo seria difícil.

Antes de se utilizar o programa é preciso ter em mente dois conceitos de segurança da informação:

Ataque por força bruta: Em ciência da computação, força bruta (ou busca exaustiva) é uma algoritmo trivial mas de uso muito geral que consiste em enumerar todos os possíveis candidatos de uma solução e verificar se cada um satisfaz o problema.

Ataque do dicionário: Um ataque de dicionário é um método de cracking que consiste em tentar descobrir uma senha utilizando todas as possíveis combinações de um dicionário. Este tipo de ataque é mais eficiente que um ataque de força bruta, pois o conjunto de todas as combinações com as palavras do dicionário usado é muito menor que todas as combinações existentes, como no caso de força bruta. O fato deste conjunto ser menor, tem um motivo: o usuário sabe quais as palavras, letras, números que ele utilizou na confecção da senha.

Conhecendo esses dois conceitos, o uso do programa para quebra de senha de até 6 dígitos (só com números por exemplo) através da força bruta, é bem sucedido, quebrando a senha em tempo hábil. Por isso é aconselhado a utilizar senha de no mínimo 8 dígitos contendo número, letras e caracteres especiais, construindo assim uma senha “forte”.

No meu caso, por sorte, eu tinha idéia de como era formado o password, pois costume usar sempre as mesmas palavras, letras, números e caractere especial, apenas não lembrava a combinação correta. Logo utilizei o programa CRARK para fazer um ataque de dicionário e obtive sucesso.

O próprio autor do programa ressalta no read-me que vem junto com o aplicativo ( download em http://www.crark.net/#download ), que o aplicativo é ideal para o uso por ataque de dicionário: “Please bear in mind you have quite no chance to crack unknown password (longer than 6 symbols) if you have no additional info about it. So, the primary purpose for this utility is to recover your forgotten passwords.”

Gastei um tempo lendo o manual e os exemplos de uso ( http://www.crark.net/cRARk.html ), conseguindo assim usar o ataque de dicionário corretamente e quebrar as senhas dos arquivos .rar em poucos segundos.

Para ajudar você leitor, a vencer o caminho das pedras, segue um exemplo (clique aqui) de quebra de senha com ataque de dicionário utilizando o CRARK.

Baixe o exemplo e leia as seguintes dicas:

  1. Como os caracteres das senhas são conhecidos, saber o tamanho da senha ou pelo menos a faixa do tamanho, já é de grande ajuda, pois esses dados são utilizados como parêmetros ao chamar o programa;
  2. Existem dois tipos de arquivos .rar com senha, os que pedem senha para mostrar o conteúdo e consequente extrair os arquivos, e os permitem visualizar o conteúdo e solicitam a senha apenas para extrair o conteúdo. Para o primeiro tipo utilize o executável crark-hp.exe e para o segundo tipo utilize o crark.exe;
  3. O programa não suporta senhas maiores que 28 caracteres;
  4. No exemplo o arquivo a ser crackeado é o teste.rar;
  5. No exemplo, o arquivo main.dic contém as palavras do dicionário;
  6. No exemplo, o arquivo password.def contém as definições da chamada do programa. No caso do ataque do dicionário, $w equivale a uma palavra. Assim $w$w$w$w$w significa que a senha é formada por 6 palavras contidas no dicionário. Se fossem três palavras seria $w$w$w. Experimente editar o arquivo password.def variando a quantidade de $w, e chame o programa no modo debug, apenas para você ver o efeito;
  7. No exemplo, a chamada ao programa deve ser feita via linha de comando (prompt do DOS): “crark-hp -v teste.rar” (sem as aspas). O parâmetro -v significa que é pra executar no modo debug, ou seja, exibe-se a senha testada a cada tentativa, podendo assim ser omitido, chamando-se apenas:  “crark-hp  teste.rar” (sem as aspas). Ou simplesmente pode executar o arquivo exemplo.bat (clique duas vezes nele, pois funciona como um executável). Para o exemplo dado, no modo debug não consegue encontrar a senha, pois o fato de imprimir na tela, tona a execução mais lente, assim deve ter um numero máximo de iterações permitidas;

Saída do programa para o exemplo dado:

computaria@blog.2012 – Header CRC Ok
computaria@blog2012c
Passwords tested = 84 (time = 04.30, rate = 20 p/s)

Testing archive teste.rar

Testing     forense-digial.png
computaria@blog.2012 – CRC OK
In hex (PCL style): \63 \6F \6D \70 \75 \74 \61 \72 \69 \61 \40 \62 \6C \6F \67\2E \32 \30 \31 \32
Passwords tested = 84 (time = 04.44, rate = 19 p/s)
Total     tested = 84, slow tests = 1