Ce qui suit concerne Windows NT4, Windows 2000 et Windows XP.
(Ce document faisait partie auparavant du document consacré à Windows NT, mais vu sa taille grandissante, il fait l'objet à présent d'un chapitre complet)
 

Introduction

(mis à jour le 26/02/2003)

La situation est assez classique : un poste de travail, sous Windows NT4, 2000 ou XP, est à reconfigurer (par exemple modification d'adresse IP), mais son utilisateur habituel a des droits insuffisants pour le faire. Naturellement (loi de Murphy!), cela arrive juste le jour où l'administrateur est absent, et l'utilisateur doit absolument pouvoir utiliser son PC en urgence!

Les mots de passe de tous les utilisateurs sont stockés, sous forme chiffrée, dans une "ruche" de la Base de Registres, en l'occurrence le fichier SAM (Security Accounts Manager), et plus précisément la branche HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users

Il faut donc pouvoir accéder au fichier SAM (répertoire %systemroot%\system32\config), mais dans le cas de partition NTFS, c'est impossible sous DOS (à moins d'utiliser des outils spécialisés payants, tels que ceux fournis par Winternals). On peut  éventuellement accéder à une partition NTFS en installant un autre exemplaire de NT, ce qui est assez lourd et  requiert de l'espace disque libre.

Pas de panique

Il va suffire de démarrer le PC sur une version (réduite) de LINUX (mais oui!), contenant un programme (chntpwd) qui sait accéder à la base de données SAM (Security Account Manager) située dans la partition système de NT, et permettre ainsi de définir un nouveau mot de passe pour l'administrateur (ou n'importe quel autre utilisateur). 

Cette méthode diffère de celle employée dans des intentions "moins louables", qui consiste à essayer de deviner le mot de passe, par  essais successifs de mots préétablis (dictionnaires, lexiques,...) ou aléatoires (technique dite "attaque en force brute").

Cette petite merveille, due à Petter NORDHAL-HAGEN
est disponible gratuitement (sous licence GNU GPL) à l'adresse suivante :
http://home.eunet.no/~pnordahl/ntpasswd/

depuis le 13/12/02, il est possible de démarrer le PC sur CDROM, et non plus seulement sur disquette!

On utilisera donc soit la version disquette, soit la version CDROM, suivant les périphériques disponibles sur le PC, étant donné que la version CDROM est plus pratique à utiliser.

Cette procédure fonctionne avec  :

Mais elle ne concerne que la SAM locale (propre à chaque ordinateur).
Elle ne permet pas d'accéder aux mots de passe d'un domaine (Active Directory sous Windows 2000 ou 2003)

Création de la disquette

les noms des fichiers à télécharger sont susceptibles de changement au cours du temps.
En cas de problème, soit se reporter au site de Petter Nordhal, soit télécharger les fichiers sur ce site.

  1. Télécharger les fichiers suivants :

  2. Les décompresser (avec Winzip, Winrar,...) , ce qui donne les fichiers suivants :

  3. Créer la disquette de boot Linux par la commande suivante
    (sous DOS, Windows 9x , NT4, 2000, XP) :

    rawrite2 -f: bd030426.bin -d: A (si "A" est la lettre du lecteur de disquette)

    cette disquette est au format FAT, donc accessible sous DOS ou Windows
    Copier
    le cas échéant le driver SCSI approprié xxxx.o.gz dans le répertoire \scsi de la disquette

Création du CDROM

le nom du fichier à télécharger est susceptible de changement au cours du temps.
En cas de problème, soit se reporter au site de Petter Nordhal, soit télécharger le fichier sur ce site.

  1. Télécharger le fichier suivant  :

  2. Le décompresser (avec Winzip, Winrar,...), ce qui donne le fichier suivant :

  3. Graver le CDROM à partir du fichier .ISO à l'aide d'un outil quelconque (NERO, CDRWIN,...)
    Exemple (réalisé avec Nero Express) :
     

Mise en oeuvre


IMPORTANT ! 

Cette version de LINUX est censée fonctionner avec un clavier de type QWERTY.
 
Si on utilise un clavier AZERTY, il faudra penser à modifier certaines frappes :
Pour obtenir
 le caractère

Il faut
appuyer sur

/

!

.

:

! <MAJ>&

 

Redémarrer le PC avec la disquette ou le CDROM obtenu précédemment.
Les messages de démarrage de Linux apparaissent alors :

Les réponses aux questions qui vont suivre sont prédéfinies par défaut.

La plupart du temps, une action sur la touche <ENTRER> suffira.

Il est demandé ensuite si on utilise des disques SCSI.

Répondre en conséquence.

 

Puis la liste de toutes les partitions est affichée, suivie (éventuellement) de la liste des partitions NTFS.
A l'invite de commande, la 1ère des partitions NTFS bootable est présélectionnée. 

Il est possible d'en changer (aussi bien NTFS que FAT) en donnant son nom complet :

p.ex. : /dev/hdc1/dev/sda2, ... sachant que le nom est défini ainsi :

  • 1er et 2ème caractères : hd (disque IDE) ou sd (disque SCSI)

  • 3ème caractère : a (1er disque), b (2ème disque), ... (d est la limite pour les disques IDE)

  • 4ème caractère : 1, 2, 3, 4, ... = le n° de la partition sur le disque, en sachant que :
    - les partitions primaires sont numérotées de 1 à 4
    - les partions logiques sont numérotées à partir de 5 (même s'il n'y a qu'une seule partition primaire) 

Le programme essaie alors de monter la partition choisie, en essayant FAT puis NTFS comme type (ne pas tenir des messages d'erreurs éventuels).

La liste des ruches s'affiche ensuite :

Par défaut, c'est la ruche SAM qui sera concernée

Une copie de la SAM est effectuée.

Il est alors demandé ce que l'on veut faire.

Par défaut, le choix 1 permet d'éditer les mots de passe.

La liste des comptes s'affiche :

Il est demandé de choisir le compte à modifier (par défaut le compte Administrateur)

Des messages indiquant un verrouillage du compte peuvent apparaître.

Répondre y le cas échéant afin que le compte soit déverrouillé.

Il est ensuite demandé le nouveau de passe.
Il est recommandé de taper * afin de fixer un mot de passe vide.
 

Le programme demande confirmation. Taper y

Taper ! si on n'a pas d'autre compte à modifier

Si on a terminé les opérations, taper q

Une nouvelle confirmation est demandée (écriture de la ruche) Taper y

On peut demander l'écriture d'un backup, (Taper y ) mais cela ne fonctionne pas toujours!

 

Après avoir retiré le CD ou la disquette, redémarrer le PC en appuyant sur CTRL-ALT-DEL
Windows redémarre, et on peut constater que le mot de passe a bien été modifié (ici aucun mot de passe)

J'ai testé avec SUCCÈS cette procédure
sous Windows 2000 Professionnel et Serveur, Windows XP ,
sur plusieurs machines (et avec SYSKEY activé !)

Commentaires

Cette méthode montre la vulnérabilité d'un poste de travail ou serveur sous NT, Windows 2000 ou Windows XP.

Donc, dans le cas où un PC a un caractère "sensible", il faut le protéger physiquement contre une attaque éventuelle :