Cette page permet de comprendre comment est structuré le registre Windows.
Pour rappel vous avez cette page sommaire sur le registre Windows sur le site : Le Registre Windows
! | Pour une description complète des ruches du registre Windows, vous pouvez aussi lire le tutoriel complet du site : QUE SONT QUE LES RUCHES DU REGISTRE WINDOWS |
Une ruche correspond à un fichier sur le disque.
Les ruches sont stockés dans le dossier : %SystemRoot%\System32\Config
Si un des fichiers est endommagé, la ruche et donc les informations deviennent illisibles. Windows peux alors ne pas réussir à démarrer.
On peux alors obtenir le message :
Windows XP n'a pas pu démarrer car le fichier suivant est manquant ou endommagé : \WINDOWS\SYSTEM32\CONFIG\SYSTEM
La FAQ suivant décrit le rétablissement des ruches : http://support.microsoft.com/kb/307545
Voici la liste des ruches de HKEY_LOCAL_MACHINE :
- HKEY_LOCAL_MACHINE\default => c:\windows\system32\config\default
- HKEY_LOCAL_MACHINE\SAM (Security Account Manager) => c:\windows\system32\config\sam
- HKEY_LOCAL_MACHINE\Security => c:\windows\system32\config\security
- HKEY_LOCAL_MACHINE\Software (informations logiciels) => c:\windows\system32\config\software
- HKEY_LOCAL_MACHINE\System (informations systèmes, configuration, services etc) => c:\windows\system32\config\system
Pour Windows XP : C:\Documents and Settings\<user>
Pour Windows Vista/Seven : C:\Utilisateurs\<users>
HKEY_LOCAL_MACHINE VS HKEY_CURRENT_USERS
HKEY_LOCAL_MACHINE contient donc les informations systèmes mais aussi logiciels. Pour modifier cette ruche, il faut que l'utilisateur courant aie des droits administrateurs.
Les informations logiciels se trouvent dans la ruche : KEY_LOCAL_MACHINE\Software
Cela comprends aussi les informations relatives à Windows, notamment dans la partie : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
et notamment :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Si l'utilisateur a des droits restreints, il ne pourra modifier le système mais seulement son profil/environnement soit donc les dossiers de son profil et la ruche HKEY_CURRENT_USER.
Ce qui permet par exemple pour chaque utilisateur d'avoir son propre fond d'écran, de configurer l'affichage des dossiers (icônes etc) comme bon lui semble.
On retrouve donc la même structure sur la partie SOFTWARE entre HEKY_LOCAL_MACHINE (tous utilisateurs) et HKEY_CURRENT_USER (utilisateurs courants) .


Vous trouverez d'autres informations sur les profils utilisateurs et registre en page 2 de la page : profil utilisateur.
En réalité, HKEY_CURRENT_USERS est une image de HKEY_USERS\<SID de l'utilisateur courrant>
(SID étant les identifiants de type S-1-5-21-823518204-725345543-786100373-1005 qui identifie un utilisateur)
Le fait donc de tourner avec des droits administrateurs, en cas d'infection, rend la modification possible du système et le chargement de malware bas dans le système (drivers, services => rootkit), ou simplement le fait d'avoir une clef Run au niveau HKEY_LOCAL_MACHINE sera effectif à tous les utilisateurs.
Tandis qu'un utilisateur avec des droits restreints qui lance un malware ne verra que son environnement modifié, il est alors plus facile pour l'antivirus (qui tourne lui avec des droits systèmes) de nettoyer le profil de l'infection.
D'où le fait qu'il n'est pas recommandé de surfer avec des droits administrateurs : Pourquoi ne pas surfer avec les droits administrateur?
Ruches USERS et Malwares
Sur un Windows, deux utilisateurs :
- MaK => SID : S-1-5-21-823518204-725345543-786100373-1003
- Robert => SID : S-1-5-21-823518204-725345543-786100373-1005
Sur le profil Mak, j'ai créé une clef Run Clef LOCALE qui pointe sur c:\blabla.exe
Un rapport HijackThis depuis la session MaK :

En bleu, les clefs Run relatives à HKEY_LOCAL_MACHINE
En rouge, les clefs Run relatives à HKEY_CURRENT_USER soit donc l'utilisateur MaK, on retrouve la clef ajoutée.
Plus bas, les clefs des autres utilisateurs (notamment SYSTEM et SERVICE), on retrouve le SID.
Si on se logue avec la session Robert, HijackThis ne montre pas la clef Run "Clef LOCALE".
Cela vient du fait que les clefs relatives au profil de l'utilisateur MaK ne sont pas chargées :

En chargeant la ruche (voir paragraphe suivant), CD Live Malekal, en cochant "tous les utilisateurs", parvient à lister la "Clef LOCALE" :

Par contre, HijackThis ne liste que le processus CFTMON.EXE des autres utilisateurs.

Dans le cas des infections ransomwares / Fake Police qui ajoutent des clefs relatives à l'utilisateur.
Si l'internaute va en mode sans échec avec l'utilisateur administrateur (le ransomware bloquant sa session) qui est caché en mode normal, les outils HijackThis et OTL ne montreront pas les clefs USERS relatives à l'infection sur la session infectée puisque la ruche NTUSERS.dat de la session infectée ne sera pas chargée dans le registre.
Charger une ruche depuis un systèmes d'exploitation alternatif
Le programme regedit permet de charger des ruches.
Dans les cas évoqués précédemment, il est possible de charger la ruche MaK depuis la session Robert.
Pour cela, il faut récupérer le SID de l'utilisateur qui nous intéresse.
Se rendre sur la clef : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Vous obtenez en dessous les SID : S-x-x-xx-xxxxxx-xxxxxxx-xxxxxxx-xxxx
Cliquez sur chacun de ces dossiers SID afin d'identifier les utilisateurs par rapport à droite à la clef ProfileImagePath.
Notez le SID en le copie/collant dans le bloc-note (clic droit sur le SID puis copier la clef).
Ci-dessous, on voit que l'utilisateur MaK est rattaché au SID : S-1-5-21-823518204-725345543-786100373-1003

Afficher les fichiers cachés et systèmes sur Windows :
- Comment afficher les fichiers cachés et systèmes sur Windows 10
- Comment afficher les fichiers cachés et systèmes sur Windows
Cliquez sur le menu Fichier et Charger la ruche.
Coller le SID relatif à la session dont vous souhaitez charger les informations.

Si tout va bien, vous devriez donc avoir dans HKEY_USERS un second SID qui correspond à la session dont vous souhaitez obtenir les informations.

Il est tout à fait possible de charger les ruches HKEY_LOCAL_MACHINE de %SystemRoot%\System32\Config de cette manière.
! | Attention - pour décharger la ruche, ne supprimer pas les clefs, - vous devez sélectionner la ruche et cliquez sur le menu Fichier puis décharger la ruche |
Dans le cas où Windows n'est pas accessible.
Un CD Live permet l'accès au registre en démarrant l'ordinateur dessus, cela peut donc permettre de réparer Windows.
Comment accéder au registre Windows quand Windows est planté
Enfin il est tout à fait possible de charger les ruches depuis regedit en allant les chercher sur un disque dur esclave.