Ce qui suit concerne :
- Windows NT4 (station et serveur),
Windows 2000 (professionnel et serveur),
Windows XP (familial et professionnel),
Windows 2003
Windows VISTA
en ce qui concerne l'effacement de mots de passe de comptes locaux
- Windows 2000 (serveur)
Windows 2003
en ce qui concerne l'effacement de mots de passe de comptes de domaineCe n'est en aucune façon une incitation à l'utilisation frauduleuse d'ordinateur, mais seulement la description de méthodes permettant à un administrateur authentique de recouvrer la maitrise d'une machine après l'oubli de son mot de passe.
Toutefois cela met en évidence la vulnérabilité d'un poste de travail ou serveur sous Windows (NT, 2000, XP, 2003).
Donc, dans le cas où un ordinateur présente un caractère "sensible", il faut avant toute chose le protéger physiquement :
- en l'enfermant dans un local protégé
- en définissant un mot de passe suffisamment solide pour la configuration du BIOS
- en désactivant le lecteur de disquette et de CDROM au niveau du BIOS
Introduction
(mis à jour le 05/11/05)
La situation est assez classique : un poste de travail ou un serveur, sous Windows NT4, 2000, XP ou 2003, 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!
Deux cas seront à distinguer, suivant qu'il s'agit de compte local (serveur ou station de travail) ou de compte de domaine (serveur de domaine).
Compte
local
Les mots de passe des comptes locaux 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 :
- Windows NT4 (Station de travail et Serveur)
- Windows 2000 (Professionnel et Serveur)
- Windows XP (Edition Familiale et Professionnel)
- Windows 2003
- Windows VISTA
Dans le cas des serveurs sous Windows 2000 et Windows 2003, la procédure s'applique :
- aux serveurs autonomes (hors domaine) ou simples membres d'un domaine (non contrôleurs de domaine)
- aux serveurs de domaine, mais démarrés uniquement en mode de restauration Active Directory
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.
Le site http://ntpass.blaa.net/ permet aussi de télécharger des versions précédentes
Dans le cas de Windows VISTA, ne pas utiliser de fichiers dont la version serait antérieure à 0704xx (avril 2007)
- Télécharger les fichiers suivants :
-
bd070927.zip (1.4 Mo) (sur ce site :
bd070927.zip)
- et suivant le type de disques installés :
- drivers1-070927.zip (310 ko) (disques PATA et SATA) (sur ce site : drivers1-070927.zip)
-
drivers2-070927.zip (1.2 Mo) (disques SCSI)(sur
ce site :
drivers2-070927.zip)
-
bd070927.zip (1.4 Mo) (sur ce site :
bd070927.zip)
- Les décompresser (avec Winzip, Winrar,...)
, ce qui donne les fichiers suivants :
- bd070927.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 (16 bits) servant à copier secteur par secteur l'image sur une disquette.
Il fonctionne sous DOS et toute version de Windows (9x, NT4, 2000, XP, 2003)
- install.bat
C'est un script qui lance rawrite2 avec les paramètres appropriés.
- un ensemble de fichiers xxxxx.o.gz (49 drivers
SCSI dans la version actuelle)
- bd070927.bin (ou éventuellement une autre
extension suivant les versions)
- Créer la disquette de boot Linux en exécutant
la commande install (depuis le dossier où on a installé
les fichiers)
(sous DOS, Windows 9x , NT4, 2000, XP, VISTA) :
(si "A" est la lettre du lecteur de disquette)R:\pwdnt\>install
##############################################################
# #
# Offline NT Password and Registry Editor Installation #
# Version: bd050303 #
# This installation creates a bootable floppy disk. #
# #
# Offline NT Password and Registry Editor must be booted #
# from a floppy disk. #
# #
##############################################################
.
RaWrite 2.0 - Write disk file to raw floppy diskette
Enter target diskette drive: a
Please insert a formatted diskette into drive A: and press -ENTER- :
Number of sectors per track for this disk is 18
Writing image to drive A:. Press ^C to abort.
Track: 05 Head: 0quand c'est fini, on peut lire :
Track: 79 Head: 1
Done.
Done
To run Offline NT Password and Registry Editor, leave the floppy in the drive an
d reboot.
Appuyez sur une touche pour continuer...
cette disquette est au format FAT, donc accessible sous
DOS ou Windows
R:\PWDNT>dir a:
Le volume dans le lecteur A n'a pas de nom.
Le numéro de série du volume est 4227-71B9
Répertoire de A:\
03/03/2005 21:21 8 104 ldlinux.sys
03/03/2005 21:21 1 724 boot.msg
03/03/2005 21:21 423 051 initrd.gz
13/01/2005 21:43 152 syslinux.cfg
26/02/2005 22:54 949 300 vmlinuz
5 fichier(s) 1 382 331 octets
0 Rép(s) 73 728 octets libresCopier 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.
Dans le cas de Windows VISTA, ne pas utiliser de fichiers dont la version serait antérieure à 0704xx (avril 2007)
- Télécharger le fichier suivant :
-
cd070927.zip (2.8 Mo) (sur ce site :
cd070927.zip)
la version CDROM contient tous les fichiers
nécessaires, PATA, SCSI et SATA compris.
-
cd070927.zip (2.8 Mo) (sur ce site :
cd070927.zip)
- Le décompresser (avec Winzip, Winrar,...),
ce qui donne le fichier suivant :
- cd070927.iso
Ce fichier est une image ISO de CD bootable (norme "El Torito")
- cd070927.iso
- Graver le CDROM à partir du fichier .ISO à l'aide
d'un outil quelconque (NERO, CDRWIN,...)
Exemple (réalisé avec Nero Express) :
-

Sélectionner
"Image de disque ou projet sauvegardé"
Sélectionner le type :
Fichiers image (*.nrg,*.iso,*.cue)Sélectionner le fichier image, ici
cd030126.iso(suivant l'arrivée de nouvelles versions, le nom de ce fichier est susceptible de varier)

Si tout est correct, insérer un CD vierge
dans le graveur et appuyer sur Suivant
La gravure va s'effectuer
Vu la taille réduite de l'image,
cela est fait très rapidement.
-
Mise
en œuvre
|
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 :
|
| 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. |
![]() |
| 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 , Windows 2003
sur plusieurs machines (et avec SYSKEY activé !)
Compte
de domaine (serveur de domaine)
La procédure est un peu plus complexe.
Les mots de passe des comptes de domaine ne sont plus stockés dans
la base SAM
(%systemroot%\system32\config\SAM),
mais dans la base de données constituée par Active
Directory
(%systemroot%\NTFS\ntds.dit).
En effet, la méthode de Petter NORDHAL exposée précédemment, qui ne concerne que le fichier SAM, ne peut pas s'appliquer sur cette base AD.
Par contre, elle va servir à mettre en place un outil qui lui va pouvoir redéfinir le mot de passe d'un administrateur du domaine!
Dans un 1er temps, on va l'utiliser pour réinitialiser le mot de
passe du compte administrateur local de l'ordinateur.
Se reporter aux paragraphes précédents.
Une fois que le mot de passe du compte administrateur local a été effacé, on va utiliser ce compte pour démarrer l'ordinateur. Mais un serveur ne permet pas, comme dans le cas d'une station de travail, lors de l'ouverture de session, de choisir une session locale.
| Dans cet exemple (sous XP PRO), on voit que l'utilisateur peut au choix ouvrir une session : | |||||||||
|
![]() |
||||||||
| Cette dernière option n'existe pas dans le cas d'un serveur de domaine : | |||||||||
| NT4 |
![]() |
||||||||
| 2000 2003 |
![]() |
||||||||
|
|||||||||
|
Je l'ai rendue
automatique à l'aide de scripts VBS
et BAT |
Dans le cas d'un serveur de domaine Windows 2000 ou
Windows 2003, il faut le démarrer en
mode de réparation Active Directory
(appuyer sur F8 pour faire apparaitre la liste complète des modes de démarrage) :




En particulier, la variable d'environnement USERDOMAIN contient le nom NetBIOS de l'ordinateur et non pas le nom du domaine.

Le dossier de destination importe peu.

| setpwdadm.vbs | script VBS
servant à :
|
| inststrv.exe | utilitaire Microsoft d'installation d'une application quelconque en tant que service. |
| srvany.exe | utilitaire Microsoft réellement exécuté en tant que service |
| cmd /k net user <account> <newpwd> /domain | |
| avec : | |
| <account> | nom du compte administrateur dont on veut définir le mot de passe |
| <newpwd> | nouveau mot de passe du compte |

On exécute donc la commande : setpwdadm.vbs Superadmin toto

sous le compte SuperAdmin, avec le mot de passe toto précédemment défini

On constate que la session s'ouvre sans problème !
En particulier, la variable d'environnement USERDOMAIN contient le nom du domaine.



















