[TUTO] Cracker des mots de passe Windows 10

Bonjour,

Je vais vous montrer ici comment cracker un mot de passe Windows 10 mais certains outils présentés peuvent cracker d'autres types de HASH.

ATTENTION: Ni Wareziens, ni moi-même ne saura en aucun cas tenu responsable de vos actes. Ce tutoriel ne doit être utilisé que sur des appareils qui vous appartiennent.

————————————————————————————————————

SOMMAIRE

A. RESET ET BYPASS DE PASSWORD
B. CRACKER UN MOT DE PASSE WINDOWS

   B1. Dump des fichiers SAM et SYSTEM
   B2. Décrypter le password avec Ophcrack (antérieur à Windows 10)
   B3. Extraire le hash NTLM  de votre password Windows
   B4. Décrypter le hash NTLM afin d'obtenir le mot de passe

        B4A. John the ripper
        B4B. Hashcat

C. CONCLUSION
D. LIENS ET DOCUMENTATION OFFICIELS
E. SOURCES

————————————————————————————————————

A. RESET ET BYPASS DE PASSWORD

– La SAM  pour Security Account Manager ou gestionnaire des comptes de sécurité est la base de données des comptes locaux sur Windows. Elle contient
les mots de passe  locaux. Elle fonctionne de pair avec le fichier SYSTEM.
– L'utilitaire syskey de Microsoft est nécessaire si on veut se protéger contre un attaquant local (personne ayant un accès physique au local où se trouve le PC).
Cet utilitaire permet d'améliorer la sécurité sur la clé de chiffrement des mots de passe.
(https://support.microsoft.com/fr-fr/hel … y-accounts)

– Des logiciels comme Offline NT Password & Registry Editor font le boulot comme il faut. On peux reset un mot de passe d'un compte, ou bien en créer un nouveau avec les droits administrateur qu'on peut supprimer par la suite.

Le site officiel:
https://pogostick.net/~pnh/ntpasswd/

– Un tuto ici:
http://www.octetmalin.net/windows/tutor … editor.php

– On peux sinon utiliser des suites de  logiciels de dépannage comme Hiren's boot cd par exemple qui a été mis à jour après plus de 6 ans d’absence,  pour modifier la SAM, Offline NT Password & Registry  y est disponible aussi d'ailleurs.

– L’intérêt est qu'avec des logiciels intégrés à HBCD comme Lazesoft Password Recovery v4.0.0.1 et NT Password Edit v0.7, on aura une interface graphique sur un Win10 PE, ce qui est plus simple pour le débutant contrairement à Offline NT Password & Registry

Liens:

ntpwedit06.png

– Pour les PC inférieur à Windows 10, on peux aussi utiliser la dernière version gratuite de Kon Boot (v2.5). Pour Windows 10, il faudra passer à la caisse.

Kon-Boot est un live CD qui permet de booter un Windows ou un Linux lorsqu’on a perdu son mot de passe. Si c’est sur un Windows, vous n’avez rien à faire… Il suffit de démarrer votre PC avec ce live CD puis de rentrer n’importe quel mot de passe lors du login.

– Si c’est pour un Linux, même chose, sauf qu’au login, vous devez entrer le login kon-usr (ou kon-fix si ça ne fonctionne pas du premier coup). Et hop, magie magie, vous serez en root sur la machine.
– Lorsque vous avez fini, n’oubliez pas de vous logger avec kon-fix une dernière fois pour restaurer la configuration d’origine.

Un tuto:

– On peux aussi tenter d'utiliser la faille utilman.exe. Elle a été patchée depuis peu. Tout dépends de la machine

Un tuto:

B. CRACKER UN MOT DE PASSE WINDOWS

– Comment peut on retrouver son mot de passe Windows lorsqu’on l'a oublié?

On a pas beaucoup de solutions pour s 'en sortir:

  • On reformate et réinstalle Windows: Méthode bourrin

  • On reset le password avec les méthodes vu ci-dessus

  • On décode le fichier SAM pour en trouver le mot de passe.

B1. Dump des fichiers SAM et SYSTEM

– Je pars du principe qu'on à accès à la machine pour lancer un Live CD comme Hiren's Boot ou Kali Linux.

Un petit tuto pour faire une clé USB bootable de HBCD ou Kali :

Si pas d'accès physique à la machine mais sur le même réseau vous pouvez tester ce tuto (non testé pour ma part) :

On peux aussi tester les failles suivantes si ça vous intéresse (non testé pour ma part) :

– Le fichier SAM et SYSTEM nécessaires sont trouvable dans %SYSTEMROOT%System32config. Il suffit de les copier sur une clé USB ou tout simplement  par les 2 commandes suivantes par le biais de HBCD ou Kali linux :
reg save HKLMSAMC:sam
reg save HKLMSYSTEMC:system

Pour ma part, je l'ai fait sous Kali linux :

Une fois les 2 fichiers récupérés, nous avons 2 choix :

  • Si la machine est inférieur à Windows 10, utiliser Ophcrack pour directement tenter une récupération du mot de passe.

  • Décrypter et récupérer le hash du password pour pouvoir faire du brute force ou une attaque par dictionnaire.

!! Le second choix est aussi valide pour les machines inférieurs à Windows 10 !!

B2. Décrypter le password avec Ophcrack (antérieur à Windows 10)

Ophcrack est dispo sous linux, directement installé dans Kali Linux et existe aussi pour Windows. Il utilise des tables dites RAINBOW (Arc en ciel) pour décrypter un fichier  SAM/SYSTEM et un hash de password.

Il est dispo ici:

– Il vous faudra télécharger les tables XP et Vista, plus elles sont grosses, mieux c'est.
Elles sont dispo ici : https://ophcrack.sourceforge.io/tables.php

– Lancez Ophcrack et indiquer manuellement à ophcrack ou chercher chacune des tables :
ophcrack-table.jpg

– Cliquez sur le bouton Load et choisissez Encrypted SAM
ophcrack-table-1.jpg

– Sélectionnez le dossier ou se trouve vos 2 fichiers SAM et SYSTEM.

– Cliquez ensuite sur le bouton Crack:
ophcrack-table-3.jpg

– Laissez faire et découvrez votre mot de passe, le mien était  "okey", tout dépendra de la complexité du mot de passe et des perf de votre machine:
ophcrack-table-5.jpg

B3. Extraire le hash NTLM  de votre password Windows

– Pour pouvoir faire une attaque par dictionnaire ou par bruteforce, il va falloir récupérer le hash NTLM de notre password qui est encrypté dans la SAM récupérée précédemment. Nous allons utiliser Mimikatz car pour l'instant c'est le seul que je connaisse a avoir été mis à jour depuis que Windows 10 a crypté en AES la SAM. Pour les systèmes inférieur PWDUMP faisait le job, SAMDUMP etc…

– Mimikatz est dispo sous Kali linux (en msf pour les exploits) et dispo sous Windows. Attention, il est considéré comme un virus par la plupart des antivirus du marché. Il vous faudra donc le copier avant de DEL et extraire les fichiers de Mimikats.
Il est dispo ici :

– Nous allons le lancer avec nos 2 fichiers (SAM et SYSTEM) en paramètres afin de récupérer le hash du password
– On le lance avec la commande des 2 fichiers en paramètres (adapter le chemin) :
lsadump::sam/system:C:UsersWar10cKDesktopSaMtestwinSYSTEM /SAM:C:UsersWar10cKDesktopSaMtestwinSAM

4s7x.png
y4jm.png

– Récupérer le hash NTLM correspondant à votre utilisateur (les plus habitués reconnaitrons facilement ce hash!!!) :
e2u9.png

B4. Décrypter le hash NTLM afin d'obtenir le mot de passe

En premier lieu, voyons les différends types d'attaques et comment elles fonctionnent:

  • Attaque par dictionnaire (Straight): Une attaque par dictionnaire entre chaque mot dans un dictionnaire comme mot de passe. Cela supprime une partie du caractère aléatoire d'une attaque par force brute, réduisant le temps nécessaire pour trouver le mot de passe, à condition que le mot de passe se trouve dans le dictionnaire, bien sûr.Notez que «dictionnaire» ne fait pas littéralement référence à un simple dictionnaire anglais; les entrées d'un dictionnaire de cryptographie peuvent inclure des substitutions courantes (par exemple, «4pple» pour «apple») et des entrées numériques.Un exemple courant est une attaque de table arc-en-ciel. Une table arc-en-ciel est essentiellement un dictionnaire optimisé pour les valeurs de hachage courantes ainsi que les mots de passe. Une attaque arc-en-table est donc une attaque par dictionnaire, mais avec un dictionnaire spécialisé optimisé pour la tentative de craquage.

  • Attaque par force brute (brute force): Une attaque par force brute essaie de manière exhaustive toutes les combinaisons possibles de lettres, de chiffres et de symboles pour déchiffrer un mot de passe. C'est le moyen le plus simple de déchiffrer un mot de passe, mais aussi le plus inefficace, car il perd beaucoup de temps à faire des suppositions improbables. La plupart des types de chiffrement empêchent efficacement une attaque par force brute en utilisant des algorithmes de hachage pour ralentir la saisie du mot de passe. Des mots de passe plus longs peuvent également faire échouer cette technique. Par exemple, une attaque par force brute peut prendre 5 minutes pour casser un mot de passe à 9 caractères, mais 9 heures pour un mot de passe à 10 caractères, 14 jours pour 11 caractères et 3,9 ans pour 12 caractères.

  • Attaque de table arc-en-ciel (Rainbow): Cette méthode utilise des hachages pré-calculés. Supposons que nous ayons une base de données qui stocke les mots de passe sous forme de hachages md5. Nous pouvons créer une autre base de données contenant des hachages md5 de mots de passe couramment utilisés. Nous pouvons ensuite comparer le hachage de mot de passe que nous avons avec les hachages stockés dans la base de données. Si une correspondance est trouvée, nous avons le mot de passe.

  • Attaque par masque (Mask Attack): Similaire à une attaque par force brute, mais avec des règles pour réduire le nombre d'entrées. Il est extrêmement utile si certains des caractères sont connus ou si les types de caractères sont connus. Par exemple, si un utilisateur sait que son mot de passe a une lettre majuscule au début et trois chiffres à la fin, l'attaque par masque serait bien plus efficace qu'une simple attaque par force brute. Les masques sont souvent générés par l'attaquant.

  • Attaque par combinaison (Combination): Cette attaque ajoute des entrées de dictionnaire à d'autres entrées de dictionnaire. Il est efficace car les utilisateurs choisissent souvent des phrases secrètes qui combinent quelques phrases courantes faciles à retenir, par exemple «mot de passe123». Supposons que le dictionnaire pour une attaque combinatoire ait les mots "chien" et "chat". Le combinateur essaierait "chienchat" et "chatchien" comme mots de passe possibles. Une attaque combinatoire peut être extraordinairement efficace pour casser des phrases secrètes générées par l'utilisateur, mais elle n'est pas trop efficace pour casser des phrases secrètes créées par la machine.

  • Attaque par empreinte digitale (fingerprint attack) : Il s'agit d'un type d'attaque assez nouveau, et sa méthode est assez sophistiquée. Il décompose les phrases de passe possibles en «empreintes digitales», des combinaisons à un ou plusieurs caractères qu'un utilisateur peut choisir. Pour le mot «chien», la technique créerait des empreintes digitales comprenant «c», «h», «i», «e» «n»ainsi que «chi» et «ien».Cela peut être une attaque particulièrement efficace lorsqu'un utilisateur se souvient d'une partie d'un mot de passe. Cependant, en raison de sa sophistication, il nécessite une puissance de calcul extraordinaire.

  • Attaque hybride (hybrid attack) : Il s'agit d'un mélange d'un dictionnaire et d'une attaque par force brute. Il renforce une attaque de dictionnaire en plaçant une chaîne de caractères de force brute au début ou à la fin des entrées du dictionnaire.Par exemple, «logiciel» peut être ajouté à «logiciel001», «logiciel002», «001logiciel» et ainsi de suite.

  • Attaque par permutation (Permutation attack) : Une attaque par permutation utilise un dictionnaire, mais chaque entrée du dictionnaire génère également des permutations d'elle-même. Pour le mot «chien», une attaque par permutation créerait les entrées «neihc», «ienhc», «iechn», «nchie» …

  • Attaque PRINCE (PRINCE Attack) :Signifie «PRobability INfinite Chained Elements». L'attaque PRINCE utilise un algorithme pour essayer les candidats de mot de passe les plus probables avec une attaque combinatrice. Il crée des chaînes de mots combinés en utilisant un seul dictionnaire.

  • Attaque basée sur des règles (Rule-based attack): Comme son nom l'indique, une attaque basée sur des règles utilise des règles pour éliminer les possibilités. C'est l'un des types d'attaques les plus complexes, mais les possibilités sont infinies. Un ingénieur de récupération de mot de passe pourrait créer tous les critères nécessaires pour éliminer les suppositions différentes ou impossibles.

  • Attaque par recherche de table (Table-Lookup attack): Chaque mot d'un dictionnaire génère des masques pour une attaque par masque tout en créant de nouveaux mots en consultant un tableau. En termes simples, il est efficace pour deviner les mots de passe lorsque l'utilisateur a remplacé un ou plusieurs caractères par des chiffres ou des symboles (par exemple, "m $ ney" au lieu de "money").

  • Attaque à bascule (Toggle-Case attack):  Cette attaque crée toutes les combinaisons de casse possibles pour chaque mot d'un dictionnaire. Le mot de passe candidat «do» générerait également «Do» et «dO».

  • Guess:  Comme son nom l'indique, cette méthode implique de deviner. Les mots de passe tels que qwerty, mot de passe, admin, etc. sont couramment utilisés ou définis comme mots de passe par défaut. S'ils n'ont pas été modifiés ou si l'utilisateur est imprudent lors de la sélection des mots de passe, ils peuvent être facilement compromis. (Nous le verrons d'ailleurs après!!!)

  • Spidering:  La plupart des organisations utilisent des mots de passe qui contiennent des informations sur l'entreprise. Ces informations peuvent être trouvées sur les sites Web de l'entreprise, les médias sociaux tels que Facebook, Twitter, etc. Spidering recueille des informations à partir de ces sources pour créer des listes de mots. La liste de mots est ensuite utilisée pour effectuer des attaques par dictionnaire et par force brute.

A mon sens, la méthode la plus simple est la suivante

  • On essai d'abord de de devinez le mot de passe avec des choses courantes.

  • On test notre hash récupéré par Mimikatz à une base de données de hash sur internet (voir plus loin)

  • On trouve des informations sur sa victime, nom, prénom, date de naissance, nom du chien de la soeur, de la mère etc… Facebook et réseaux sociaux sont vosamis smile

  • On fais une attaque par dictionnaire avec ses mots avec un logiciel de crack

  • On fais une attaque par dictionanire classique avec un logiciel de crack

  • On essaie d'autres types d'attaques

  • On fais du brute force en dernier lieu (car ça peut être très long)

Il existe plusieurs logiciels de crack de mot de passe :

  • John The Ripper: Le plus connu. John the Ripper utilise l'invite de commande pour casser les mots de passe. Cela le rend approprié pour les utilisateurs avancés qui sont à l'aise avec les commandes. Il existe une GUI appelé johny. Il est capable de faire des attauqyes par dicoctionnaire, du brute force etc.. ;C'est un outils très polyvalent.. Le programme est gratuit, Il a des dictionnaires alternatifs gratuits que vous pouvez utiliser.

  • http://www.openwall.com/john/

  • Hashcat: Hashcat propose plusieurs types d'attaques différentes. Les plusconnues bien sûr sont le Brute-Force etl'attaque par dictionnaire(Straight), mais,on retrouve aussi des attaques par masque(Mask), par combinaison(Combination), par régles(Rules-Attacks) et enfin les attaques hybride qui plusieurs plusieurs de cesattaques.Hashcat est un outil très complet en matière de crackage de mots depasse, il possède 238 mode de crackage de hash (salage de mots de passe

  • compris) : du MD5 au SHA3, du MD5 chiffrer en SHA1, etc… Jusqu'à l'Etherumet Bitcoin Wallet !

  • Hashcat permet aussi l'utilisation des GPU pour accélérer lescalculs, ce qui en fait l'utilitaire le plus puissant de sa catégorie !

  • https://hashcat.net/hashcat/

  • RainbowCrack: RainbowCrack est un logiciel capable de générer des tables arc-en-ciel et de faire du crack de hash avec celles-ci.

  • http://project-rainbowcrack.com/

  • Cain & Abel: Il fonctionne sur Windows. Il est utilisé pour récupérer les mots de passe des comptes d'utilisateurs, la récupération des mots de passe Microsoft Access; réseau sniffing, etc. Contrairement à John the Ripper, Cain & Abel utilise une interface utilisateur graphique. Il est très fréquent chez les débutants et les script kiddies en raison de sa simplicité d'utilisation mais il est très vieux et austère.

  • http://www.softpedia.com/get/Security/D … Abel.shtml

  • Ophcrack: Ophcrack est un cracker de mot de passe Windows multiplateforme qui utilise des tables arc-en-ciel pour cracker les mots de passe. Il fonctionne sous Windows, Linux et Mac OS. Il dispose également d'un module pour les attaques par force brute, entre autres fonctionnalités. C'est un dinosaure et je n'ai pas réussi à le faire fonctionner sur des SAM Windows 10 (Si vous y arrivez, je suis preneur!!)

  • http://ophcrack.sourceforge.net/

  • SamInside: SAMInside se sert d'une technique d'extraction du nom et du mot de passe tout en utilisant un langage d'encodage spécifique. Le programme est capable de recourir à cette technique pour le type d'attaque des mots de passe chiffrés. On compte en tout une dizaine d'importations de données dont les fichiers LCP, LCS et HDT. Il inclut également 4 types d'attaque principaux dont le masquage, l'attaque par dictionnaire et le système d'hybridation.  L'utilisation de ce logiciel ne nécessite aucune installation. Il peut s'exécuter à partir de n'importe quel périphérique amovible tel qu'une disquette, un CD/DVD ou une clé USB. Un simple enregistrement suffit pour que toutes ses fonctionnalités puissent être exploitées.

Avant d'utiliser un logiciel de crack, il est intéressant de voir si notre hash est connu à partir de sites répertoriant les hash. Il en existe une pléthore, je vous laisse googler si besoin :

Si le mot de passe est simple, vous le retrouverez de cette manière !

B4A. John the ripper

Les modes de fonctionnement de John the Ripper
:

  • Mode 1: single (simple)

    • John utilise les informations login/GECOS des utilisateurs (nom, prenom, login, etc.) en y appliquant les règles de transformations définies dans le fichier john.conf. Il ’agit du mode le plus rapide, il ne dure en général que quelques secondes. Les mots de passe trouvés sont essayés sur toute la liste au cas où deux utilisateurs aient le même mot de passe.

  • Mode 2 : wordlist (dictionnaire)

    • Les dictionnaires sont des fichiers texte, contenant un mot (ou expression) par ligne. Il en existe pour toutes les langues et tous les domaines d’activité. Les utilisateurs GNU/Linux ont en général deux dictionnaires sur leur système (/usr/share/dict), un en anglais et un dans la langue locale. Les performances sont légèrement améliorées lorsque le fichier est trié par ordre alphabétique.

  • Mode 3 : incremental (incrémental brut)

  • Le mode incrémental essaie toutes les combinaisons de caractères dans une plage donnée (e.g. jusqu’à 8 caractères), à partir d’un jeu de caractères définis (e.g. seulement les lettres minuscules). Ce mode est très long ; il n’est jamais mené à son terme (que l’on peut estimer en fonction des plages données à plusieurs dizaines d’années). Afin d’en améliorer un peu l’efficacité, John base ses essais sur des tables de fréquence d’utilisation des caractères. Le mode incrémental est activé avec l’option -i (ou –incremental)

Utilisation du programme

– Afficher l'aide :
john -h
4ir6.png

– utilisation de base (brute force):
john emplacement_du_fichier_de_hash
– Pour connaitre ou en est le crack, appuyer sur la barre espace :
bn48.png

– Appuyer sur [Ctrl+z] pour mettre John en pause
Reprendre le job de John :
jobs
fg 15kbq.png

– John peux aussi nous afficher le résultat toutes les X secondes si besoin :
john -progress-every=3 emplacement_du_fichier_de_hash

– une fois le password cracké on peut le voir comme cela:
john –show emplacement_du_fichier_de_hash?

– Utilisation basique en stipulant le format du HASH (ici NTLM) :
john –format=NT emplacement_du_fichier_de_hash
– Pour connaitre les formats et sous-formats disponibles:
john –list=formats
john –list=subformatsbw4w.png

– Utilisation avec une attaque par dictionnaire en spécifiant le format et le dictionnaire :
john –wordlist=/usr/share/wordlists/rockyou.txt –format=NT /root/Bureau/hashINFO: par défaut et sans action de notre part, John utilisera son propre dictionnaire disponible dans /usr/share/john/password.lst.
L'attaquant peut bien sur utiliser sa propre Wordlist, ça ne reste qu'un fichier texte de base.

Ici, j'ai utilisé le dictionnaire assez connu nommé rockyou qui est disponible de base sous Kalilinux.
Pour windows il est téléchargeable ici :

Une autre connu est la darkc0de.lst dispo ici et ici:

Et d'autres ici :

Sous Kali voici comment le trouver et utiliser le dictionnaire rockyou:
locate rockyounmqb.png
3qs3.png

On se déplace à l'endroit du dictionnaire et on l'extrait :
cd/usr/share/wordlist/
gzip -d rockyou.txt.gz
zbo8.png

et voila, rockyou est utilisable pour John.

Idées sympa sur les dictionnaires

– Assembler tous les fichiers de dictionnaires pour les travailler plus facilement :
cat wordlist1 wordlist2 wordlist3 > big_wordlist.txt
– Classer les password par ordre alphabétique et supprimer les doublons :
cat big_wordlist.txt | sort | uniq  > big_wordlist_final.txt
INFO:

– Pour réaliser un véritable audit, il peut être intéressant de récupérer quelques infos comme les noms, prénoms, adresses, date de naissance… des
utilisateurs. Ces infos seront à placer dans un dictionnaire et à tester en premier lieu.

– Ne pas confondre SAM locale et SAM AD. Une base SAM AD ne contient pas d'empreinte LM donc seule une attaque brute force (longue voire très longue) arrivera à ces fins. Donc il est possible de tester une base SAM d'un Active Directory server 2008R2 par exemple. N'oubliez pas qu'un poste de travail conserve une copie des 10 dernières connexions utilisateurs de domaine !

Utilisation avec en précisant le mode :
john –single emplacement_du_fichier_de_hash?
john –incremental emplacement_du_fichier_de_hash?
john –wordlist emplacement_du_fichier_de_hash?

– Utilisation du dictionnaire en utilisant les règles Mangling (Mangling est un pré-processeur que John utilise pour optimiser les dictionnaires pour rendre le crack plus rapide):
john –wordlist=”wordlist.txt” –rules emplacement_du_fichier_de_has
– Testons donc maintenant une attaque avec le dictionnaire rockyou (non obligatoire, celle de John peux suffire) sur le fichier de hash NTLM  récupéré précédemment par Mimikatz en précisant le format du hash (NT) :
john –wordlist=/usr/share/wordlists/rockyou.txt –format=NT /root/Bureau/hash
– On affiche aussi le résultat avec :
john –show –format=NT /root/Bureau/hash
n1ly.png

!!! Et bingo le mot de passe est cracké en très peu de temps vu que celui-ci était 123 !!!

Les infos des passwords crackés sont visible dans /root/.john/john.pot
gtwr.png

Vous l'aurez compris, le temps de crack dépendra de la complexité du mot de passe !!

La signature du hash est bien sur connu et visible sur les sites cités plus haut :
gwy0.png

B4B. Hashcat

Hashcat est un outil très complet en matière de crackage de mots de passe et est certainement le plus performant puisqu'il utilise le GPU en supplément, il possède 238 mode de crackage de hash (salage de mots de passe compris) : du MD5 au SHA3, du MD5 chiffrer en SHA1, etc… Jusqu'à l'Etherum et Bitcoin Wallet !
– Hashcat est réputé comme être le logiciel le plus rapide pour cracker des hashs. Grâce à sa programmation pour utiliser du multi-thread, et pour l'utilisation des GPU pour accélérer les calculs en plus du CPU.

Pour cela vérifier d'abord que votre matériel est compatible sur:

Il fonctionne aussi sous Windows, liens de téléchargement :

———————————-
FACULTATIF: Installation des drivers GPU pour Mimikatz
———————————-

– Mettre à jour la distribution:apt-get update && apt dist-upgrade -y&& reboot

– Une fois mis à jour, il faudra déterminer et vérifier le nom exact de votre GPU, ainsi que le module du Kernel qu'il utilise, utilisez la
commande :
lspci -v
– Une fois que votre système a été redémarré, nous allons installer le OpenCL ICD Loader, les drivers, et le toolkitCUDA :
apt install -y ocl-icd-libopencl1nvidia-driver nvidia-cuda-toolkit
– Vérifier l'installation  :
nvidia-smi
– Vérifier aussi que le Hashcat soit aussi capable de détecter le GPU.
Hashcat -I
———————————-

Hashcat s'utilise selon cette commande :
hashcat [options]… hash|hashfile|hccapxfile[dictionary|mask|directory
– Tout d'abord, nous allons voir les différentes fonctionnalités de hashcat. Pour les voir, tapez dans votre terminal :
hashcat –help0yha.png

Ouch, ça fait pas mal d'options tout ça !!

Pour plus de lisibilité, elles sont ici :

Voici les plus importantes pour nous :

  • -m:  type de hash 

  • -a: type d'attaque

  • -0: Output

– Le hash qui nous intéresse ici est le NTLM portant le numéro 1000

Voici les types d'attaques disponibles :

  • # | Mode ===+======

  • 0 | Straight: Cette attaque est celle par défaut, et c'est aussi le nom pour l'attaque par dictionnaire.

  • 1 | Combination: Cette attaque permet de faire des combinaison entre deux dictionnaires,

  • On retrouvera par exemple : hascat -m 0 -a1 hash.txt dictionaire1.txt dictionnaire.txt . On aura dans dictionnaire1 des fruits et dans dictionnaire2 des couleurs

  • On obtiendra alors des combinaisons comme: bananerouge /bananeverte / pommerouge / pommeverte.

  • Il est aussi possible d'ajouter des régles "rule", avec les options :
      -j '$+'  Où $ est le mot du dictionnaire de gauche et+ est le caractère spécial ajouté :pomme+
      -k '!!$-'  Où $ est le mot du dictionnaire de droite et!! et – sont ajoutés : !!rouge-
    Et nous obtiendrons : pomme+!!rouge-
    Les Rules-Attacks peuvent être utilisées aussi avec les autres types d'attaques, pour plus de détails sur leurs paramètres, je vous invite à visiter le site
    officiel.

  • 3 | Brute-force:  LeBrute-Force est l'attaque la plus connu et souvent celle de la dernière chance, vous allez tester toutes les
    combinaisons possibles afin de trouver le bon mot de passe . La plupart des attaques comme le Brute-Force sont compatibles avec les Masks-Attacks et les Rules-Attacks.

  • 6 | Hybrid Wordlist + Mask: Il faut voir les attaques Hybrid comme un mélange entre le Brute-Force et les attaques par dictionnaires. Par exemple, nous générons par  exemple à l'aide d'un filtre des nombres décimaux : Hashcat -a 6 ?d?d dictionnaire1.txt …

  • Dans exemple, nous ajouterons à la suite notre mot de passe Mdp :Mdp00, Mdp01, Mdp02 … Mdp99.

  • Les "masks-attacks" sont unBrute-Force intelligent où nous pouvons directement spécifier si un caractères doit rester décimal ?d ouloweralpha(abcdefghijklmnopqrstuvwxyz) ?l
    Il existe d'autre options comme,?u pour Upperallpha , ?spour les caractères spéciaux : !"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~ ,a représente l'ensemble des caractères : ?d?l?u?s, etc ….

  • 7 | Hybrid Mask + Wordlist: Ce type d'attaque est exactement le même que pour l'attaque 6 ,mais, où la partie mask et dictionnaire sont inversées.

– Pour voir les hash crackés stocké comme JTR dans un fichier nommé hashcat.potfile dans /root/.hashcat
hashcat –show /root/Bureau/hash –force
cat /root/.hashcat/hashcat.potfile
lga2.png

– Attaque par brute force (Si comme moi, vous êtes dans une machine virtuelle et que vous avez des erreurs OpenCL, rajouter l'option –force):
hashcat -m 1000 -a 3 /root/Bureau/hash
hashcat -m 1000 -a 3 /root/Bureau/hash –force2zb0.png?

!! Bingo !!

– Attaque par dictionnaire:
hashcat -m 1000 -a 0 /root/Bureau/hash /usr/share/wordlists/rockyou.txt
hashcat -m 1000 -a 0 /root/Bureau/hash /usr/share/wordlists/rockyou.txt –forcep7rz.png

Démonstration de Bruteforce

Je vais maintenant vous montrer à quel point Hashcat est puissant. Je rappelle que je suis sur Kali Linux pour cette démonstration.
Tout d'abord, je vais générer des hash MD5 sur un site internet. J'ajoute dans mon fichier hash.txt les hashs suivants :

  • 6ad5d29de368db3dcf6f9d8e133a223a  / 4b76e078e9df24d2da36e4e288ce36a8  /  03a1a2eec091d7a87f9a40448024d8d4


– On exécute ensuite la commande :
hashcat -m 0 -a 3 -o crack.txt hash.txtOù ici, -m 0 correspond au MD5, –a 3 correspond au type d'attaque 3 – Brute-force, et -o le fichier externe ou je récupére les hashs.

Voyons les résultats:

cmjs.png

– Nous pouvons voir sur notre image que nous avons mis 4 secondes pour trouver 3 hashs en MD5 de 5 caractères. En reprenant l'ordre des hashs précédents :

  • trump / zboub / cacao

ujkj.png

– Maintenant, passons à plus compliqué. Nous allons essayer de cracker un mot de passe en SHA1, méthode de chiffrement encore très utilisé quotidiennement et cette fois pas de mot de passe de 5 caractères en minuscules.

Nous récupérons notre hash :

  • 7592f9dead6e7307db5c33928a73ee1b881a201a

– Nous lançons notre commande :
hashcat -m 100 -a 3 -o crack.txthash.txt  Ici la différence est l'option -m 100,où 100 correspond au SHA1

Résultat: Au bout de 6 heures et 33 minutes, le temps d'une bonne nuit de sommeil, notre hash a été cracké. Nous trouvons alors notre mot de passe: Supinfo0

ng43.png

ltxk.png

C. CONCLUSION

Il est important de préciser que l'usage de ces techniques est faite à des fins didactiques pour montrer à quel point les mots de passe d'aujourd'hui peuvent être faillible, qu'une méthode de chiffrement ne suffit pas à garder ses informations sûres. Voler des informations est condamné et si vous voulez faire un pentest dans votre entreprise dans le but d'une sensibilisation, il est important d'avoir l'approbation de votre direction.
N'oubliez pas d'utiliser des mots de passe longs, avec tout types de caractères, et éviter d'avoir des mots de passe uniques (vive les coffres-forts à mots de passe).

D. LIENS ET DOCUMENTATION OFFICIELS

E. SOURCES

FR:

AUTRES:

PS: Vu l'heure tardive, je corrigerai les erreurs de mise en forme et d'orthographe demain !