Mis à jour le 08/07/2023
21.2.11 – Travaux pratiques – Chiffrer et déchiffrer des données avec un outil de hacker
Remarque à l’intention de l’instructeur : la couleur de police rouge ou les surlignages gris indiquent que le texte n’apparaît que dans la copie de l’instructeur.
Objectifs
Partie 1 : Créer et chiffrer des fichiers
Partie 2 : Récupérer des mots de passe de fichiers zip chiffrés
Contexte/scénario
Imaginons que vous travaillez pour une grande entreprise qui a mis en place une politique relative aux supports amovibles. Cette politique établit que seuls les documents compressés chiffrés peuvent être copiés sur des disques flash USB portables.
Dans ce scénario, le directeur financier, qui est en déplacement, vous contacte en urgence pour vous demander de l’aide. Alors qu’il est en déplacement, il a essayé de décompresser des documents importants à partir d’un fichier zip chiffré stocké sur une clé USB. Malheureusement, le mot de passe fourni pour ouvrir le fichier zip n’est pas valide. Le directeur financier vous demande donc si vous pouvez l’aider à résoudre ce problème.
Remarque : ce scénario est simple et donné uniquement à titre d’exemple.
Plusieurs outils permettent de récupérer des mots de passe oubliés. Cela est particulièrement vrai dans des cas comme celui-ci où l’analyste en cybersécurité peut obtenir des renseignements pertinents de la part du directeur financier. Les informations pertinentes pourraient être la longueur du mot de passe et une idée de ce qu’il pourrait être. De tels renseignements s’avèrent d’une aide précieuse pour récupérer un mot de passe.
Voici quelques exemples de programmes et d’utilitaires de récupération de mot de passe : hashcat, John the Ripper, Lophtcrack, etc. Dans notre scénario, nous allons utiliser fcrackzip, un utilitaire Linux simple qui permet de récupérer les mots de passe des fichiers zip chiffrés.
N’oubliez pas que ces mêmes outils peuvent être utilisés par les hackers pour découvrir des mots de passe inconnus. Même si les hackers n’ont pas accès à certains renseignements précieux, il leur est tout de même possible, avec un peu de temps, de découvrir les mots de passe servant à ouvrir les fichiers zip chiffrés. Le temps nécessaire dépend de la force et de la longueur du mot de passe. Plus un mot de passe est long et complexe (avec différents types de caractères), plus il est sûr.
Au cours de ces travaux pratiques, vous allez :
- Créer et chiffrer des exemples de fichiers texte.
- Déchiffrer le fichier zip chiffré.
Remarque : ce TP doit être utilisé à des fins de formation uniquement. Les méthodes présentées ici ne doivent pas être utilisées pour sécuriser des données sensibles réelles.
Ressources requises
- Poste de travail CyberOps VM
Instructions
Partie 1 : Créer et chiffrer des fichiers
Dans cette partie, vous allez créer plusieurs fichiers texte qui serviront à créer des fichiers zip chiffrés à l’étape suivante.
Étape 1: Créez des fichiers texte.
a. Démarrez le poste de travail virtuel CyberOps.
b. Ouvrez une fenêtre de terminal. Vérifiez que vous vous trouvez dans le répertoire de base de l’analyste. Si ce n’est pas le cas, saisissez cd ~ dans l’invite du terminal.
c. Créez un nouveau dossier appelé Zip-Files à l’aide de la commande mkdir Zip-Files.
d. Accédez à ce répertoire en utilisant la commande cd Zip-Files.
e. Saisissez les données suivantes pour créer trois fichiers texte.
[analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte > sample-1.txt [analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte > sample-2.txt [analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte > sample-3.txt
f. Vérifiez que les fichiers ont été créés à l’aide de la commande ls.
[analyst@secOps Zip-Files]$ ls -l total 12 -rw-r—r— 1 analyste 27 mai 13 10:58 sample-1.txt -rw-r—r— 1 analyste 27 mai 13 10:58 sample-2.txt -rw-r—r— 1 analyste 27 mai 13 10:58 sample-3.txt
Étape 2: Compresser et chiffrer les fichiers texte
Nous allons désormais créer plusieurs fichiers compressés chiffrés avec des mots de passe de longueur variable. Pour ce faire, les trois fichiers texte seront chiffrés à l’aide de l’utilitaire zip.
a. Créez un fichier zip chiffré nommé file-1.zip contenant les trois fichiers texte à l’aide de la commande suivante :
[analyst@secOps Zip-Files]$ zip –e file-1.zip sample*
b. Lorsque vous êtes invité à saisir un mot de passe, saisissez un mot de passe d’un caractère de votre choix. Dans l’exemple, c’est la lettre B qui est utilisée. Saisissez la même lettre lorsque vous êtes invité à confirmer le mot de passe.
[analyst@secOps Zip-Files]$ zip -e file-1.zip sample-* Saisir le mot de passe : Vérifier le mot de passe : adding: sample-1.txt (stored 0%) adding: sample-2.txt (stored 0%) adding: sample-3.txt (stored 0%)
c. Répétez la procédure pour créer les 4 autres fichiers suivants
- file-2.zip using a 2-character password of your choice. Dans notre exemple, nous avons utilisé R2.
- file-3.zip, avec un mot de passe de 3 caractères de votre choix. Dans notre exemple, nous avons utilisé 0B1.
- file-4.zip, avec un mot de passe de 4 caractères de votre choix. Dans notre exemple, nous avons utilisé Y0Da.
- file-5.zip, avec un mot de passe de 5 caractères de votre choix. Dans notre exemple, nous avons utilisé C-3P0.
d. Vérifiez que tous les fichiers zip ont été créés à l’aide de la commande ls -l f*.
[analyst@secOps Zip-Files]$ ls -l f* -rw-r--r-- 1 analyst analyst 643 May 13 11:01 file-1.zip -rw-r--r-- 1 analyst analyst 643 May 13 11:02 file-2.zip -rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-3.zip -rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-4.zip -rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-5.zip
e. Essayez d’ouvrir un fichier zip à l’aide d’un mot de passe erroné comme indiqué ci-dessous.
[analyst@secOps Zip-Files]$ unzip file-1.zip Archive: file-1.zip [file-1.zip] sample-1.txt password: password incorrect--reenter: password incorrect--reenter: skipping: sample-1.txt incorrect password [file-1.zip] sample-2.txt password: password incorrect--reenter: password incorrect--reenter: skipping: sample-2.txt incorrect password [file-1.zip] sample-3.txt password: password incorrect--reenter: password incorrect--reenter: skipping: sample-3.txt incorrect password
Partie 2 : Récupérer des mots de passe de fichiers zip chiffrés
Dans cette partie, vous allez utiliser l’utilitaire fcrackzip pour récupérer des mots de passe oubliés à partir de fichiers compressés chiffrés. Fcrackzip recherche les fichiers chiffrés dans chaque fichier zip et tente de deviner le mot de passe associé à l’aide de méthodes de force brute.
Nous avons créé des fichiers zip avec des mots de passe de différentes longueurs pour voir si la longueur du mot de passe a une incidence sur le temps nécessaire pour découvrir le mot de passe.
Étape 1: Présentation de l’outil fcrackzip
Dans la fenêtre du terminal, saisissez la commande fcrackzip –h pour afficher les options de commande associées.
Dans nos exemples, nous utiliserons les options de commande –v, -u et -l. L’option -l apparaîtra en dernier, car elle spécifie la longueur de mot de passe possible. N’hésitez pas à tester d’autres options.
Étape 2: Récupérer des mots de passe à l’aide de fcrackzip
a. Essayez maintenant de récupérer le mot de passe du fichier file-1.zip. Rappelons qu’un mot de passe d’un caractère a été utilisé pour chiffrer le fichier. Vous devez donc utiliser la commande fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip -vul 1-4 file-1.zip found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754) found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756) found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757) PASSWORD FOUND!!!!: pw == B
Remarque: La longueur de mot de passe aurait pu être définie sur moins de 1 à 4 caractères
Combien de temps faut-il pour découvrir le mot de passe ?
Cela prend moins d’une seconde.
b. Essayez maintenant de récupérer le mot de passe du fichier file-2.zip. Rappelons qu’un mot de passe de deux caractères a été utilisé pour chiffrer le fichier. Vous devez donc utiliser la commande fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-2.zip found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754) found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756) found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757) PASSWORD FOUND!!!!: pw == R2
Combien de temps faut-il pour découvrir le mot de passe ?
Cela devrait prendre environ une seconde.
c. Répétez l’opération pour récupérer le mot de passe du fichier file-3.zip. Rappelons qu’un mot de passe de trois caractères a été utilisé pour chiffrer le fichier. Chronométrez le temps nécessaire pour découvrir un mot de passe de trois lettres. Utilisez la commande fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-3.zip found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754) found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756) found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757) PASSWORD FOUND!!!!: pw == 0B1
Combien de temps faut-il pour découvrir le mot de passe ?
Les réponses varieront en fonction de la plate-forme et du mot de passe réel utilisé, mais cela devrait prendre environ une seconde ou deux.
d. Combien de temps faut-il pour découvrir un mot de passe de quatre caractères ? Répétez l’opération pour récupérer le mot de passe du fichier file-4.zip. Chronométrez le temps nécessaire pour découvrir le mot de passe à l’aide de la commande fcrackzip :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-4.zip found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754) found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756) found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757) checking pw X9M~ PASSWORD FOUND!!!!: pw == Y0Da
Combien de temps faut-il pour découvrir le mot de passe ?
Les réponses varieront en fonction de la plate-forme et du mot de passe utilisé, mais cela devrait prendre quelques secondes.
e. Combien de temps faut-il pour découvrir un mot de passe de cinq caractères ? Répétez l’opération pour récupérer le mot de passe du fichier file-5.zip. Le mot de passe comprend cinq caractères. Nous devons donc définir l’option de commande -l sur 1-5. Chronométrez à nouveau le temps nécessaire pour découvrir le mot de passe à l’aide de la commande fcrackzip :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-5 file-5.zip found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754) found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756) found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757) checking pw C-H*~ PASSWORD FOUND!!!!: pw == C-3P0
Combien de temps faut-il pour découvrir le mot de passe ?
Les réponses varieront en fonction de la plate-forme et du mot de passe utilisé, mais cela devrait prendre environ deux minutes.
f. Récupérer un mot de passe de 6 caractères à l’aide de fcrackzip
Il semble que plus le mot de passe est long, plus cela prend de temps pour le découvrir, ce qui signifie qu’il est aussi plus sécurisé. Toutefois, un mot de passe de 6 caractères ne suffit pas à décourager un hacker.
D’après vous, combien de temps faudrait-il à fcrackzip pour découvrir un mot de passe de 6 caractères ?
Les réponses varieront.
Pour répondre à cette question, créez un fichier nommé file-6.zip avec un mot de passe de 6 caractères de votre choix. Dans notre exemple, nous avons utilisé JarJar.
[analyst@secOps Zip-Files]$ zip –e file-6.zip sample*
g. Répétez l’opération pour récupérer le mot de passe du fichier file-6.zip à l’aide de la commande fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-6 file-6.zip
Combien de temps faut-il à fcrackzip pour découvrir le mot de passe ?
Les réponses varieront en fonction de la plate-forme et du mot de passe utilisé, mais cela prendra beaucoup plus de temps (heures).
La logique est simple, plus le mot de passe est long, plus il est sûr, car il faut davantage de temps pour le découvrir.
D’après vous, quelle doit être la longueur d’un mot de passe pour qu’il soit sûr ?
Les réponses varieront.