Le Registre et les options de sécurité
Dernière mise à jour : 06/03/2006
Avant toute chose nous devons savoir réaliser trois opérations importantes : trouver le RID d’un utilisateur, calculer son SID, convertir une date au format NT en une notation compréhensible par tous.
Quelques notions indispensables
Ces quelques explications préalables sont nécessaires pour ensuite modifier directement les paramètres de sécurité qui sont stockées dans la rucheSAM.
- Trouvez le RID d’un utilisateur :
Un RID (relative ID) (RID) est la partie d'un ID de sécurité (SID) qui identifie de manière unique un utilisateur ou un groupe d' utilisateurs.
1) Dans le Registre ouvrez HKEY_LOCAL_ MACHINE \SAM\SAM\Domains \Account\Users\Names\Nom_Utilisateur..
La valeurchaîne (par défaut) affichera cetteinformation : 0x42a
2) Ouvrez alors cette clé : HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\0000042A.
Deuxvaleurs binaires sont listées F et V.
F : contient les informations que l’on retrouvera dans les options avancées du moduleGestion des utilisateurs.
V : contient les informations concernant le compte d’utilisateur (nom, commentaire, emplacement des répertoires , heures autorisées de connexion, hachage des mots de passe , etc.)
Les permissions rattachées à ce compte sont aussi listées... Nous examinerons en détail comment fonctionnent ces valeurs binaires.
- Comment est calculé un SID ?
Voici un exemple permettant de trouver le SID d’une machine :
1) Dans le Registre ouvrez HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account.
2) Editez une valeur binaire nommée V.
3) Copiez les 12 derniers digits.
Vous aurez par exemple ceci : D5 CB 5C 58 E7 CB DD 7D 16 C0 EA 32
4) Divisez le tout en trois sections : D5 CB 5C 58 - E7 CB DD 7D - 16 C0 EA 32
5) Inversez les octets de chaque section : 58 5C CB D5 – 7D DD CB E7 – 32 EA C0 16
6) Convertissez chaque section en base décimale : 1482476501 232639463 48939030
7) Ajoutez le préfixe de la machine : S-1-5-21.
On obtient alors ce SID : S-1-5-21-1482476501-232639463-48939030
- Convertir une date au format NT :
Signalons tout d’abord que les valeurs dans le Registre sont toutes stockées au format hexadécimal. Vous pouvez vous servir d’un utilitaire nommé NTDate.exe en le téléchargeant à cette adressehttp://neworder.box.sk/files/nullak_ntsecurity/NTDate.exe.
1) Servez-vous des listes déroulantes Date/Time : afin d’entrer la date choisie puis appuyez sur le petitbouton situé à droite.
La conversion apparaîtra dans la zone de texte nommée Debug:
Si vous avez récupéré une séquence de chiffres présente dans le Registre procédez de la manière inverse :
2) Renseignez la zone de texte Debug: puis appuyez sur le petit bouton situé à droite.
Vous obtiendrez la date et, dans la zone de texte de droite, la notation NT de la date et l’heure.
Le Registre Windows et les options de sécurité
- Où sont stockés les paramètres de sécurité ?
Essayons maintenant de comprendre quels sont les paramètres d’un compte dont le RID est le suivant : 42A.
Ouvrez cette valeur : HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\0000042A\F.
Voici une explication des offsets les plus importants (un tableau montrant un exemple de cette valeur binaire est présenté en fin de paragraphe) :
* Offset0008 : date de dernière connexion stockée au format NT. En utilisant Ntdate.exe je peux vérifier qu’à la valeur 90 89 A0 38 29 1C C6 01 correspondent la date et l’heure de dernière connexion suivante : 18/01/2006 à 12:17:59.
* Offset 0018 : dernière modification du mot de passe au format de temps NT.
* Offset 0020 : date d’expiration du compte au format de temps NT. La valeur seranull (00 00 00 00 00 00 00 00) si le compte n’expire jamais.
Prenons un exemple :
1) En Invite de commandes saisissez ceci : net user Nom_Utilisateur /expires:04/03/2006
2) Éditez la valeur binaire F.
Vous obtiendrez cette séquence d’octets : 00 58 C1 32 16 3F C6 01
3) Entrez cette séquence dans Ntdate afin de visualiser la date et l’heure d’expiration effective.
Si maintenant vous essayez de vous connecter sur le compte vous aurez ce message d’erreur : " Votre compte a expiré. Contactez votre administrateur système".
4) Modifiez directement les données de la valeur binaire F en saisissant une suite de 00.
Attention : si vous êtes en mode "Insertion", repérez les premiers digits inscrits à l’offset suivant afin de le positionner correctement et ce jusqu’à ce que vous ayez inscris un nombre suffisant de zéros.
5) Ouvrez de nouveau une sessioninteractive sur le même compte...
Vous pouvez alors constater que vous n’aurez pas de problème d’ ouverture de compte.
* Offset 0030 : le RID utilisateur stocké au format hexadécimal inversé (042A = 2A04).
* Offset 0038- second digit : le compte est actif ou non (0 ou 1).
* Offset 0038 - quatrième digit : le mot de passe n'expire jamais (2 ou 0).
A priori, les bons paramètres sont donc pour cet offset : 10 02. Faites par exemple le test suivant :
1) Cliquez sur Démarrer/Exécuter puis saisissez : control userpasswords2
Notez que vous pouvez aussi accéder à cette fonctionnalité par les outils d’ administration et le module Gestion de l’ordinateur.
2) Cliquez sur l’onglet Options avancées puis le bouton Avancé.
3) Ouvrez la branche Utilisateurs puis le compte d’utilisateur sélectionné.
4) Cochez la case Le compte est désactivé.
5) Actualisez le Registre en appuyant sur la touche F5.
À l’offset 0038 vous aurez ce début de séquence : 10
6) Procédez alors à la désactivation du compte...
7) Actualisez de nouveau le Registre.
L’offset concerné affichera alors cette valeur : 11
Vous pouvez aussi bien modifier les données de la valeur binaire :
8) Sélectionnez le nombre 11 de telle manière qu’il soit mis en surbrillance.
9) Tapez la nouvelle valeur : 10
Si vous avez fait une fausse manœuvre il vous suffit de cliquer sur le bouton Annuler.
| N° |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
|
| 0000 |
02
|
00
|
01
|
00
|
00
|
00
|
00
|
00
|
.............. |
| 0008 |
30
|
4A
|
2B
|
8E
|
93
|
3F
|
C6
|
01
|
0J+..?Æ |
| 0010 |
00
|
00
|
00
|
00
|
00
|
00
|
00
|
00
|
.............. |
| 0018 |
F0
|
B7
|
3E
|
C2
|
AC
|
1B
|
C6
|
01
|
¢...ŒÊ.. |
| 0020 |
00
|
00
|
00
|
00
|
00
|
00
|
00
|
00
|
.............. |
| 0028 |
50
|
7D
|
E9
|
1B
|
AD
|
3F
|
C6
|
01
|
¢...Û..¥.. |
| 0030 |
2A
|
04
|
00
|
00
|
01
|
02
|
00
|
00
|
...®..Ñ.... |
| 0038 |
1
|
0
|
0
|
2 |
00
|
00
|
00
|
00
|
00
|
00
|
..?Æ...... |
| 0040 |
01
|
00
|
0B
|
00
|
00
|
00
|
00
|
00
|
ß...ч.... |
Modifier les paramètres de sécurité en intervenant directement dans le Registre
- Utiliser un disque BartPE afin de réactiver un compte d’utilisateur :
On peut imaginer que vous avez perdu l’accès au compte Administrateur et que dans ce cas vous devez réactiver votre compte d’utilisateur en utilisant un outilexterne.
1) Démarrez votre machine en utilisant le disque BartPE.
2) Lancez le Registre Windows en cliquant sur Go/ Run... puis en tapant la commande regedit.
3) Sélectionnez HKEY_LOCAL_MACHINE.
4) Cliquez sur Fichier /Charger la ruche.
5) Sélectionnez le fichier SAM (sansextensionvisible ) placé dans C:\Windows\System32\ Config (et non le disque BartPE !!!)
Notez que l'arborescence peut mettre du temps à s'afficher...
6) Attribuez un nom temporaire au fichier de ruche.
Dans notre exemple, ce sera "Test".
7) Comme expliqué précédemment repérez le RID de l’utilisateur en examinant cette arborescence du Registre : HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names.
8) Ouvrez HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\RID_Utilisateur.
9) Éditez la valeur binaire F puis modifier l’offset 0020 en conséquence.
10) Une fois les modifications effectuées sélectionnez la clé Test.
11) Cliquez sur Fichier/Décharger la ruche.
12) Redémarrez votre ordinateur normalement.
Le compte d’utilisateur ne sera plus signalé comme étant désactivé...
- "Votre compte est expiré contactez l'administrateur de votre système" :
La méthode de résolution est identique à celle expliquée précédemment à la différence près que vous devez modifier l'offset 0020.
- Assigner au compte Administrateur un mot de passe vierge :
Cette manipulation peut être effectuée à partir d'un système d'exploitation placé sur une partition différente ou à partir d'un disque BartPE. Dans ce dernier cas vous devrez copier manuellement le fichier d'enregistrement du Registre qui vous servira à réinitialiser le Registre. Lisez attentivement les paragraphes précédents afin de savoir comment démarrer à partir d'un disque BartPE et charger la ruche SAM.
1) À partir d'un ordinateur auquel vous avez accès cliquez sur Démarrer/Exécuter : control userpasswords2
2) Sélectionnez le compte Administrateur puis cliquez sur le bouton Réinitialiser le mot de passe.
N’inscrivez rien dans les zones de texte et cliquez sur le bouton OK.
3) Ouvrez HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4.
C'est le RID du compte Administrateur.
Il se peut que vous deviez changer le jeu des permissions sur la seconde clé SAM de telle manière que vous ayez le contrôle total. Par défaut vous ne disposez que de cette autorisation spéciale : Accès en écriture à la liste de contrôle.
4) Sélectionnez la valeur binaire F puis exportez son contenu... (Fichier/Exporter).
Le nom donné au fichier .reg n’a strictement pas d’importance...
5) Réinitialisez les permissions NTFS telles qu'elles étaient par défaut (Paramètres avancés et Modifier).
6) Éditez le fichier REG de façon à reprendre le nom de la ruche que vous allez charger. De cette façon, l'arborescence indiquée dans le fichier REG correspondra à l'emplacement de votre ruche.
En admettant qu’elle se nommera Test et que vous la chargerez à partir de HKEY_LOCAL_MACHINE vous modifierez donc le .reg en inscrivant ceci : HKEY_LOCAL_MACHINE\Test\SAM\Domains\Account\Users\000001F4 au lieu de HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
Si vous vous êtes servir d'un disque BartPE vous pouvez aussi bien vous servir de l'Explorateur de fichiers nommé A4 et modifier le fichier "à chaud".
7) Ouvrez le Registre puis chargez la ruche SAM.
8) Nommez la ruche en l'appelant "Test".
9 ) Importez le fichier de ruche.
10) Déchargez la ruche nommée "Test".
11) Redémarrez votre système.
12) Appuyez deux fois sur les touches Ctrl+Alt+Suppr.
13) Dans la zone de texte Nom d’utilisateur saisissez : administrateur
14) Cliquez sur OK.
Il ne vous sera pas demandé un quelconque mot de passe...
- "Le système n'a pu ouvrir de session..." :
Si le mot de passe utilisateur avait expiré et que vous avez par la suite paramétré une ouverture de session automatique vous ne pourrez pas vous connecter sur votre compte. Vous serez alors bloqué sur ce message "Windows est en cours de démarrage..." Si vous appuyez sur les touches Alt+Tab la boîte de dialogue suivante apparaîtra "Le système n'a pu ouvrir de session. Assurez-vous que le nom d'utilisateur et le domaine sont corrects, puis entrez de nouveau votre mot de passe. Entrez le mot de passe en respectant la casse". Il vous suffit alors de cliquer sur OK pour faire apparaître la fenêtre d'ouverture de session. Vous pouvez alors constater que :
* Votre mot de passe est refusé.
* Un mot de passe vierge est également refusé.
Vous aurez cette annonce : "Avez-vous oublié votre mot de passe ?".
1) Comme expliqué précédemment utilisez un disque BartPE afin de charger la ruche SAM.
2) Éditez la valeur chaîne F placée dans HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\RID_Utilisateur.
3) Modifiez les quatre premiers digits de l'offset 0038 en inscrivant à la place ceci : 10 00
4) Redémarrez normalement votre ordinateur.
5) Ouvrir le module de gestion avancée des comptes d'utilisateur (control userpasswords2).
6) Cochez la case Les utilisateurs doivent entrer un nom d'utilisateur et un mot de passe pour utiliser cet ordinateur.
7) Spécifiez également que le mot de passe du compte d'utilisateur n'expire jamais.
8) Il ne vous reste plus qu'à redémarrer votre ordinateur...
- "Votre mot de passe a expiré et doit être changé" :
Vous pouvez être empêché d’ouvrir une session sur votre compte si ces deux conditions sont réunies :
* L’utilisateur ne peut changer son mot de passe (Net user Nom_Utilisateur /passwordchg:no)
* Le mot de passe est arrivé à expiration et que donc vous ne l’avez pas changé à temps ou paramétrer la stratégie de groupe correspondante afin que le mot de passe n’expire jamais.
Lors de la connexion au compte vous aurez ce message "Votre mot de passe a expiré et doit être changé" puis "Vous ne disposez pas de l’autorisation de changer votre mot de passe". Si le délai est expiré et que vous n’avez plus accès au compte Administrateur (le mot de passe Administrateur n’expire jamais) il ne vous sera plus possible de démarrer une session interactive.
Les stratégies sur les mots de passe sont stockées dans cette arborescence du Registre : HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\F. On retrouve ces même paramètres en ouvrant cette arborescence de l’éditeur de stratégie de groupe : Configuration ordinateur/Paramètres Windows/Paramètres de sécurité/Stratégies de comptes/Stratégie de mot de passe et de verrouillage du compte.
Examinons les offsets les plus importants :
* Offset 0018 : Durée de vie maximale des mots de passe (de 0 à 999 jours).
Vous pouvez par exemple trouver les valeurs suivantes :
- Le mot de passe n’expire jamais : 00 00 00 00 00 00 00 00
- Le mot de passe expirera dans 999 jours : 00 C0 53 7D FB EE FC FF
* Offset 0020 : Durée de vie minimale du mot de passe (de 0 à 998 jours).
* Offset 0048 - digit n°9 : Stocker le mot de passe en utilisant le cryptage réversible pour tous les utilisateurs du domaine (1 ou 0).
* Offset 0048 - digit n°10 : Le mot de passe doit respecter des exigences de complexité (1 ou 0).
* Offset 0050 - digit n°1 et 2 : Longueur minimale du mot de passe (0 à 14 caractères).
* Offset 0050 - digit n°5 et 6 : Conserver l’historique des mots de passe (0 à 24 mots de passe).
Admettons que vous ayez paramétré cette stratégie pour conserver un historique de 24 mots de passe le nombre 18 s’inscrira (24 en base hexadécimale correspond au nombre 18).
| N° |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
|
| 0000 |
02
|
00
|
01
|
00
|
00
|
00
|
00
|
00
|
‡‚......... |
| 0008 |
30
|
4A
|
2B
|
8E
|
93
|
3F
|
C6
|
01
|
0J+..?Æ |
| 0010 |
00
|
00
|
00
|
00
|
00
|
00
|
00
|
00
|
.............. |
| 0018 |
00
|
C0
|
53
|
7D
|
FB
|
EE
|
FC
|
FF
|
¢...ŒÊ.. |
| 0020 |
00
|
00
|
00
|
00
|
00
|
00
|
00
|
00
|
.............. |
| |
| 0048 |
2B
|
04
|
00
|
00
|
0
|
0 |
00
|
00
|
00
|
...®..Ñ.... |
| 0050 |
00
|
00
|
18
|
00
|
0A
|
00
|
00
|
00
|
..?Æ...... |
Comme précédemment nous allons utiliser un disque BartPE.
1) Chargez la ruche SAM.
2) Modifiez l’offset 00x18 en n'inscrivant que des zéros.
3) Redémarrez normalement.