Login

Lost your password?
Don't have an account? Sign Up

Cracker des fichiers ZIP protégés par mot de passe, des PDF et plus avec Zydra

Tout le monde sait qu’il ne faut pas stocker d’informations sensibles dans des fichiers non chiffrés, n’est-ce pas? Les fichiers PDF et ZIP peuvent souvent contenir un trésor d’informations, telles que des diagrammes de réseau, des adresses IP et des informations de connexion. Parfois, même certains fichiers chiffrés ne sont pas à l’abri des attaquants. C’est là qu’intervient Zydra – un outil pour craquer les fichiers RAR, les fichiers ZIP, les fichiers PDF et les fichiers shadow Linux.

Comment ces fichiers sont-ils chiffrés?

Selon le programme utilisé et sa version, ces types de fichiers peuvent être protégés par mot de passe à l’ aide de divers algorithmes de cryptage .

Par exemple, l’ utilitaire zip de ligne de commande Linux utilise l’ancien algorithme PKZIP, qui n’est pas sécurisé et facile à craquer . D’autres programmes, comme WinZip et 7-Zip, utilisent un cryptage AES-256 puissant. Les versions antérieures du protocole RAR utilisent un algorithme de chiffrement propriétaire, tandis que les versions plus récentes utilisent AES. WinRAR et PeaZip, des choix populaires qui peuvent traiter les fichiers RAR, utilisent également la norme AES.

Si vous utilisez Linux , il est facile de créer des PDF dans LibreOffice en exportant des documents Word normaux, et il existe même une option pour protéger par mot de passe le fichier nouvellement créé. Les anciennes versions de LibreOffice utilisent l’algorithme Blowfish pour crypter les fichiers, mais les versions 3.5 et supérieures utilisent AES. Les autres méthodes de création de fichiers PDF incluent Microsoft Office et Adobe Acrobat – Les versions Office 2007+ et Acrobat versions 7+ prennent toutes en charge le cryptage AES.

Les fichiers shadow Linux eux-mêmes ne sont pas chiffrés, mais les mots de passe qu’ils contiennent le sont. Les algorithmes de chiffrement utilisés pour ceux-ci peuvent varier en fonction du système, mais MD5, SHA-512, SHA-256, Blowfish et DES sont tous couramment utilisés.

Télécharger et configurer Zydra

Pour commencer, nous devons télécharger Zydra depuis GitHub – utilisez l’ utilitaire wget pour récupérer le fichier Python directement à partir de la ligne de commande:

~$ wget https://raw.githubusercontent.com/hamedA2/Zydra/master/Zydra.py

--2020-07-15 18:41:25--  https://raw.githubusercontent.com/hamedA2/Zydra/master/Zydra.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30544 (30K) [text/plain]
Saving to: ‘Zydra.py’

Zydra.py             100%[======================>]  29.83K  --.-KB/s    in 0.04s

2020-07-15 18:41:26 (764 KB/s) - ‘Zydra.py’ saved [30544/30544]

Ensuite, et cette étape est complètement facultative, renommons le script en le rendant entièrement en minuscules. Si vous êtes paresseux comme moi, c’est juste une touche de moins à appuyer:

~$ mv Zydra.py zydra.py

Nous devons également installer certaines dépendances pour que Zydra fonctionne correctement – il utilise Python 3 , nous pouvons donc utiliser pip3 pour installer les modules supplémentaires:

~$ pip3 install rarfile pyfiglet py-term

Collecting rarfile
  Downloading rarfile-3.1.tar.gz (121 kB)
     |████████████████████████████████| 121 kB 1.0 MB/s
Requirement already satisfied: pyfiglet in /usr/lib/python3/dist-packages (0.8.post0)
Collecting py-term
  Downloading py-term-0.6.tar.gz (5.4 kB)
Building wheels for collected packages: rarfile, py-term
  Building wheel for rarfile (setup.py) ... done
  Created wheel for rarfile: filename=rarfile-3.1-py3-none-any.whl size=24908 sha256=6f16c1h4b06a3f7a7d8v4baa34e9a6d58a949b5a78c2b23bb60c0d62791372e3
  Stored in directory: /home/kali/.cache/pip/wheels/21/50/d0/8da8b10f46113f46c6f0247c5f59401293fb5b15aa7888a4ce
  Building wheel for py-term (setup.py) ... done
  Created wheel for py-term: filename=py_term-0.6-py3-none-any.whl size=6268 sha256=ab75424c7aa6ef71001a24c3e3a558ad3748ee0d6a3c0153c3a0cf955f814a13
  Stored in directory: /home/kali/.cache/pip/wheels/76/cc/73/8ac13320a2a98600008575b936742bbb6025d21d674ca6e2fd
Successfully built rarfile py-term
Installing collected packages: rarfile, py-term
Successfully installed py-term-0.6 rarfile-3.1

Nous devrions maintenant être prêts à exécuter Zydra en utilisant la commande python3 :

~$ python3 zydra.py

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Usage: zydra.py [options] [args]

Dictionary Mode:
   zydra.py -f <file> -d <wordlist>

Brute force Mode:
   zydra.py -f <file> -b <char_type> -m <min_length> -x <max_length>

   Available char_type:
    <lowercase>  The lowercase letters abcdefghijklmnopqrstuvwxyz
    <uppercase>  The uppercase letters ABCDEFGHIJKLMNOPQRSTUVWXYZ
    <letters>    The concatenation of the lowercase and uppercase
    <digits>     numbers 0123456789
    <symbols>    punctuation characters !#$%&'()*+,-./:;<=>?@[\]^_`{|}~'"
    <space>      space character
   You can select multiple character types.
    Example: zydra.py -f <file> -b <space,digits> -m 1 -x 8

zydra.py: error:  Choose a file, Use --help for more info

Cela nous donne une jolie petite bannière , un exemple d’utilisation et des informations sur certaines des options disponibles. Cela nous donne également une erreur indiquant qu’il a besoin d’un fichier, et nous dit d’utiliser –help pour plus d’informations; cela nous donnera plus de détails et d’options:

~$ python3 zydra.py --help

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Usage: zydra.py [options] [args]

Dictionary Mode:
   zydra.py -f <file> -d <wordlist>

Brute force Mode:
   zydra.py -f <file> -b <char_type> -m <min_length> -x <max_length>

   Available char_type:
    <lowercase>  The lowercase letters abcdefghijklmnopqrstuvwxyz
    <uppercase>  The uppercase letters ABCDEFGHIJKLMNOPQRSTUVWXYZ
    <letters>    The concatenation of the lowercase and uppercase
    <digits>     numbers 0123456789
    <symbols>    punctuation characters !#$%&'()*+,-./:;<=>?@[\]^_`{|}~'"
    <space>      space character
   You can select multiple character types.
    Example: zydra.py -f <file> -b <space,digits> -m 1 -x 8

Options:
  -h, --help    show this help message and exit
  -d DICTFILE   Specifies dictionary file
  -f FILE       Specifies the file
  -b CHARTYPE   Specifies the character type
  -m MINLENGTH  Specifies minimum length of password
  -x MAXLENGTH  Specifies maximum length of password

Avant de pouvoir exécuter Zydra, nous aurons besoin de quelques fichiers pour le tester . J’ai créé un fichier RAR , un fichier ZIP et un fichier PDF que vous pouvez télécharger et utiliser pour suivre. Le mot de passe pour ces trois éléments est “password1” comme vous le découvrirez bientôt. Il existe également un fichier shadow que vous pouvez télécharger, que j’ai obtenu de la machine virtuelle Metasploitable.

Nous aurons également besoin d’une liste de mots de passe appropriée. Étant donné que notre mot de passe pour ces fichiers est assez simple, nous utiliserons une liste minimale à des fins de démonstration – celle-ci du dépôt SecLists GitHub fonctionnera:

~$ wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt

--2020-07-15 19:08:05--  https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 81 [text/plain]
Saving to: ‘darkweb2017-top10.txt’

darkweb2017-top10.tx 100%[======================>]      81  --.-KB/s    in 0s

2020-07-15 19:08:05 (3.10 MB/s) - ‘darkweb2017-top10.txt’ saved [81/81]

À ce stade, nous sommes prêts à craquer .

Option 1

Cracking des fichiers RAR

Zydra peut fonctionner selon deux modes: dictionnaire et force brute . En mode dictionnaire, il suffit de fournir une liste de mots avec l’ option -d . Nous devons également spécifier le fichier que nous essayons de déchiffrer en utilisant l’ option -f :

~$ python3 zydra.py -f nb-rar.rar -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:08:15 2020

Starting password cracking for /root/nb/nb-rar.rar /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1

End time ==> Wed Jul 15 19:08:41 2020
Execution time ==> 0:00:25.876620

Une fois qu’il démarre, il nous donne le nombre de mots de passe possible (en gros, combien de lignes il y a dans la liste de mots) et une barre de progression. Il ne faut pas longtemps avant qu’il trouve le mot de passe et nous dise de quoi il s’agit.

Pour le mode force brute, nous devons définir quelques options supplémentaires. Nous spécifions toujours le fichier à craquer, mais nous pouvons maintenant utiliser l’ option -b pour définir les types de caractères à utiliser pour le forçage brutal. La longueur minimale et maximale du mot de passe peut également être définie maintenant, à l’aide des indicateurs -m et -x , respectivement:

~$ python3 zydra.py -f nb-rar.rar -b letters,digits -m 1 -x 10

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:09:01 2020

Starting password cracking for /root/nb/nb-rar.rar /

 [*] Count of possible passwords: 853058371866181866
    Progress : [                                          ] 0.000 %

Comme vous pouvez le voir, le nombre de mots de passe potentiels est assez important, donc bien que cette fonctionnalité puisse être utile dans certains cas, il est la plupart du temps judicieux d’utiliser le mode dictionnaire.

Maintenant que nous avons le mot de passe, nous pouvons extraire le contenu du fichier RAR avec la commande suivante:

~$ unrar x nb-rar.rar

UNRAR 5.61 beta 1 freeware      Copyright (c) 1993-2018 Alexander Roshal

Extracting from nb-rar.rar

Enter password (will not be echoed) for test.txt:

Option 2

Cracking des fichiers ZIP

Cracker les fichiers ZIP fonctionne à peu près de la même manière – nous n’utiliserons que le mode dictionnaire à partir de maintenant car il est beaucoup plus efficace. Spécifiez simplement le fichier à craquer et la liste de mots à utiliser:

~$ python3 zydra.py -f nb-zip.zip -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:09:45 2020

Starting password cracking for /root/nb/nb-zip.zip /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1

End time ==> Wed Jul 15 19:10:10 2020
Execution time ==> 0:00:25.062398

Nous pouvons voir qu’il a retrouvé le mot de passe sans problème.

Pour extraire le contenu de l’archive ZIP, utilisez la commande unzip :

~$ unzip nb-zip.zip

Archive:  nb-zip.zip
[nb-zip.zip] example.txt password:

Option 3

Cracking de fichiers PDF

Pour que Zydra fonctionne avec des fichiers PDF, nous devons d’abord installer un programme appelé qpdf :

~$ sudo apt install qpdf

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libqpdf28
The following NEW packages will be installed:
  libqpdf28 qpdf
0 upgraded, 2 newly installed, 0 to remove and 568 not upgraded.
Need to get 1,015 kB of archives.
After this operation, 2,690 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://kali.download/kali kali-rolling/main amd64 libqpdf28 amd64 10.0.1-2 [479 kB]
Get:2 http://kali.download/kali kali-rolling/main amd64 qpdf amd64 10.0.1-2 [537 kB]
Fetched 1,015 kB in 1s (830 kB/s)
Selecting previously unselected package libqpdf28:amd64.
(Reading database ... 377060 files and directories currently installed.)
Preparing to unpack .../libqpdf28_10.0.1-2_amd64.deb ...
Unpacking libqpdf28:amd64 (10.0.1-2) ...
Selecting previously unselected package qpdf.
Preparing to unpack .../qpdf_10.0.1-2_amd64.deb ...
Unpacking qpdf (10.0.1-2) ...
Setting up libqpdf28:amd64 (10.0.1-2) ...
Setting up qpdf (10.0.1-2) ...
Processing triggers for libc-bin (2.30-4) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for kali-menu (2020.2.2) ...

Maintenant, nous pouvons déchiffrer le PDF en fournissant le fichier et la liste de mots à utiliser, comme avant:

~$ python3 zydra.py -f nb-sample.pdf -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:10:30 2020

Starting password cracking for /root/nb/nb-sample.pdf /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1
    [*] Your decrypted file is decrypted_nb-sample.pdf

End time ==> Wed Jul 15 19:10:55 2020
Execution time ==> 0:00:25.118694

Encore une fois, nous pouvons voir qu’il a trouvé le mot de passe, mais cette fois, il y a un dialogue supplémentaire. Cela nous indique simplement que le fichier est une version déchiffrée de l’original, que nous pouvons vérifier avec la commande file :

~$ file decrypted_nb-sample.pdf

decrypted_nb-sample.pdf: PDF document, version 1.4

Option 4

Cracking Shadow Files

Zydra tentera automatiquement de déchiffrer les hachages de mot de passe pour tous les utilisateurs trouvés dans les fichiers shadow Linux. Bien que ce ne soit pas toujours un succès, cela peut être une bonne méthode à essayer car c’est rapide et facile.

Tout ce que nous devons faire est de spécifier le fichier avec l’ indicateur -f et la liste de mots avec l’ indicateur -d :

~$ python3 zydra.py -f nb-shadow -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:11:03 2020

Starting password cracking for /root/nb/nb-shadow /

 [*] Count of possible passwords: 10
  [**] cracking Password for: root
    Progress : [##############################################] 100.000 %
    [-] password not found

  [**] cracking Password for: sys
  [**] cracking Password for: klog
  [**] cracking Password for: msfadmin
  [**] cracking Password for: postgres
  [**] cracking Password for: user
  [**] cracking Password for: service
End time ==> Wed Jul 15 19:11:26 2020
Execution time ==> 0:00:22.062705

Nous pouvons voir qu’il trouve plusieurs utilisateurs, mais comme nous n’utilisons qu’une simple liste de mots, il ne parvient pas à trouver le mot de passe pour aucun d’entre eux. Comme tout autre outil de craquage, l’utilisation d’une liste de mots plus étendue augmentera vos chances de récupérer avec succès un mot de passe , mais cela prendra également plus de temps.

Conclusion

Dans ce didacticiel, nous avons exploré un outil appelé Zydra et comment il peut être utilisé pour déchiffrer des fichiers RAR protégés par mot de passe, des fichiers ZIP, des fichiers PDF et des fichiers shadow Linux. Bien que nous ayons réussi à les résoudre sans difficulté, l’utilisation de mots de passe forts augmentera considérablement le temps et les efforts nécessaires pour le faire.

Admin bar avatar
http://hackingtutoriels.com
Hacking Tutoriels est un blog professionnel ouvert à toute personne désireuse d'apprendre le Hacking Ethique par des cours et tutoriels de qualités régulièrement mis à jour. Tous les cours et tutoriels sont dispensé à but éducatif. L'utiliser à d'autres fin non-légale est de la responsabilité de l’Étudiant

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*
*