Table of Contents
Introduction
Les touches rémanentes constituent une fonctionnalité d'accessibilité fournie par Windows.
Afin de permettre aux personnes ayant des difficultés à presser simultanément plusieurs touches (par exemple CTRL+ALT+SUPPR)windows la fonctionnalité des “touches rémanentes” (sticky keys) d'utiliser les touches MAJ, CTRL et ALT à l'aide d'une seule pression sur ces touches.
Une vulnérabilité permet d'exploiter cette fonctionnalité afin de contourner le mécanisme de connexion des utilisateurs.
Présentation de la vulnérabilité
La fonctionnalité est activée en appuyant 5 fois sur la touche MAJ, l'utilisateur provoque ainsi l'exécution du programme sethc.exe dans la bibliothèque System32.
Si en lieu et place de ce programme on place un shell (par exemple l'invite de commande cmd.exe) en le renommant c'est ce shell qui sera exécuté.
Or la fonctionnalité peut être activée avant que l'utilisateur ne soit connecté, il suffit donc de procéder à la substitution en amont du démarrage de windows, pour pouvoir avoir accès au shell en dehors de tout contexte utilisateur, c'est à dire pratiquement avec les droits administrateurs.
Méthodologie
La méthodologie complète décrite ci-dessous est illustrée dans le document Hack windows 7.
Pour pouvoir placer la copie du shell en lieu et place du programme sethc.exe on peut utiliser la fonctionnalité de restauration du système en provoquant le crach su système.
Lorsque le système ne s'est pas arrêter de manière adéquate le système propose soit :
- De démarrer en mode normal
- De démarrer en mode sans échec
Il ne propose pas le mode réparation spontanément, cependant on peut lui forcer la main en enchainant les crach système.
Pour cela enchainer les arrêts en cours de démarrage en appuayant sur ctrl+alt+supr.
Dés que Windows propose le démarrage de récupération, lancer ce mode.
Faire cancel à la première question (restauration du système) et attendre la fin de la restauration.
A la fin de la restauration la procédure propose d'envoyer les informations de débogage, dans cette fenêtre il est également possible de visionner le rapport avant de l'envoyer.
Cliquer sur voir les détails du problème, une fenêtre affiche le rapport avec dedans un lien vers le fichier contenant toutes les données collectées, cliquer sur se lien pour ouvrir l'éditeur.
Une fois l'éditeur ouvert on a accès à un shell permettant de manipuler les fichiers.
Pour utiliser ce shell faire “Fichier” → “Ouvrir”.
Aller dans le dossier “ System32”, sélectionner “All files” dans “Files type” et faire une copie du fichier CMD.exe (click droit sur le fichier).
Renommer le fichier sethc.exe, par exemple en sethc-1.exe (click droit sur le fichie), et renommer la copie de CMD.exe en sethc.exe.
Voila, maintenant on dispose d'un shell que l'on poura utiliser en dehors de toute connexion.
Fermer toutes les fenêtres qui sont ouvertes et cliquer sur “Finish”.
Utilisation du shell
Rallumer l'ordinateur et attendre que windows démarre normalement. Appuyer 5 fois sur la touche “shift” et on a accès à la console avec l'utilisateur “system”. La porte est ouverte et on a accès à toutes les fonctionnalités de Windons, par exemple pour lancer le shell explorer taper explorer.exe.
