[sécurité] [hack] Cracker des mots de passes Windows
-
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
– Utilisation de base (brute force)
john emplacement_du_fichier_de_hash
– Pour connaitre ou en est le crack, appuyer sur la barre espace :
– Appuyer sur [Ctrl+z] pour mettre John en pause
– Reprendre le job de John :
jobs fg 1
– 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=subformats
– 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/hash
INFO: 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 Kali Linux.
– Pour Windows il est téléchargeable ici :
https://wiki.skullsecurity.org/Passwords– Une autre connu est la darkc0de.lst dispo ici et ici :
- https://weakpass.com/wordlist/683
- https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkc0de.txt
– Et d’autres ici :
- http://contest.korelogic.com/wordlists/Feb-10-2011/final-fr-wikipedia.dic.gz
- https://download.g0tmi1k.com/wordlists/large/
- https://www.renderlab.net/projects/WPA-tables/ 33GB!!
- https://hashkiller.co.uk/ListManager/Download
- http://www.outpost9.com/files/WordLists.html
- https://blog.g0tmi1k.com/2011/06/dictionaries-wordlists/
- http://www.md5this.com/tools/wordlists.html
- http://www.mieliestronk.com/wordlist.html
- https://packetstormsecurity.com/Crackers/wordlists/
- https://maurisdump.blogspot.be/2011/12/best-dictionaries-wordlist-for-wpa.html
– Sous Kali voici comment le trouver et utiliser le dictionnaire rockyou:
locate rockyou
– On se déplace à l’endroit du dictionnaire et on l’extrait :
cd /usr/share/wordlist/ gzip -d rockyou.txt.gz
–> 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 le hash 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_hash
– 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
!!! 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
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 :
-
-
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 :
https://developer.nvidia.com/cuda-gpus– Il fonctionne aussi sous Windows, liens de téléchargement :
https://hashcat.net/hashcat/
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 lacommande :
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-libopencl1 nvidia-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
– En premier lieu, nous allons voir les différentes fonctionnalités de Hashcat.
– Pour les voir, affichez l’aide avec la commande suivante :
hashcat --help
–> Ouch, ça fait pas mal d’options tout ça !!
– Pour plus de lisibilité, elles sont ici: https://hashcat.net/wiki/doku.php?id=hashcat
– 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 :
-
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: Le Brute-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 un Brute-Force intelligent où nous pouvons directement spécifier si un caractères doit rester décimal ?d ou loweralpha (abcdefghijklmnopqrstuvwxyz) ?l
Il existe d’autre options comme: ?u pour Upperallpha , ?s pour les caractères spéciaux : !"#$%&'()*+,-./:;<=> ?@[]^_`{|}~ ,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, ils sont stockés comme JTR dans un fichier nommé hashcat.potfile dans /root/.hashcat
hashcat --show /root/Bureau/hash hashcat --show /root/Bureau/hash --force cat /root/.hashcat/hashcat.potfile
– Attaque par brute force (Si comme moi, vous êtes dans une machine virtuelle et que vous avez des erreurs OpenCL, rajouter l’option
hashcat -m 1000 -a 3 /root/Bureau/hash hashcat -m 1000 -a 3 /root/Bureau/hash --force
!! 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 --force
Démonstration de Bruteforce
– Nous allons maintenant dé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.txt
Où 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:
– Nous pouvons voir 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
– 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.txt hash.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
Impressionnant !!
C. CONCLUSION
Il est très important de préciser que l’usage de ces techniques est réalisé à 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é par la loi 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
- Rufus: https://rufus.ie/
- NT Password and registry Editor: http://pogostick.net/~pnh/ntpasswd/
- Lazersoft Password Recovery: https://www.lazesoft.com/how-to-reset-administrator-password.html
- NT Password Edit: http://cdslow.org.ru/en/ntpwedit/
- Hiren’s boot cd: https://www.hirensbootcd.org/download/
- Kali Linux: https://www.kali.org/
- Ophcrack: https://ophcrack.sourceforge.io/
- Cain & Abel:
- Rainbowcrack: http://project-rainbowcrack.com/
- Mimikatz: https://github.com/gentilkiwi/mimikatz
- John The Ripper: https://www.openwall.com/john/doc/
- Hashcat: https://hashcat.net/wiki/
E. SOURCES
– FR:
https://www.seeyar.fr/retrouver-son-mot-de-passe-windows-grace-au-fichier-sam/
https://artduweb.com/tutoriels/jtr
https://www.it-connect.fr/chapitres/sattaquer-aux-mots-de-passe-avec-kali-linux/
https://ensiwiki.ensimag.fr/images/c/c6/Hashcatvsjtr.pdf
https://www.supinfo.com/articles/single/6236-decouverte-rainbowcrack
https://www.supinfo.com/articles/single/6242-decouverte-hashcat– AUTRES:
https://www.top-password.com/blog/tag/extract-hashes-from-sam-file/
https://wiki.skullsecurity.org/Passwords%23Password_dictionaries
https://www.securitynewspaper.com/2018/11/27/crack-windows-password-with-john-the-ripper/
https://www.varonis.com/blog/john-the-ripper/
https://gbhackers.com/offline-password-attack-john-ripper/
https://pen-testing.sans.org/resources/papers/gcih/pass-the-hash-windows-10-174913
https://medium.com/@petergombos/lm-ntlm-net-ntlmv2-oh-my-a9b235c58ed4
https://hackingandsecurity.blogspot.com/2016/06/password-cracking-hashes-dumping-brute.html
https://www.hackingarticles.in/understanding-guide-mimikatz/
https://datarecovery.com/rd/cracking-passwords-11-password-attack-methods-work/
https://www.openwall.com/john/doc/
https://hashcat.net/wiki/ -
-
@violence Putain de tuto ma poule, le State of Art dans toute son excellence, mais pour un noob, pourquoi autant se faire chier alors qu’avec un DVD comme Medicat c’est fait en 10 secondes
-
Ba j’en parle justement !
Mais Medicat et ses logiciels comme NT offline password … ne fait pas de crack à proprement parlé…
Et des fois, tu as peut être besoin de faire cela incognito, sans avoir accès physiquement a une bécane et sans faire sauter un password vu que ça se voit…
-
@violence ah oui effectivement, je ne l’avais pas vu comme ça
dans tous les cas, le tuto est impressionnant, bravo !
-
merci pour le retour de ce tuto, par contre KON boot est uniquement payant maintenant ou je voie pas la version encore free ?
-
-
-
Bonjour,
j’aurai besoin d’aide, je n’ai pas compris dans la B3 quand vous dites :– On le lance avec la commande des 2 fichiers en paramètres (adapter le chemin) :
Dans la commande :
@violence a dit dans Cracker des mots de passes Windows :
lsadump::sam /system:C:\Users\War10cK\Desktop\SaM\test\win\SYSTEM /SAM:C:\Users\War10cK\Desktop\SaM\test\win\SAM
Il faut remplacer test par quoi ?
Merci, au revoir
-
@jjjjjj a dit dans Cracker des mots de passes Windows :
lsadump::sam /system:C:\Users\War10cK\Desktop\SaM\test\win\SYSTEM /SAM:C:\Users\War10cK\Desktop\SaM\test\win\SAM
Il faut remplacer test par quoi ?
Merci, au revoirC’est la ligne entière qu’il faut remplacer en indiquant le path ou se trouve le fichier SYSTEM & SAM
Pour être plus clair :
lsadump::sam /system:C:\Users\XXX\XX\XX\XXX\XX\SYSTEM /SAM:C:\Users\XXX\XX\XX\XX\XX\SAM
-
-
Archivé et retranscris dans le wiki
https://wiki.planete-warez.net/informatique/microsoft/crack-sam-password