La perte de mot de passe pour l’accès à sa propre session est un des problèmes récurrents quelque soit le système d’exploitation utilisé.
Différentes méthodes existent pour réinitialiser les mots de passes ou bien même les déchiffrer d’une machine bloquée. Windows 8 n’échappe pas à la règle.
La technique du processus « sethc.exe »
Cette technique remonte à Windows XP, et s’avère toujours fonctionnelle à travers les âges. Combien de fois, au cours d’un jeu vidéo par exemple, avez-vous été déconcentré par « l’activation des touches rémanentes » ? En effet, lors de l’appui successif 5 fois sur la touche « Shift » de votre clavier, sous Windows, une fenêtre apparaît demandant l’activation de cette fonctionnalité. Cette petite fenêtre est générée par le processus « sethc.exe » se trouvant dans « System32 » de votre OS.
La particularité de ce processus, est qu’il est exécutable dès le « Winlogon ». Autrement dit, vous n’êtes pas obligé d’être connecté à une session pour activer les touches rémanentes. Cela signifie que, puisqu’aucune session n’est ouverte au « Winlogon », « sethc » s’exécute avec les droits « NT AUTHORITY/SYSTEM ». Ce compte dispose de tous les droits sur le système, comme la réinitialisation des mots de passes des comptes sans connaissance des précédents.
Les combinaisons de touches suivantes permettent de lancer le processus « sethc.exe » dès le « Winlogon » :
- 5 fois la touche shift (droite ou gauche) pour les « touches rémanentes ».
- 8 secondes sur le shift droit pour les « touches filtres » qui gèrent la fréquence de répétition du clavier.
- 5 secondes sur la touche « verrnum » pour le verrouillage du pavé numérique afin d’activer les « touches bascules ».
- Alt (gauche) + Shift (gauche) + Impr écran, pour activer le contraste élevé
- Alt (gauche) + Shift (gauche) + verrnum, pour activer les « touches souris » (utilisation du pavé numérique comme souris).
Ainsi, l’objectif pour une telle escalade de privilège, est de remplacer le processus « C:\Windows\System32\sethc.exe » original par la console Windows « cmd.exe » que l’on nommerait pareillement. Ceci ne peut être fait qu’avant le démarrage du système, donc par l’intermédiaire d’un LiveCD Linux, ou d’un CD d’installation Windows (en mode réparation pour accéder au terminal).
La technique des processus d’accessibilité
Windows a tout prévu pour le maniement et l’accès à son système d’exploitation. Notamment pour les personnes en difficulté, celles-ci disposent d’outils améliorant la visibilité à l’écran. Ces outils sont les processus d’ergonomie ou d’accessibilité. Ils sont utilisables dès l’écran de connexion (Winlogon) sous Windows 7 et 8.
Pour les mêmes raisons que la technique via « sethc », les outils d’accessibilité permettent une élévation des privilèges et l’obtention d’un shell NT AUTHORITY/SYSTEM puisqu’aucune session n’est encore ouverte au Winlogon.
Il suffit de remplacer avant le démarrage du système, un des processus d’accessibilité par la console « cmd.exe » avec un nom similaire à l’outil pour permettre une élévation de privilège.
Ces processus d’accessibilité sont les suivants :
- Magnify.exe : La loupe d’écran (pour les mal-voyants)
- Narrator.exe : Le lecteur vocale des textes de l’écran (pour les mal-entendants)
- osk.exe : On Screen Keyboard, le clavier visuel, pour ceux qui souhaitent cliquer sur les touches.
- Utilman.exe : Le gestionnaire des processus d’accessibilité en tant que tel
Escalade de privilège et réinitialisation de mot de passe
Une fois « cmd.exe » renommé en l’un des processus détaillés ci-dessus (sethc, Magnify, osk, Narrator et/ou utilman) avant le démarrage du système (donc via un LiveCD par exemple), il suffit de le lancer au Winlogon pour voir le shell apparaitre.
Pour remplacer ces processus par la commande « cmd.exe » via un LiveCD Linux, il faut monter la partition (hdaX ou sdaX) contenant « Windows/System32 » et exécuter certaines commandes :
cd /media mkdir disk mount -f ntfs-3g /dev/hdaX /media/disk -o force cd disk/Windows/System32 rm Magnify.exe rm sethc.exe rm osk.exe rm Narrator.exe rm Utilman.exe cp cmd.exe Magnify.exe cp cmd.exe sethc.exe cp cmd.exe osk.exe cp cmd.exe Narrator.exe cp cmd.exe Utilman.exe reboot
La méthode via un CD d’installation/restauration Windows (en l’occurrence 7) est disponible en vidéo sur la chaîne Youtube d’ASafety.
Note : Le fait de modifier les fichiers de Windows/System32 peut générer une restauration/réparation automatique au prochain démarrage du système. Ceci est dû à un contrôle d’intégrité de Windows à chaque démarrage. Ce contrôle s’effectue sur les fichiers présents dans les répertoires systèmes, non pas sur le contenu (hash/signature) de ces fichiers. Ainsi, lorsque vous touchez au processus dans Windows/System32 tels que « sethc.exe » ou « Magnify.exe », supprimer les bien avant de les remplacer par « cmd.exe ». Si vous en faites des sauvegardes « Magnify.exe.bak » l’intégrité du système sera altérée et au prochain redémarrage Windows va réinitialiser/réparer ses outils.
Pour parer à cela, il pourrait être intéressant de creuser autour du contrôle d’intégrité et du mode de récupération que Windows 7 et 8 utilisent au démarrage, au travers de l’outil « bcdedit » :
C:\Users\X\Desktop>bcdedit Gestionnaire de démarrage Windows --------------------------------- identificateur {bootmgr} device partition=\Device\HarddiskVolume2 description Windows Boot Manager locale fr-FR inherit {globalsettings} default {current} resumeobject {fd510c55-744a-11e1-be60-f96dd3f60867} displayorder {current} toolsdisplayorder {memdiag} timeout 30 Chargeur de démarrage Windows ----------------------------- identificateur {current} device partition=C: path \Windows\system32\winload.exe description Windows 7 locale fr-FR inherit {bootloadersettings} recoverysequence {fd510c57-744a-11e1-be60-f96dd3f60867} recoveryenabled Yes osdevice partition=C: systemroot \Windows resumeobject {fd510c55-744a-11e1-be60-f96dd3f60867} nx OptIn
La récupération se désactive via la commande :
bcdedit /set {default} recoveryenabled No