Use John the Ripper para Quebrar Arquivos ZIP

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você ganhará experiência prática em técnicas de quebra de senhas especificamente direcionadas a arquivos ZIP. Você usará o John the Ripper, uma poderosa ferramenta de código aberto para quebra de senhas, em conjunto com o zip2john, um utilitário para converter arquivos ZIP em um formato de hash que o John the Ripper pode entender. Este laboratório irá guiá-lo na criação de um arquivo ZIP protegido por senha, na extração de seu hash e, em seguida, na tentativa de quebrá-lo. Além disso, você aprenderá sobre as fraquezas inerentes em métodos de criptografia ZIP mais antigos e descobrirá alternativas mais seguras para proteger seus dados sensíveis.

Criar um Arquivo ZIP Protegido por Senha

Nesta etapa, você criará um arquivo de texto simples e, em seguida, o comprimirá em um arquivo ZIP protegido por senha. Este arquivo ZIP servirá como nosso alvo para as tentativas subsequentes de quebra. Usaremos uma senha simples e fácil de adivinhar para fins de demonstração.

Primeiro, certifique-se de estar na pasta project do seu diretório pessoal.

cd ~/project

Agora, crie um arquivo chamado secret.txt com algum conteúdo.

echo "This is a secret message." > secret.txt

Em seguida, crie um arquivo ZIP protegido por senha chamado archive.zip contendo secret.txt. Quando solicitado, insira password123 como senha.

zip -e archive.zip secret.txt

Você será solicitado a inserir uma senha:

Enter password:
Verify password:
  adding: secret.txt (deflated 29%)

Você pode verificar a criação do arquivo ZIP listando o conteúdo do diretório atual.

ls -l

Você deverá ver archive.zip e secret.txt listados.

Extrair Hash de Arquivo ZIP usando zip2john

Nesta etapa, você usará o utilitário zip2john para extrair o hash da senha do arquivo archive.zip. Este hash é uma representação da senha que o John the Ripper pode usar para tentar quebrar a senha original.

Primeiro, certifique-se de estar no diretório ~/project.

cd ~/project

Agora, execute o zip2john no archive.zip e redirecione sua saída para um arquivo chamado zip_hash.txt.

zip2john archive.zip > zip_hash.txt

Este comando extrairá o hash e o salvará em zip_hash.txt. A saída do zip2john geralmente se parece com isto (o hash real será diferente):

archive.zip:$zip$*0*1*0*...*secret.txt*$/zip$

Você pode visualizar o conteúdo do arquivo zip_hash.txt para confirmar que o hash foi extraído.

cat zip_hash.txt

A saída deve mostrar a string de hash extraída.

Quebrar Hash ZIP com John the Ripper

Agora que você extraiu o hash, usará o John the Ripper para tentar quebrar a senha. Usaremos uma wordlist simples para esta demonstração, que inclui a senha que definimos anteriormente.

Primeiro, certifique-se de estar no diretório ~/project.

cd ~/project

O John the Ripper frequentemente usa uma wordlist para tentar senhas comuns. Para este laboratório, criaremos uma pequena wordlist personalizada que inclui nossa senha alvo.

echo -e "test\npassword\n123456\npassword123\nadmin" > wordlist.txt

Agora, execute o John the Ripper usando o arquivo zip_hash.txt e o wordlist.txt.

john --wordlist=wordlist.txt zip_hash.txt

O John the Ripper processará o hash e a wordlist. Se for bem-sucedido, ele exibirá a senha quebrada. A saída será semelhante a esta:

Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (archive.zip)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123

Você também pode verificar as senhas quebradas que o John encontrou executando:

john --show zip_hash.txt

Este comando exibirá quaisquer senhas que o John the Ripper quebrou com sucesso e armazenou em seu arquivo pot interno.

archive.zip:password123

1 password hash cracked, 0 left

Compreender as Fraquezas da Criptografia ZIP

Nesta etapa, você aprenderá sobre as fraquezas inerentes ao método de criptografia padrão ZIP 2.0, que foi usado nas etapas anteriores. Compreender essas fraquezas é crucial para apreciar por que métodos de criptografia mais fortes são necessários.

A criptografia padrão usada pelo comando zip (frequentemente referida como "criptografia tradicional PKZIP" ou "criptografia ZIP 2.0") é conhecida por ser fraca. Ela usa um algoritmo proprietário que é suscetível a vários ataques, incluindo ataques de texto plano conhecido (known-plaintext attacks) e ataques de força bruta (brute-force attacks), especialmente com o poder de computação moderno.

Fraquezas Principais:

  • Algoritmo Proprietário: O algoritmo não é publicamente revisado como os padrões criptográficos modernos (por exemplo, AES).
  • Derivação de Chave Fraca: A função de derivação de chave é simples e facilita para os atacantes adivinharem ou tentarem quebrar senhas por força bruta.
  • Ataques de Texto Plano Conhecido (Known-Plaintext Attacks): Se um atacante tiver acesso tanto ao arquivo ZIP criptografado quanto a uma versão não criptografada de pelo menos um arquivo dentro dele (mesmo que pequeno), ele geralmente pode recuperar a chave de criptografia muito rapidamente. Esta é uma vulnerabilidade significativa.
  • Espaço de Chave Limitado: Para senhas mais curtas, o espaço de chave efetivo é pequeno, tornando os ataques de força bruta viáveis.

Devido a essas fraquezas, o uso da criptografia padrão ZIP 2.0 para dados sensíveis é altamente desencorajado. Mesmo uma senha moderadamente complexa pode ser quebrada relativamente rápido se um atacante tiver recursos suficientes ou um texto plano conhecido.

Esta etapa não requer a execução de nenhum comando, mas é importante entender esses conceitos para o manuseio seguro de dados.

Proteja Arquivos ZIP de Forma Eficaz

Dadas as fraquezas da criptografia ZIP tradicional, é essencial usar métodos mais fortes ao proteger dados sensíveis. Nesta etapa, você aprenderá e usará um padrão de criptografia mais robusto: AES-256.

Muitas implementações modernas do zip, incluindo a instalada na sua VM LabEx, suportam criptografia AES. Ao criar um arquivo ZIP, você pode especificar o método de criptografia.

Para criar um arquivo ZIP com criptografia AES-256, você normalmente usa o flag -P para senha e o flag -m para método, ou confia na criptografia forte padrão, se disponível. No entanto, o flag -e do comando zip geralmente usa por padrão a criptografia PKZIP 2.0 mais fraca. Para criptografia mais forte como AES-256, é geralmente melhor usar 7z (7-Zip) ou WinRAR, que a suportam explicitamente.

Como o 7z é uma ferramenta amplamente utilizada para arquivamento seguro, vamos demonstrar como criar um arquivo criptografado com AES-256 usando 7z. Primeiro, instale o p7zip-full.

sudo apt-get install -y p7zip-full

Agora, crie um novo arquivo para esta demonstração.

echo "This is a highly secret message." > super_secret.txt

Em seguida, crie um arquivo 7z chamado secure_archive.7z com criptografia AES-256. Quando solicitado, insira uma senha forte (por exemplo, StrongPassword!23).

7z a -p secure_archive.7z super_secret.txt

Você será solicitado a inserir uma senha:

Enter password (will not be echoed):
Verify password (will not be echoed):

Este comando cria um arquivo 7z usando criptografia AES-256 por padrão, que é significativamente mais seguro do que a criptografia ZIP 2.0 tradicional. Arquivos 7z são muito mais difíceis de quebrar devido aos seus algoritmos de criptografia fortes e funções de derivação de chave.

Você pode verificar a criação do arquivo 7z.

ls -l

Você deverá ver secure_archive.7z listado.

Melhores Práticas para Arquivos Seguros:

  • Use Criptografia Forte: Sempre prefira criptografia AES-256 (por exemplo, com 7z ou ferramentas zip modernas que suportam explicitamente AES).
  • Use Senhas Fortes: Combine letras maiúsculas e minúsculas, números e símbolos. Procure um comprimento de pelo menos 12-16 caracteres.
  • Evite Texto Plano Conhecido: Não inclua arquivos facilmente adivinháveis ou publicamente disponíveis em seus arquivos criptografados.
  • Atualize Ferramentas Regularmente: Certifique-se de que seu software de arquivamento esteja atualizado para se beneficiar dos últimos patches e melhorias de segurança.

Ao seguir estas práticas, você pode aumentar significativamente a segurança dos seus dados arquivados.

Resumo

Neste laboratório, você aprendeu com sucesso como criar arquivos ZIP protegidos por senha, extrair seus hashes usando zip2john e, em seguida, quebrar esses hashes com John the Ripper. Essa experiência prática demonstrou o processo de quebra de senhas e destacou as vulnerabilidades de métodos de criptografia mais antigos. Crucialmente, você também obteve uma compreensão das fraquezas inerentes à criptografia ZIP 2.0 tradicional e aprendeu sobre alternativas mais seguras, como a criptografia AES-256 usando ferramentas como 7z. Ao aplicar as melhores práticas discutidas, você pode garantir que seus dados sensíveis sejam protegidos com padrões criptográficos robustos.