Quelques infos complémentaires trouvées sur la toile.
Cracker un mot de passe utilisateur sous Vista
S'il est toujours possible de désactiver la demande d'un mot de passe avant d'ouvrir une session sur Windows Vista, il existe pas mal de situations nécessitant que vous retrouviez le mot de passe en clair. Cela vous permet, par exemple, de ne pas perdre l'accès à des fichiers cryptés.
Signalons que, sous Vista, les mots de passe sont sauvegardés en utilisant le hachage NTLM et que cela va compliquer quelque peu notre tâche. Néanmoins il est possible d'y arriver en utilisant un programme en programme téléchargeable en version d'évaluation pour une durée de 60 jours. PPAuditor (Proactive Password Auditor) propose plusieurs méthodes de récupération de mot de passe sur leurs valeurs d'algorithme.
Rendez-vous à cette adresse :
http://www.elcomsoft.com/ppa.html.
Cliquez sur le lien Download free trial version
Décompressez l'archive ZIP puis procédez à l'installation du programme.
Lancez le programme puis fermez-le.
Windows va vous proposer de réinstaller ce programme avec les paramètres recommandés.
Cliquez sur le bouton correspondant.
Je signale que ce programme est signalé par la société Symantec comme présentant un risque de sécurité. Il se peut donc que votre programme d'antivirus le détecte comme étant potentiellement dangereux. Une page décrivant le processus d'installation de ce programme est visible à partir de cette adresse :
http://www.symantec.com/region/fr/techsupp/avcenter/venc/data/fr-ppauditor.html.
En utilisant WinRE copiez les fichiers de ruches SAM et SYSTEM qui sont placés dans \WINDOWS\system32\config. Vous pouvez utiliser une clé USB afin de procéder à une sauvegarde des deux fichiers. Il suffit de cliquer sur le lien Invite de commandes.
Une fois que vous avez les deux fichiers suivez cette procédure :
Dans la liste déroulante placée en haut à droite sélectionnez l'option NTLM Attack.
Cochez le bouton Registry files (SAM, SYSTEM).
Cliquez sur le bouton Dump.
En vous servant des boutons Browse… Sélectionnez les fichiers que vous avez sauvegardés.
Cliquez sur le bouton Dump.
C'est la méthode à utiliser si vous ne pouvez plus avoir accès à l'ordinateur en utilisant un compte d'administrateur.
Il existe d'autres méthodes qui supposent que vous possédiez un accès à un des comptes d'administrateur :
Cochez le bouton radio Memory of local computer.
Cliquez sur le bouton Dump.
Des mots de passe simples comme Isabelle (pou un compte d'utilisateur nommé "Isabelle") seront retrouvés instantanément.
Vous pouvez aussi utiliser cette méthode pour un ordinateur distant :
Cochez le bouton radio Memory of remote computer.
Cliquez sur le bouton Browse afin de sélectionner la machine distante.
De la même manière que précédemment cliquez sur le bouton Dump.
Il y a dans ce cas un certain nombre de conditions préalables qui constituent également des pistes vous permettant de mieux sécuriser les ordinateurs de votre réseau :
La valeur DWORD restrictanonymous placée dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa doit contenir comme données de la valeur le chiffre 0 ;
L'accès au Registre pour les utilisateurs d'un domaine ne doit pas être restreint après avoir supprimé ou en modifier les valeurs contenues dans cette entrée : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg ;
Le partage des fichiers et des imprimantes doit être activés sur les deux ordinateurs ;
Ce partage administratif ne doit pas avoir été désactivé sur la machine distante : Admin$ ;
Enfin, cette stratégie présente dans Configuration ordinateur/Paramètres Windows/Paramètres de sécurité/Stratégies locales/Options de sécurité : Accès réseau : modèle de partage et de sécurité pour les comptes locaux doit être réglée sur cette option : Classique - les utilisateurs locaux s'authentifient eux-mêmes.
Vous avez le choix entre ces différents types d'attaque :
Brute-force : attaque de force brute ;
Mask : permet de définir un masque de recherche ;
Dictionary : permet de définir un dictionnaire placé dans un fichier au format texte ;
Rainbow : permet d'utiliser des tables pré-calculées. Comme son nom l'indique, ce type d'attaque utilise la technologie Rainbow qui est une méthode sophistiquée de craquage des clés de hachage (lm, md5 et sha1). Une fois les tables "arc-en-ciel" générées, le gain de temps est souvent considérable !
Après avoir sélectionné votre méthode, cliquez sur le bouton Start recovery.
Vous pouvez enregistrer votre projet en cliquant sur le bouton Save project puis, lors du prochain lancement du programme, le retrouver en cliquant sur Project - Recent projects. Le fichier à sélectionner portera une extension .hdt.
Notez qu'il est souvent conseillé de lancer une attaque utilisant un dictionnaire avant d'utiliser l'attaque dite de force brute ou "Rainbow".
Le principe de création d'un mot de passe sous Windows NT est le suivant :
Windows stocke les mots de passe enregistrés pour chacun des utilisateurs et d'une longueur inférieure à 15 caractères en utilisant deux méthodes différentes appelés hachage. Le système génère à la fois un hachage Lan Manager (LM) et un hachage Windows NT (NTLM). Ces clés de hachage sont stockés soit dans la base de sécurité locale appelée SAM, soit dans Active Directory.
Le hachage NTLM est constitué des étapes suivantes :
Le mot de passe est transformé en une chaîne Unicode longue de 16 octets ;
Un hachage au format MD4 est généré à partir de cette chaîne ;
Les données générées sont encodées en utilisant un algorithme appelé DES qui utilise le RID de l'utilisateur dans la génération de la clé.
C'est la méthode utilisée par défaut sous Windows Vista.
Le hachage LM convertit d'abord le mot de passe en caractères ANSI (un octet par caractère). Il transforme ensuite en lettres capitales le mot de passe de l'utilisateur. Les manques sont remplis par une ou plusieurs valeurs nulles afin d'atteindre une longueur de 14 symboles. Les données obtenues sont divisées en tranches de 7 octets et chacune d'elle est encodée séparément en utilisant un algorithme DES. Au final, une clé de hachage longue de 16 octets est générée.
Cette clé de hachage est encodée à l'aide de l'algorithme DES qui utilise le RID de l'utilisateur comme clé.
La particularité de ce mécanisme fait que la complexité réelle du mot de passe après chiffrement ne dépasse jamais les 7 caractères. De ce fait, un mot de passe de 7 caractères n'est pas plus résistant qu'un mot de passe faisant 14 caractères.
Cette méthode offre une protection moindre par rapport au hachage NTLM mais il est conservé à des fins de compatibilité avec des clients Windows 9X ou des programmes de connexion à distance.
Prenons un exemple… Un mot de passe long de 9 symboles "MARGARITA" est encodé par Windows de la manière suivante : "MARGARI" (clé de hachage : 0069AD6D0FA5DD32) et "TA" (avec une clé de hachage suivante : 25E6C6A091DDAB09). La clé de hachage sera celle-ci : 0069AD6D0FA5DD3225E6C6A091DDAB09 et sera stockée dans la ruche du Registre SAM. Le programme utilisé retrouvera un mot de passe LM en analysant les deux parties longues de 8 octets séparément. Dans le cas d'un mot de passe long de 9 symboles, le programme sera donc obligé de retrouver deux mots de passe différents longs respectivement de 7 et de 2 symboles. Du point de vue du programme de "craquage" le processus ne sera pas plus long.
Pour chaque type d'attaque, les options disponibles sont les suivantes :
Dictionnary attack : il vous suffit d'indiquer l'emplacement d'un ou plusieurs dictionnaires. Ce sont des fichiers texte à l'extension .dic qu'il est possible de télécharger sur Internet comme, par exemple, à partir de cette adresse :
ftp://ftp.ox.ac.uk/pub/wordlists ou
http://www.insidepro.com/eng/download.shtml.
Bruteforce attack : vous devez circonvenir au maximum la recherche en définissant un certain nombre de probabilités…
All Latin (A-Z) : précise que le mot de passe ne contient que des lettres majuscules ;
All Digits (0-9) : précise que le mot de passe ne contient que des chiffres ;
Special : précise que le mot de passe ne contient que des caractères spéciaux ([email]!@#$%^&*()_+-=<>,./?[]{}~:;`'|"\[/email]).
All Printable : précise que le mot de passe peut contenir tout type de caractère et donc tous ceux énumérés précédemment.
Custom charset : permet de définir une combinaison de caractères précise ;
Password lenght : permet de définir la longueur possible du mot de passe. Dans le cas d'une attaque de type LM, notez que la longueur maximale d'un mot de passe est toujours réellement de 7 caractères.
Password mask : en imaginant que vous savez que le mot de passe commence par un caractère, qu'il se termine par trois chiffres et compte en tout huit caractères, vous pouvez définir ce type de masque afin de réduire les possibilités de recherche : x?????999. Dans cet exemple, le symbole ? indique que nous ne savons pas le caractère utilisé dans le mot de passe.
Si vous savez que le mot de passe contient déjà le signe ?, vous devez changer le symbole utilisé pour représenter un caractère en l'indiquant dans la zone de texte Mask char.
Rainbow attack : en cryptologie, une table Rainbow est une structure de données inventée en 2003 par Philippe Oechslin et qui permet de retrouver un mot de passe à partir l'empreinte des chaînes de caractères stockées. Elles sont enregistrées dans des fichiers portant l'extension .rt. Si, tous les mots de passe ne peuvent pas être retrouvés en utilisant cette méthode elle permet tout de même un gain de temps souvent considérable.
Cliquez tout d'abord sur le bouton Rainbow tables list… puis ajoutez vos différentes tables en cliquant sur le bouton Add.
Vous pouvez aussi générer des tables en cliquant sur le bouton Generate tables…
Dans la liste déroulante hash type définissez le type d'authentification qui a été utilisée (NTLM).
Dans la liste déroulante Charset sélectionnez le type de caractères qui a été utilisé pour composer le mot de passe.
Définissez éventuellement le nombre de tables qui vont être utilisées mais une valeur normale est de 5.
Cliquez sur le bouton Test afin de visualiser le temps que prendra la création des tables pré-calculées puis l'analyse proprement dite.
Vous remarquerez que, pour la dernière opération, nous sommes dans un laps de temps de quelques secondes.
Cliquez sur le bouton Browse… afin de définir l'emplacement dans lequel seront générées vos tables de données.
Cliquez sur le bouton Generate…
Là encore, il est possible d'en télécharger sur Internet en saisissant ce type de recherche dans un moteur de recherche comme Google : download rainbow tables.
Une fois les tables Rainbow générées vous n'avez plus qu'à lancer votre attaque…
Durant le processus les informations suivantes sont affichées :
Current password : le dernier mot de passé trouvé ;
NT passwords found : le nombre de mots de passe déjà trouvés ;
Passwords checked : le nombre total de mots de passe testés depuis le début de l'attaque ;
Passwords total : le nombre total de mots de passe qui seront testés ;
Time elapsed : le temps qui s'est écoulé depuis le début de l'attaque ;
Time left : une estimation du temps restant en fonction de la vitesse actuelle du processus ;
Speed (Cur/Avg) : fournit une indication du nombre de mots de passé testés par seconde.
À titre indicatif, j'ai mis 4 heures pour retrouver un mot de passe ne comportant que des lettres et des chiffres, long de 7 caractères et dont j'avais précisé la longueur. Dans les cas les plus courants, comptez tout de même plusieurs jours de travail (silencieux).