Ce tutoriel nous décrit les étapes permettant de vérifier la solidité de vos mots de passe Microsoft Windows. Inutile de vous rappeler les risques juridiques encourues en cas d’utilisation sur un système ne vous appartenant pas (ou dont vous n’avez pas de contrat rédigé vous autorisant à le faire).
Rappel :
Les mots de passe de session Windows sont stockés en local sur le système de manière chiffré sous forme de hash. Le calcul d’un hash est une opération (ou suite d’opérations) mathématiques ne permettant pas de faire le calcul inverse, on appelle cela un chiffrement irréversible.
Lorsque vous taper votre mot de passe, le système calcul le hash de votre entrée au clavier et la compare avec celui stocké en local. Si celui-ci concorde, on a donc l’assurance que le mot de passe indiqué correspond à celui du compte et on peut donc autoriser l’accès.
Les systèmes d’exploitation Microsoft ont utilisé par défaut le LM (Lan Manager) pour calculer le hash du mot de passe jusque Windows NT SP4 (signifie Service Pack). NTLM est venu remplacer LM compte tenu de sa fragilité (dut au découpage du mot de passe en morceaux de 7 caractères) cependant afin de permettre aux systèmes NT sp4, 2000, XP et suivants d’être rétrocompatibles avec des systèmes plus anciens (NT, 95), Microsoft a jugé utile de laisser la possibilité du stockage de mots de passe via LM ! NTLMv1 a été remplacé par NTLMv2, vous trouverez (pour les plus courageux) à ce lien une documentation complète sur ces protocoles d’authentifications.
Il existe donc de nombreux systèmes sous Windows (NT,2000,XP) qui stockent les mots de passe en local d’une manière jugée “très peu sécurisée” via LM.
1/ Extraction des hashs de mots de passe Windows
De nombreux outils d’extractions de hash existe. Pour ce tuto, j’ai choisi de vous présenter fgdump (fgdump est une version améliorée de pwdump un autre utilitaire très connu dans le domaine). Bien évidemment (et fort heureusement) pour réaliser l’extraction des hashs, vous devez effectuer ces actions avec un compte faisant parti du groupe “administrateur”.
- Télécharger fgdump et décompresser le;
- copier le sur la machine dont vous désirez extraire les hachs;
- lancer une invite de commande (démarrer/touslesprogrammes/accessoires/invite de commande)
- depuis l’invite de commande, rendez-vous dans le répertoire où vous avez copié fgdump
- executer la commande fgdump.exe comme sur la capture d’écran suivante :
- Éditer le fichier nommé “127.0.0.1.pwdump” avec votre éditeur de texte préféré afin de voir les hashs extrait comme suit :
Vous disposez maintenant de l’extrait des hashs. Nous allons procéder dans le chapitre suivant au “crack” de ces mots de passe.
2 Mot de passe stocké via LM (windows 95,98,NT,2000,xp,2003)
2.1 Crack de hash LM d’un mot de passe Windows
Il existe plusieurs méthodes permettant de déchiffrer les hashs de mots de passe Windows. Il faut avant tout se souvenir que les algorithmes de chiffrement sont dit irréversible, il est donc mathématiquement impossible de créer un programme permettant de calculer le mot de passe. Afin de palier cette difficulté, plusieurs solutions palliatives sont disponibles :
- l’attaque par force brute (brute force attack), elle va “bêtement” tester toutes les possibilités une à une;
- l’attaque par dictionnaire. Elle va tester toutes les possibilités disponibles dans un fichier appelé dictionnaire;
- l’attaque par hashs pré-calculés via les rainbow tables;
Kali-linux dispose de nombreux outils permettant de “cracker” les mots de passe. Pour l’attaque brute force des hashs LM, j’ai choisi de vous présenter l’outil “John the ripper”, une référence mondiale.
Tout d’abord, afin d’illustrer cette présentation, je ne vais garder du fichier fwdump que la ligne contenant le hash du compte administrateur ce qui nous donne :
Administrateur:500:50831B500C427533AAD3B435B51404EE:F0873F3268072C7B1150B15670291137:::
Ensuite depuis Kali-linux, nous allons utiliser John (le nom la commande de john the ripper). John est un peu plus malin qu’un simple brute force puisqu’avant de tester toutes les combinaisons possibles, il va utiliser un petit dictionnaire (visible via cette commande “more /usr/share/john/password.lst” pour vérifier que vous n’utiliser un mot de passe courant.
- Lancer “john”;
Après avoir copié sur le bureau de Kali-linux votre fichier généré par fgdump (127.0.0.1.pwdump), lancer la commande “john –show /root/Desktop/127.0.0.1.fgdump”. Le retour de cette commande vous donnera les mots de passe des sessions Windows (surligné en rouge sur la capture) :
La vitesse de crack de ces mots de passe vous convaincra surement du très faible niveau de sécurité de mots de passe stocké via LM.
2.2 Contre mesure
Afin de palier à cette faiblesse de stockage des mots de passe, il est vivement recommandé de remplacer LM par NTLM sur les Windows NT SP4,2000,millenium, XP et Windows server 2003. Pour cela, voici la clé de la base de registre permettant d’utiliser NTLM par défaut au lieu de LM :
Windows 2000 SP2 et versions ultérieures
Avertissement Toute utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller votre système d’exploitation. Microsoft ne peut garantir que les problèmes résultant d’une mauvaise utilisation de l’Éditeur du Registre puissent être résolus. Vous assumez l’ensemble des risques liés à l’utilisation de cet outil.
Important La clé de RegistreNoLMHashet sa fonctionnalité n’ont pas été testées ni documentées et leur utilisation doit être considérée potentiellement dangereuse dans les environnements de production antérieurs à Windows 2000 SP2.
Pour ajouter cette clé à l’aide de l’Éditeur du Registre, procédez comme suit :
- Démarrez l’Éditeur du Registre (Regedt32.exe).
- Recherchez la clé de Registre suivante et cliquez dessus :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa- Dans le menu Edition, cliquez sur Ajouter une clé, tapez NoLMHash, puis appuyez sur ENTRÉE.
- Quittez l’Éditeur du Registre.
- Redémarrez l’ordinateur, puis modifiez votre mot de passe afin d’activer le paramètre.
Remarques
- Cette modification de clé de Registre doit être effectuée sur tous les contrôleurs de domaine Windows 2000 afin de désactiver le stockage des hachages LM des mots de passe d’utilisateurs dans un environnement Active Directory Windows 2000.
- Cette clé de Registre empêche la création de nouveaux hachages LM sur les ordinateurs Windows 2000, mais elle n’efface pas l’historique des hachages LM antérieurs qui sont stockés. Les hachages LM existants qui sont stockés seront supprimés à mesure que vous modifierez des mots de passe.
Windows XP et Windows Server 2003
Avertissement Toute utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller votre système d’exploitation. Microsoft ne peut garantir que les problèmes résultant d’une mauvaise utilisation de l’Éditeur du Registre puissent être résolus. Vous assumez l’ensemble des risques liés à l’utilisation de cet outil.AVERTISSEMENT : toute mauvaise utilisation de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller votre système d’exploitation. Microsoft ne peut garantir que les problèmes résultant d’une mauvaise utilisation de l’Éditeur du Registre puissent être résolus. Vous assumez l’ensemble des risques liés à l’utilisation de cet outil.
Pour ajouter cette valeur DWORD à l’aide de l’Éditeur du Registre, procédez comme suit :
- Cliquez sur Démarrer, sur Exécuter, tapez regedit, puis cliquez sur OK.
- Recherchez la clé de Registre suivante et cliquez dessus :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa- Dans le menu Edition, pointez sur Nouveau, puis cliquez sur Valeur DWORD.
- Tapez NoLMHash, puis appuyez sur ENTRÉE.
- Dans le menu Edition, cliquez sur Modifier.
- Tapez 1, puis cliquez sur OK.
- Redémarrez votre ordinateur, puis modifiez votre mot de passe.
Remarques
- Cette modification du Registre doit être effectuée sur tous les contrôleurs de domaine Windows Server 2003 afin de désactiver le stockage des hachages LM des mots de passe d’utilisateurs dans un environnement Active Directory Windows Server 2003. Si vous êtes administrateur de domaine, vous pouvez utiliser la console MMC (Microsoft Management Console) Utilisateurs et ordinateurs Active Directory pour déployer cette stratégie sur tous les contrôleurs de domaine ou tous les ordinateurs du domaine, comme décrit dans la Méthode 1 (Implémentation de la stratégie NoLMHash à l’aide de la stratégie de groupe).
- Cette valeur DWORD empêche la création de nouveaux hachages LM sur les ordinateurs Windows XP et Windows Server 2003. L’historique de tous les hachages LM antérieurs est effacé lorsque vous effectuez ces étapes.
Important Si vous créez un modèle de stratégie personnalisé qui peut être utilisé sur Windows 2000 et Windows XP ou Windows Server 2003, vous pouvez créer la clé et la valeur. La valeur se trouve au même emplacement que la clé et une valeur de 1 désactive la création des hachages LM. La clé est mise à niveau lorsqu’un système Windows 2000 est mis à niveau vers Windows Server 2003. Toutefois, ce n’est pas un problème si les deux paramètres sont dans le Registre.
Plus de détails à ce lien : http://support.microsoft.com/kb/299656/fr
3 thoughts on “Cracker les mots de passe de Windows avec Kali linux”
Cracker est un grand mot dans ce cas. Il s agit de le retirer en fait, mais le mot de passe lui-meme reste inconnu. Et les fichiers qui etaient chiffres en EFS deviennent inaccessibles sans retrouver le mot de passe.
Super, et pour la pratique (légale) je vous incite à vous rendre sur http://www.newbiecontest.org et d’essayer l’épreuve “Hacking/sam’suffit”.