Você está na página 1de 4

1/2/2018 descobrir senha arquivo rar | Dæmonio Labs

Dæmonio Labs

Arquivo da tag: descobrir senha arquivo rar

Quebrando A Senha De Arquivos Rar Por Brute Force

POSTADO EM JULHO 30, 2012 POR DAEMONIO


4

Introdução

Em um post anterior do blog [1], eu mostrei como quebrar senhas de arquivos ZIP por força bruta (ataque de dicionário), utilizando somente o programa unzip. Hoje irei mostrar o mesmo procedimento,
porém para arquivos RAR e utilizando o unrar.

O método

Como já abordei esse assunto em [1], neste post serei bem breve. Primeiramente, vamos observar a man page do comando unrar e verificar se há opções úteis para nosso objetivo:

$ unrar --help
UNRAR 4.20 beta 3 freeware Copyright (c) 1993-2012 Alexander Roshal

Usage: unrar <command> -<switch 1> -<switch N> <archive> <files...>


<@listfiles...> <path_to_extract\>

<Commands>
...
t Test archive files
...

<Switches>
...
id[c,d,p,q] Disable messages
...
p[password] Set password
...

Temos a opção t para testar um arquivo, a opção p para passar a senha do rar e as flags cdpq que habilitam/desabilitam certas mensagens do programa unrar.

Vejamos alguns exemplos:

# Compactando arquivo qualquer


$ rar -p a arquivocomsenha.rar /etc/passwd
12345 # Senha: 12345

# Descompactando com senha inválida


$ unrar -idq -psenhainvalida t arquivocomsenha.rar
CRC failed in the encrypted file etc/passwd. Corrupt file or wrong password.

# Descompactando com senha correta


$ unrar -idq -p12345 t arquivocomsenha.rar
$

Os resultados nos mostram que: ao se utilizar uma senha incorreta, o unrar retorna “CRC failed in the…” em stderr. Por outro lado, ele retorna vazio quando a senha está correta.

Assim, temos nosso algoritmo:

1) Se há palavras no dicionário para ler:


Leia uma palavra do dicionário de palavras para a variável senhateste.
2) Execute: unrar -idq -psenhateste t arquivocomsenha.rar.
3) Verifique se a saída é vazia.
Se sim, a senha do arquivo é senhateste e finalize o processo.
4) Volte para o passo 1.

Isto é o suficiente para montarmos nosso shell script para quebrar a senha de um arquivo RAR por força bruta.

O script: quebrarar.sh

https://daemoniolabs.wordpress.com/tag/descobrir-senha-arquivo-rar/ 1/4
1/2/2018 descobrir senha arquivo rar | Dæmonio Labs

#!/bin/bash
# [quebrarar.sh]
# Quebra senha de arquivos rar pelo método
# da força bruta.
#
# [Autor]
# Marcos Paulo Ferreira (Daemonio)
# undefinido gmail com
# https://daemoniolabs.wordpress.com
#
# [Uso]
# $ ./quebrarar.sh arquivocomsenha.rar wordlist.txt
# ....
# ....
# Senha: "senha"
#
# Versão 1.0, by daemonio @ Sun Jul 29 19:57:33 BRT 2012
#

# Arquivo rar com senha


ARQUIVORAR=

# Dicionário de senhas
WORDLIST=

# Recebe cada senha do dicionário


senhateste=

# Função de ajuda.
function show_help {
echo 'quebrarar.sh - by daemonio'
echo '[uso] $ ./quebrarar.sh arquivocomsenha.rar wordlist.txt'
exit 1
}

# Função chamada quando se interrompe


# o script com um ctrl+c. Essa função mostra
# a senha usada no momento da interrupção.
function pegarctrlc {
echo "[+] Processo abortado. Senha atual: $senhateste"
exit 1
}

# Instala um signal handler pro ctrl+c


trap pegarctrlc SIGINT

# Obtém os parâmetros.
ARQUIVORAR="$1"
WORDLIST="$2"

# Flag. Tem valor 1 se a senha foi quebrada e


# 0 caso contrário.
SENHAQUEBRADA=0

# Testa os parâmetros.
[ -e "$ARQUIVORAR" ] && [ -e "$WORDLIST" ] || show_help

# Processo de quebragem.
echo '[+] Espere. Quebrando a senha...'
while read senhateste
do
SAIDA=$(unrar -idq -p"$senhateste" t "$ARQUIVORAR" 2>&1)
# Se a variável estiver vazia é porque a senha foi quebrada.
[ -z "$SAIDA" ] && SENHAQUEBRADA=1 && break
done < "$WORDLIST"

# Informa se a senha foi quebrada ou não.


if [ "$SENHAQUEBRADA" = '1' ]
then
echo '[+] Senha quebrada: '$senhateste
else
echo '[+] Senha NAO quebrada. Tente outra lista de palavras.'
fi

#EOF

Salve o código como quebrarar.sh e dê permissão de execução:

$ chmod +x quebrarar.sh

Para executar o script, passe o arquivo rar como primeiro parâmetro e a lista de palavras como segundo:

$ ./quebrarar.sh arquivocomsenha.rar senhas.txt


[+] Espere. Quebrando a senha...
[+] Senha quebrada: 12345

Podemos aumentar a eficiência desse script utilizando o xargs para executá-lo em várias threads. O conceito por trás do xargs pode ser visto em [2] e também em [1].

A seguir o código para a versão paralelizável desse script:

https://daemoniolabs.wordpress.com/tag/descobrir-senha-arquivo-rar/ 2/4
1/2/2018 descobrir senha arquivo rar | Dæmonio Labs

#!/bin/bash
# [xquebrarar.sh]
# Quebra senha de arquivos rar pelo método
# da força bruta.
#
# [Autor]
# Marcos Paulo Ferreira (Daemonio)
# undefinido gmail com
# https://daemoniolabs.wordpress.com
#
# [Uso]
# $ ./xquebrarar.sh arquivocomsenha.rar senha1, senha2, ..., senhaN
# ....
# ....
# Senha: "senha"
#
# Versão 1.0, by daemonio @ Sun Jul 29 20:30:49 BRT 2012
#

# Função de ajuda.
function show_help {
echo 'xquebrarar.sh - by daemonio'
echo '[uso] $ ./quebrarar.sh arquivocomsenha.rar senha1, senha2, ..., senhaN'
exit 1
}

# Obtém os parâmetros.
ARQUIVORAR="$1"

# Flag. Tem valor 1 se a senha foi quebrada e


# 0 caso contrário.
SENHAQUEBRADA=0

# Testa os parâmetros.
[ -e "$ARQUIVORAR" ] || show_help

# Desloca os parâmetros.
shift

# Lê as senhas da linha de comando.


for senhateste in $*
do
SAIDA=$(unrar -idq -p"$senhateste" t "$ARQUIVORAR" 2>&1)
# Se a variável estiver vazia é porque a senha foi quebrada.
[ -z "$SAIDA" ] && SENHAQUEBRADA=1 && break
done

# Informa se a senha foi quebrada ou não.


if [ "$SENHAQUEBRADA" = '1' ]
then
echo '[+] Senha quebrada: '$senhateste
# Executando esse script no xargs precisamos matar
# o próprio xargs (processo pai) para finalizar as
# outras threads.
kill $PPID
fi

#EOF

Salve o código como xquebrarar.sh e dê permissão de execução:

$ chmod +x xquebrarar.sh

Em seguida execute-o pelo xargs: (obs: 10 threads)

$ xargs -a senhas.txt -n 20 -P 10 ./xquebrarar.sh arquivocomsenha.rar


[+] Senha quebrada: 12345
Terminated

A versão paralelizável é mais rápida do que a sequencial, e isso já era de se esperar. Os tempos de execução para duas versões são semelhantes àqueles vistos em [1]. Para o ataque ser eficiente é necessário
ter uma boa lista de senhas.

Referências

[1] Quebrando a Senha de Arquivos ZIP Por Brute Force by Daemonio (Acessado em: Julho/2012)
h ps://daemoniolabs.wordpress.com/2012/05/27/quebrando-a-senha-de-arquivos-zip-por-brute-force/ (h ps://daemoniolabs.wordpress.com/2012/05/27/quebrando-a-senha-de-arquivos-zip-por-brute-force/)

[2] Paralelismo com o xargs by Daemonio (Acessado em: Julho/2012)


h ps://daemoniolabs.wordpress.com/2012/04/07/paralelismo-com-o-xargs/ (h ps://daemoniolabs.wordpress.com/2012/04/07/paralelismo-com-o-xargs/)

POSTADO EM ALGORITMOS, COMANDOS, FUN, LINUX, PROGRAMAÇÃO, SCRIPTS, SHELL SCRIPT | MARCADO DESCOBRIR SENHA ARQUIVO RAR, QUAL A SENHA DO ARQUIVO WINRAR,
QUEBRAR SENHA DE ARQUIVOS RAR, QUEBRAR SENHA WINRAR, SENHAS ARQUIVO RAR BRUTE FORCE

Crie um website ou blog gratuito no WordPress.com.












https://daemoniolabs.wordpress.com/tag/descobrir-senha-arquivo-rar/ 3/4
1/2/2018 descobrir senha arquivo rar | Dæmonio Labs







































https://daemoniolabs.wordpress.com/tag/descobrir-senha-arquivo-rar/ 4/4

Você também pode gostar