Categories: tutorial geek

Perte d’un mot de passe sous Windows – Quelles solutions ?

Perte d’un mot de passe sous Windows – Quelles solutions ?

Rien de plus embêtant que la perte d’un mot de passe utilisateur sous Windows.
Vous êtes devant l’écran de login, et au bout de 20 essais foirés, vous prenez conscience de la réalité…

“J’ai paumé le mot de passe!!”

Et là, c’est le drame.

Mais ce scénario catastrophe ne sera qu’un mauvais souvenir après lecture de cet article!

Perte d’un mot de passe

On peut avoir besoin de contourner un mot de passe pour plusieurs raisons. En fonction de ce besoin, on peut agir de trois façons différentes :

Trouver le mot de passe d’un compte
Écraser (remplacer) le mot de passe
Créer un autre utilisateur que ceux existants

Les besoins potentiels

Voilà les grands scénarios qu’on retrouve :

Utiliser un compte existant, sans traces. Vous avez par exemple un ordinateur portable d’entreprise à dépanner. Vous avez le mot de passe d’un compte, mais il se trouve que ce compte est un simple utilisateur, sans aucun droit d’administration (pas possible d’installer un logiciel par exemple). Pour une raison quelconque, vous ne pouvez pas demander ce mot de passe. Il vous faudra donc utiliser une méthode susceptible de retrouver le mot de passe sans le changer, afin que vous puissiez ouvrir la session administrateur.
Simplement démarrer la machine. Vous êtes face à une machine sur l’écran de login, et vous ne connaissez aucun mot de passe d’un des comptes locaux (on parle bien dans ces scénarios de comptes locaux). Vous avez un seul besoin : Démarrer cette bécane! Le plus simple est donc de choisir un compte et de remplacer le mot de passe existant par celui que vous définirez. Ainsi, vous pourrez ouvrir une session.

Utiliser un compte fraichement créé.

Créer un compte nouvellement créé vous permettra dans certaines situations de contourner certains problèmes (surinfections, session très altérée, etc). Même si on s’en sert plus rarement, sachez qu’on peut le faire.

Utiliser un compte existant, sans traces

Deux méthodes existent pour utiliser un pc en utilisant une session sans laisser (trop) de traces. On peut retrouver le mot de passe du compte visé, et ainsi utiliser le compte sans que l’utilisateur de ce compte ne s’en aperçoive, ou utiliser une méthode de “bootkit”.

Trouver le mot de passe d’un compte

Ici, on ne veut pas écraser (remplacer) le mot de passe, mais bien le récupérer. Le but étant de connaitre le mot de passe utilisé sur une session. Ça peut-être utile par exemple pour utiliser un compte administrateur dont on ne connaît pas le mot de passe, sans avoir à le modifier. Ou par exemple quand on ne doit pas écraser le mot de passe existant (si une partition est chiffrée avec EFS par exemple, puisqu’un changement du mot de passe à la volée rendrait les données irrécupérables).

On peut donc utiliser des logiciels qui essayeront de retrouver le mot de passe. On a deux méthodes principales :

Par dictionnaire
Par Rainbow Tables

Voilà un outil pour chaque méthode, ce sont les deux applications les plus connues qui permettent de récupérer un mot de passe :

John The Ripper

John The Ripper (ou JTR) est un logiciel qui utilise un dictionnaire. C’est-à-dire qu’il va utiliser une liste de mots de passe afin de les essayer (on parle donc ici de méthode dite “brutforce”).

Par défaut, le dictionnaire contient 3000 mots de passe. Il est cependant possible de créer un dictionnaire plus complet, et on trouve des dictionnaires plus complets en remplacement de celui d’origine.
De plus, le logiciel essaye d’ajouter le nom d’utilisateur au mot de passe, essaye de changer la casse, etc.

Un mode dit “incrémental” permet d’essayer une combinaison de tous les caractères existants. Techniquement, cette méthode permet théoriquement de casser tous les mots de passe puisque toutes les combinaisons existantes sont testées. Mais plus le mot de passe est long et complexe, et plus le traitement sera long. Pour un mot de passe très long et complexe, le temps de traitement se comptera en années sur un ordinateur, donc impossible à réaliser…

Ce logiciel a l’avantage de fonctionner sur une cinquante de plateformes différentes. >>>John the Ripper password cracker<<<

Ophcrack



Ophcrack utilise des “Rainbows Tables” (ou tables arc-en-ciel en francais). Ce logiciel permet de casser 99.9% des mots de passe alphanumériques d’une longueur inférieure ou égale à 14 caractères (vous saurez donc quoi faire pour sécuriser vos mots de passe!!). De plus c’est très rapide, quelques secondes ou quelques minutes.

On peut l’utiliser en exécutable directement sur le système lancé, ou en LiveCD.

L’efficacité du logiciel se base principalement sur la qualité des rainbow tables utilisées. On trouve des tables payantes, qui permettent de très bons résultats. On trouve par exemple des packs de tables de 2To à un prix de 949$, qui offrent les meilleurs résultats. >>>Ophcrack<<<

Modifier temporairement le mot de passe

Il existe des virus, dont le but est d’obtenir un accès à un système de la manière la plus furtive possible (en dissimulant son activité). Il existe un dérivé nommé “bootkit”. Ils diffèrent dans le fonctionnement. Le rootkit a besoin d’un accès avec des privilèges pour s’installer (donc en étant inclus dans le code d’une application malveillante sciemment lancée par exemple). Le bootkit, lui, intervient beaucoup plus tôt, pendant la phase de démarrage (séquence de boot). Il injecte son code directement en mémoire et altère donc ce qui a été placé en mémoire par le système d’exploitation qui charge ses données à ce moment.

Nous allons donc découvrir un outil utilisant ce principe :

Kon-Boot



Je viens donc de vous le dire, il s’agit d’un bootkit. Il fonctionne donc sur un média d’amorçage. Il va placer des données en mémoire, avant de rendre la main à l’amorçage du système d’exploitation. On ne démarre donc pas ici sur un environnement “Live” comme un Live Linux ou un Windows PE, mais on a bien accès au système d’exploitation de la machine.

En fait, les données chargées par Kon-Boot en mémoire (via une routine d’interruption) lui permettent de mettre en place des backdoors (portes dérobées) avant que le système ne se charge. Une fois celui-ci démarré, Kon-Boot vous permet d’ouvrir une session en saisissant n’importe quel mot de passe.

Une fois que vous aurez redémarré normalement le PC, aucune trace n’est visible. En effet, le mot de passe de la session n’a pas été écrasé, donc l’utilisateur ne s’en rendra pas compte.

Cependant, cette méthode présente des limites :

Impossible une fois la session ouverte de modifier le véritable mot de passe de la session ouverte (mais les autres sessions oui)
Impossible d’accéder aux données chiffrées via EFS
Impossible d’utiliser des clés privées stockées dans le magasin de certificats

En effet, ces trois actions nécessitent de connaitre le véritable mot de passe.

En dernière version, l’authentification Windows 8 avec compte Microsoft est supportée.

Ce logiciel est payant, mais une version gratuite existe (qui ne supporte pas Windows 7 et 8, ni les systèmes 64 bits par contre, donc pas très utile aujourd’hui!!). Il existe une version pour MacOSX, et une version Windows/OSX. >>>KON-BOOT<<<

Écraser un mot de passe

On peut écraser (remplacer) un mot de passe de deux manières :

En utilisant une application qui le fera pour vous
En le faisant manuellement (en exploitant une faille des OS Windows)

Attention : Écraser un mot de passe n’est pas anodin. Par exemple, les données chiffrées avec EFS ne seront pas récupérables si vous écrasez le mot de passe de la session. EFS se

Les applications dédiées

On peut utiliser un grand nombre d’applications qui ont pour but d’écraser le mot de passe d’un compte choisi.

Ces applications visent le SAM (Security Account Manager, un fichier qui se trouve dans \windows\system32\config, et dont le contenu s’accède via la base de registre) en effaçant/remplaçant les mots de passe qui sont contenus.

Ces applications se lancent sur le système démarré, ou sur un média bootable (environnement amorçable sur base Linux ou WinPE).
On les retrouve souvent inclus dans des suites d’outils pour Techs.

Offline NT Password & Registry Editor

Ce logiciel est bootable. Une fois amorcé, il détecte les partitions et vous demande de sélectionner celle qui contient le système d’exploitation visé. Ensuite, le fichier SAM est détecté et on vous demande de confirmer s’il s’agit bien de lui (par sa localisation, qui est choisie par défaut là ou ce fichier doit se trouver).

Il va ensuite falloir choisir dans les menus l’action à mener (écraser un mot de passe), puis choisir le compte sur lequel le faire.

Cette application est disponible sur Hiren’s Boot CD. >>>ISO d’Offline Password & Registry Editor<<<

ERD Commander ou MS-DaRT

Il y a quelques années, l’équipe Winternals (Windows Sysinternals) développait ERD Commander. Si j’en parle ici c’est pour deux raisons :

une époque c’était une référence et certains le possèdent peut-être
Maintenant, Microsoft le distribue sous conditions de licence.

Lorsque Microsoft racheta Winternals, ils inclurent cet outil sous le nom de MSDaRT (Microsoft Diagnostics and Recovery Toolset) dans leur pack MDOP (Microsoft Desktop Optimization Pack). Ce pack MDOP est désormais accessible pour les membres MDSN, et à travers les Software Assurances relatifs à certaines licences.

Bref, si votre entreprise le possède, sachez qu’il s’agit d’un environnement bootable, graphique, sur lequel on trouve un outil nommé “Locksmith” qui permet de redéfinir un mot de passe pour un compte utilisateur au choix.

Voilà deux des applications dont on entend (ou on a entendu) beaucoup parler.

La méthode “manuelle”

À l’ancienne!! Voilà une partie qu’on m’a demandée… Parce que travailler à l’ancienne ça présente plusieurs avantages :

On sait ce qu’on fait, car ce n’est pas une application qui permet de le faire directement
On exploite les failles de l’OS, et donc on apprend à s’en méfier
On a pas besoin d’outil tiers, ce qui peut être pratique selon les circonstances
On se prend l’espace de quelques minutes pour un hacker, comme dans les films
Ça fait rêver les filles qui vous adulent et vous… non rien du tout, oubliez ça!!

La faille

Lorsque vous ouvrez une session, votre utilisateur possède des droits. En fonction de ses droits, vous pouvez ou non modifier certains fichiers, et exécuter certaines commandes, etc.

Bien, maintenant vous êtes face à un système dont vous ne connaissez aucun mot de passe. Ni celui d’un utilisateur, ni celui de l’administrateur local. Impossible donc de faire quoique ce soit. Vous n’avez pas d’utilitaire avec vous, pas de connexion Internet, rien. Vous pouvez utiliser ce que vous avez à portée de main !

Le tout est d’accéder à une console afin de saisir quelques commandes.

Vous pouvez utiliser un Live Linux, un cd de réparation, ou pourquoi pas le CD de Windows 7 (et même avec le CD de Windows 10, ça fonctionne!!) Bon, je ne vous fais pas un cours, vous l’aurez compris, il faut lancer une console, de toutes les manières qu’on peut imaginer.

Une fois devant cette console, on doit lancer des commandes pour renommer des fichiers. Le but est d’exploiter le composant utilman.exe se trouvant dans windir\system32\ afin de le remplacer par la console (cmd.exe).

Explications : Utilman.exe est une application tierce (pas dans le noyau de Windows). Et le truc, c’est qu’on peut l’appeler à travers un bouton sur l’interface de login. Vous savez, cette icône, en bas à gauche sur l’écran ou l’on choisit l’utilisateur :

Et puisque ce bouton appelle le module “utilman.exe” (qui est donc un utilitaire d’accessibilité pour les mals voyants), que se passerait-il si on renommait le module console (cmd.exe) en utilman.exe? Ça y est, vous avez compris?
Et oui, lors du reboot, on clic sur ce bouton, et, sans s’être loggé sur la machine, on lance la console.

Et puisque qu’aucune session n’est lancée, mais qu’à ce moment le système fonctionne quand même, on lance la console avec l’utilisateur système, ce qui est plutôt intéressant au niveau des privilèges!!

Une fois qu’on a accès à la console, bon, et bien on fait un peu ce qu’on veut, nous sommes d’accord!

Tuto

Nous voilà devant une console, lancée dans n’importe quel environnement par n’importe quel moyen de bootable.

Déplacez-vous dans le répertoire system32.

Lancez ces commandes :

ren utilman.exe utilman.exe.bak

copy cmd.exe utilman.exe

Vous l’aurez compris, on vient de renommer le fichier utilman.exe en utilman.exe.bak (afin de le garder pour le remettre), et de renommer le fichier cmd.exe en utilman.exe.

Redémarrez, et là, on va maintenant cliquer sur l’icône d’outils d’accessibilité, pour voir apparaitre la console (ou si ça ne marche pas, et sur Windows 8, son raccourci, Touche Windows+U).

Là, entrez ces commandes :

net user nomutilisateur nouveaumotdepasse

Et voilà, le mot de passe est modifié!! Vous pouvez maintenant utiliser ce compte avec votre mot de passe fraichement défini.

Pensez à renommer les fichiers cmd et utilman correctement!!
Compléments

Au lieu de redéfinir le mot de passe d’un utilisateur existant, vous pouvez créer un nouvel utilisateur :

net user NouveauUser motdepasse /add

net localgroup Administrators NouveauUser /add


Là on vient de créer un nouvel utilisateur, puis de le placer dans le groupe des Administrateurs locaux.

On peut aussi supprimer un utilisateur par exemple

net user nomutilisateur /delete

Et vous l’aurez compris, sous un environnement bootable Linux (Live CD) il suffit de monter la bonne partition et de renommer les fichiers.

Les limites

Ces méthodes présentées ne fonctionnent que sur les comptes locaux.
Les comptes d’annuaire (Active Directory) ne sont pas concernés.

Il faut avoir un accès physique à la machine.

Faites attention à EFS. Toutes partitions et données cryptées avec EFS sont perdues si vous changez le mot de passe d’un compte à l’arrache. Il me semble cependant que si l’on remet le bon mot de passe au compte, on retrouve l’accès aux données, mais je ne l’ai pas vérifié.

Je connais des personnes qui utilisent ces méthodes pour bosser sur des sessions sur les pc de client quand ils ont oublié de demander le mot de passe de la session. EN principe, le client préfère un petit coup de fil à peine dérangeant pour demander le mot de passe d’une session, que de se rendre compte que son mot de passe a été changé (pas tous, mais certains le prennent mal).

Les protections

Maintenant, vous avez compris deux choses :

Aucune session locale n’est parfaitement protégée par son mot de passe.
Les systèmes Windows présentent ces failles depuis Windows NT, et les comportent encore dans la version 10 qui arrive…

Petits conseils pour amener un peu plus de protection :

Il faut avoir un accès à la machine. Le serveur de production situé dans la salle de pause, ce n’est donc pas le meilleur moyen de le protéger. Une petite salle dédiée, en plus de pouvoir l’aménager de manière adéquate (refroidissement, ventilation, etc) permettra de protéger l’accès physique à la machine.

Les comptes Active Directory ne sont pas visés, ils constituent donc un meilleur moyen de protection en entreprise. (Argument supplémentaire en TPE).

Un mot de passe sur BIOS (même si là aussi c’est crackable), apporte un peu plus de sécurité en empêchant de booter sur un autre média par exemple (il faudra d’abord attaquer ce mot de passe, et ça retardera l’action).

L’utilisation d’EFS, même si elle est à double tranchant, permettra au moins en cas d’écrasement du mot de passe de ne pas pouvoir accéder à ces données sensibles.

L’utilisation de certificats pour chiffre des mails par exemple est aussi une bonne solution.

Une solution des plus robustes (mais plus lourde à mettre en place) consiste à utiliser une solution de chiffrement intégrale du disque dur. Ce type de solution met en place un mécanisme d’authentification pre-boot, sans laquelle le contenu de tout le disque ne peut être déchiffré. C’est la seule solution qui sécurise totalement l’accès aux données par rapport aux méthodes vues ci-dessus.

Samuel Monier-Tech2Tech
Informaticien indépendant Réseaux et systèmes

toutgratos

Share
Published by
toutgratos

Recent Posts

Introduction à Python : les bases de la programmation en Python

Introduction à Python : les bases de la programmation en Python Python est un langage…

7 mois ago

Comment utiliser Python pour l’analyse de données et la science des données

Comment utiliser Python pour l'analyse de données et la science des données Python est l'un…

7 mois ago

Les bases du langage HTML pour les débutants en développement web

Les bases du langage HTML pour les débutants en développement web Le langage HTML (Hypertext…

7 mois ago

Comment concevoir et développer un site web performant ?

Comment concevoir et développer un site web performant ? Si vous souhaitez créer un site…

7 mois ago

Les bonnes pratiques du développement web : optimisation et accessibilité

Le développement web est un domaine en constante évolution, où il est crucial de suivre…

7 mois ago

Les bases du développement web : tutoriel sur HTML, CSS et JavaScript

Les bases du développement web : tutoriel sur HTML, CSS et JavaScript Le développement web…

7 mois ago