Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

1. Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 14/08/2017 - 20:02h

Como faço, em um script, para saber se um determinado arquivo .zip ou .rar está protegido por senha?


  


2. Re: Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

Hector Nagao
heckjp

(usa elementary OS)

Enviado em 15/08/2017 - 13:46h

Posso estar enganado, mas acredito que durante a execução, o script vai "parar" para solicitar a senha do arquivo.


3. Re: Como saber se um arquivo .zip ou .rar está protegido por senha?

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/08/2017 - 14:59h

Use o zipdetails:
# Criando o zip com a senha
 $ zip -e test.zip ealord/ 
Enter password:
Verify password:


# Testando

 zipdetails test.zip | grep Encryption || printf "O arquivo não está protegido com uma senha \n"  

Se o arquivo tiver uma senha, o grep achará a ocorrência. Caso o contrário, não haverá a string "Encryption" na saída e, por conseguinte, o grep não achará nenhuma ocorrência.

Não sei como fazer com .rar pois o formato é proprietário e eu não uso.
Adapte aí e me corrija se estiver errado.


4. Re: Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 16/08/2017 - 14:22h

heckjp escreveu:

"Posso estar enganado, mas acredito que durante a execução, o script vai "parar" para solicitar a senha do arquivo."


uruk escreveu:

 zipdetails test.zip | grep Encryption || printf "O arquivo não está protegido com uma senha \n"  

"Se o arquivo tiver uma senha, o grep achará a ocorrência. Caso o contrário, não haverá a string "Encryption" na saída e, por conseguinte, o grep não achará nenhuma ocorrência.

Não sei como fazer com .rar pois o formato é proprietário e eu não uso."


encontrei uma solução que, ao que parece, resolve o problema das observações do colega "heckjp" e do colega "uruk".

para que não seja solicitado a senha no momento da extração é possível passar uma senha como parâmetro. assim, caso o arquivo não seja protegido por senha o arquivo descompacta normalmente; e para o caso de o arquivo ser protegido por senha, então, será emitido uma mensagem de erro informando que a senha não confere.

este método funciona tanto para o ".zip" quanto para o ".rar".

deste modo, basta tratar com o comando "grep" a mensagem de erro típica de um formato ou mensagem de erro típica do outro formato.

a solução ficou mais ou menos assim...
if [ verificar-extensão ".zip" ]
then
cmdrpwd='unzip -P "$pwd" $f'
msgpwd="incorrect password"
elif [ verificar-extensão ".rar" ]
then
cmdrpwd='unrar -p"$pwd" e $f'
msgpwd="wrong password"
fi

k=$(eval $cmdrpwd 2>&1)

if [ $(echo $k | grep "$msgpwd" | wc -l) -gt 0 ] #se tem erro...
then
comando...
fi


fiz inspirado a partir do seguinte link:


5. Re: Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 16/08/2017 - 14:26h

uruk escreveu:

Use o zipdetails:
 zipdetails test.zip | grep Encryption || printf "O arquivo não está protegido com uma senha \n"  

"Se o arquivo tiver uma senha, o grep achará a ocorrência. Caso o contrário, não haverá a string "Encryption" na saída e, por conseguinte, o grep não achará nenhuma ocorrência.

Não sei como fazer com .rar pois o formato é proprietário e eu não uso."

uruk, não cheguei a testar sua indicação.

mas, como queria um método que servisse, no mínimo, para ".zip" e ".rar", então, busquei outra alternativa (como a que expliquei na minha resposta anterior).

obrigado




6. Re: Como saber se um arquivo .zip ou .rar está protegido por senha? [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 16/08/2017 - 14:30h

talvez existam soluções ainda mais genéricas...

como, por exemplo, a hipotética solução levantada no link que indiquei (https://daemoniolabs.wordpress.com/2012/05/27/quebrando-a-senha-de-arquivos-zip-por-brute-force/)...

lá o autor diz:
"Outro modo de agilizar o ataque seria olhar a estrutura interna dos arquivos zip e encontrar campos específicos que estão relacionados com a verificação da senha. Desse modo abandonamos de vez a nossa dependência do programa unzip, que influencia bastante no tempo de execução."


ainda assim, marcarei o tópico como resolvido!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts