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_MACHINESAMSAMDomainsAccountUsers
Il faut donc pouvoir accéder au fichier SAM (répertoire %systemroot%system32config), 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 :
Windows NT4 (Station de travail et Serveur)
Windows 2000 (Professionnel et Serveur)
Windows XP (Edition Familiale et Professionnel)
Windows 2003
Cette procédure ne concerne que la base SAM locale (propre à chaque ordinateur) : il faut accéder physiquement au PC , 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 versions (et noms) des fichiers à télécharger sont susceptibles d’évoluer au cours du temps -> consulter le site de Petter Nordhal pour s’informer de la dernière version disponible.
http://home.eunet.no/~pnordahl/ntpasswd/
-** Télécharger les fichiers suivants :
bd040116.zip (1.4Mo) (sur ce site : bd040116.zip)
rawrite2.zip (10 ko) (sur ce site : rawrite2.zip)
sc040116.zip (834 ko) (sur ce site : sc040116.zip)
(éventuellement, en cas de disques SCSI)
-** Les décompresser (avec Winzip, Winrar,...) , ce qui donne les fichiers suivants :
-*** bd030426.bin (ou éventuellement une autre extension suivant les versions)
le nom du fichier et son extension n’ont AUCUNE importance !
Ce fichier est une image (binaire) de disquette bootable 1.44 Mo
-*** rawrite2.exe
C’est un utilitaire DOS servant à copier secteur par secteur l’image sur une disquette.
un ensemble de fichiers xxxxx.o.gz (49 drivers SCSI dans la version actuelle)
-*** Créer la disquette de boot Linux
en exécutant "rawrite2" puis en sélectionnant le fichier bd040116.bin
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
Je passe sur la version CDROM