Introduction
Dans ce laboratoire, vous acquerrez une expérience pratique des techniques de cassage de mots de passe ciblant spécifiquement les archives ZIP. Vous utiliserez John the Ripper, un puissant outil de cassage de mots de passe open-source, conjointement avec zip2john, un utilitaire permettant de convertir les fichiers ZIP dans un format de hachage que John the Ripper peut comprendre. Ce laboratoire vous guidera dans la création d'un fichier ZIP protégé par mot de passe, l'extraction de son hachage, puis la tentative de le casser. De plus, vous découvrirez les faiblesses inhérentes aux anciennes méthodes de chiffrement ZIP et explorerez des alternatives plus sécurisées pour protéger vos données sensibles.
Créer un fichier ZIP protégé par mot de passe
Dans cette étape, vous allez créer un fichier texte simple, puis le compresser dans une archive ZIP protégée par mot de passe. Ce fichier ZIP servira de cible pour les tentatives de cassage ultérieures. Nous utiliserons un mot de passe simple et facile à deviner à des fins de démonstration.
Tout d'abord, assurez-vous d'être dans le dossier project de votre répertoire personnel.
cd ~/project
Maintenant, créez un fichier nommé secret.txt avec un contenu.
echo "This is a secret message." > secret.txt
Ensuite, créez une archive ZIP protégée par mot de passe nommée archive.zip contenant secret.txt. Lorsque vous y serez invité, entrez password123 comme mot de passe.
zip -e archive.zip secret.txt
Il vous sera demandé d'entrer un mot de passe :
Enter password:
Verify password:
adding: secret.txt (deflated 29%)
Vous pouvez vérifier la création du fichier ZIP en listant le contenu du répertoire actuel.
ls -l
Vous devriez voir archive.zip et secret.txt listés.
Extraire le hachage du fichier ZIP à l'aide de zip2john
Dans cette étape, vous utiliserez l'utilitaire zip2john pour extraire le hachage du mot de passe du fichier archive.zip. Ce hachage est une représentation du mot de passe que John the Ripper peut utiliser pour tenter de casser le mot de passe d'origine.
Tout d'abord, assurez-vous d'être dans le répertoire ~/project.
cd ~/project
Maintenant, exécutez zip2john sur archive.zip et redirigez sa sortie vers un fichier nommé zip_hash.txt.
zip2john archive.zip > zip_hash.txt
Cette commande extraira le hachage et l'enregistrera dans zip_hash.txt. La sortie de zip2john ressemble généralement à ceci (le hachage réel sera différent) :
archive.zip:$zip$*0*1*0*...*secret.txt*$/zip$
Vous pouvez afficher le contenu du fichier zip_hash.txt pour confirmer que le hachage a été extrait.
cat zip_hash.txt
La sortie devrait afficher la chaîne de hachage extraite.
Casser le hachage ZIP avec John the Ripper
Maintenant que vous avez extrait le hachage, vous allez utiliser John the Ripper pour tenter de casser le mot de passe. Nous utiliserons une liste de mots simple pour cette démonstration, qui inclut le mot de passe que nous avons défini précédemment.
Tout d'abord, assurez-vous d'être dans le répertoire ~/project.
cd ~/project
John the Ripper utilise souvent une liste de mots pour essayer les mots de passe courants. Pour ce laboratoire, nous allons créer une petite liste de mots personnalisée qui inclut notre mot de passe cible.
echo -e "test\npassword\n123456\npassword123\nadmin" > wordlist.txt
Maintenant, exécutez John the Ripper en utilisant le fichier zip_hash.txt et wordlist.txt.
john --wordlist=wordlist.txt zip_hash.txt
John the Ripper traitera le hachage et la liste de mots. En cas de succès, il affichera le mot de passe cassé. La sortie ressemblera à ceci :
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
Vous pouvez également vérifier les mots de passe cassés que John a trouvés en exécutant :
john --show zip_hash.txt
Cette commande affichera tous les mots de passe que John the Ripper a réussi à casser et à stocker dans son fichier pot interne.
archive.zip:password123
1 password hash cracked, 0 left
Comprendre les faiblesses du chiffrement ZIP
Dans cette étape, vous découvrirez les faiblesses inhérentes à la méthode de chiffrement standard ZIP 2.0, qui a été utilisée dans les étapes précédentes. Comprendre ces faiblesses est essentiel pour apprécier pourquoi des méthodes de chiffrement plus robustes sont nécessaires.
Le chiffrement par défaut utilisé par la commande zip (souvent appelé "chiffrement PKZIP traditionnel" ou "chiffrement ZIP 2.0") est connu pour être faible. Il utilise un algorithme propriétaire qui est susceptible à diverses attaques, y compris les attaques par texte clair connu (known-plaintext attacks) et les attaques par force brute (brute-force attacks), surtout avec la puissance de calcul moderne.
Faiblesses clés :
- Algorithme propriétaire : L'algorithme n'est pas audité publiquement comme les normes cryptographiques modernes (par exemple, AES).
- Dérivation de clé faible : La fonction de dérivation de clé est simple et permet aux attaquants de deviner ou de casser les mots de passe par force brute plus facilement.
- Attaques par texte clair connu : Si un attaquant a accès à la fois au fichier ZIP chiffré et à une version non chiffrée d'au moins un fichier à l'intérieur (même un petit fichier), il peut souvent récupérer la clé de chiffrement très rapidement. C'est une vulnérabilité importante.
- Espace de clé limité : Pour les mots de passe courts, l'espace de clé effectif est réduit, rendant les attaques par force brute réalisables.
En raison de ces faiblesses, l'utilisation du chiffrement ZIP 2.0 standard pour les données sensibles est fortement déconseillée. Même un mot de passe modérément complexe peut être cassé relativement rapidement si un attaquant dispose de ressources suffisantes ou d'un texte clair connu.
Cette étape ne nécessite aucune exécution de commande, mais il est important de saisir ces concepts pour une gestion sécurisée des données.
Sécuriser efficacement les archives ZIP
Compte tenu des faiblesses du chiffrement ZIP traditionnel, il est essentiel d'utiliser des méthodes plus robustes lors de la sécurisation de données sensibles. Dans cette étape, vous apprendrez et utiliserez un standard de chiffrement plus robuste : AES-256.
De nombreuses implémentations modernes de zip, y compris celle installée sur votre VM LabEx, prennent en charge le chiffrement AES. Lors de la création d'une archive ZIP, vous pouvez spécifier la méthode de chiffrement.
Pour créer une archive ZIP avec chiffrement AES-256, vous utilisez généralement le drapeau -P pour le mot de passe et le drapeau -m pour la méthode, ou vous vous fiez au chiffrement fort par défaut s'il est disponible. Cependant, le drapeau -e de la commande zip utilise souvent par défaut le chiffrement PKZIP 2.0, plus faible. Pour un chiffrement plus fort comme AES-256, il est souvent préférable d'utiliser 7z (7-Zip) ou WinRAR qui le prennent explicitement en charge.
Étant donné que 7z est un outil largement utilisé pour l'archivage sécurisé, démontrons comment créer une archive chiffrée AES-256 à l'aide de 7z. Tout d'abord, installez p7zip-full.
sudo apt-get install -y p7zip-full
Maintenant, créez un nouveau fichier pour cette démonstration.
echo "This is a highly secret message." > super_secret.txt
Ensuite, créez une archive 7z nommée secure_archive.7z avec chiffrement AES-256. Lorsque vous y serez invité, entrez un mot de passe fort (par exemple, StrongPassword!23).
7z a -p secure_archive.7z super_secret.txt
Il vous sera demandé d'entrer un mot de passe :
Enter password (will not be echoed):
Verify password (will not be echoed):
Cette commande crée une archive 7z utilisant le chiffrement AES-256 par défaut, ce qui est considérablement plus sécurisé que le chiffrement ZIP 2.0 traditionnel. Les archives 7z sont beaucoup plus difficiles à casser grâce à leurs algorithmes de chiffrement forts et à leurs fonctions de dérivation de clé.
Vous pouvez vérifier la création de l'archive 7z.
ls -l
Vous devriez voir secure_archive.7z listé.
Bonnes pratiques pour les archives sécurisées :
- Utiliser un chiffrement fort : Privilégiez toujours le chiffrement AES-256 (par exemple, avec
7zou des outilszipmodernes qui prennent explicitement en charge AES). - Utiliser des mots de passe forts : Combinez des lettres majuscules et minuscules, des chiffres et des symboles. Visez une longueur d'au moins 12 à 16 caractères.
- Éviter les textes clairs connus : N'incluez pas de fichiers facilement devinables ou publiquement disponibles dans vos archives chiffrées.
- Mettre à jour régulièrement les outils : Assurez-vous que votre logiciel d'archivage est à jour pour bénéficier des derniers correctifs de sécurité et améliorations.
En suivant ces pratiques, vous pouvez améliorer considérablement la sécurité de vos données archivées.
Résumé
Dans ce laboratoire, vous avez appris avec succès à créer des archives ZIP protégées par mot de passe, à en extraire leurs hashes à l'aide de zip2john, puis à casser ces hashes avec John the Ripper. Cette expérience pratique a démontré le processus de cassage de mots de passe et a mis en évidence les vulnérabilités des anciennes méthodes de chiffrement. De manière cruciale, vous avez également acquis une compréhension des faiblesses inhérentes au chiffrement ZIP 2.0 traditionnel et vous vous êtes familiarisé avec des alternatives plus sécurisées comme le chiffrement AES-256 à l'aide d'outils tels que 7z. En appliquant les bonnes pratiques discutées, vous pouvez vous assurer que vos données sensibles sont protégées par des normes cryptographiques robustes.


