(Pentest) Exploitation des sticky keys

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


Et si je vous disais qu’avec deux lignes de commande sous Linux et un reboot, je pouvais récupérer un shell avec les droits NT System sans même passer la phase d’authentification sous Windows, me croiriez vous ? Non ?!

Eh bien pourtant vous allez voir que c’est tout à fait possible et c’est tout sauf compliquer !

Pour cet article je vais m’attaquer à une VM Windows 7 SP1 mais sachez que ce petit trick fonctionne très bien sur Windows 10 ainsi que sur les versions antérieurs. Pour cela vous aurez juste besoin d’une clé USB bootable avec un Linux et un PC sur Windows. C’est tipar !

I/ Séquence de boot Windows

Entre le moment où vous appuyez sur le bouton power de votre ordinateur et le moment où vous entrez votre identifiant et votre mot de passe, il se passe beaucoup de chose.

A vrai dire, il s’en passe tellement que je ne saurais vous détailler le processus complet. Mais j’ai trouvé un article sur Wikipédia qui résume le tout plutôt bien. Vous remarquerez que de nombreux .exe sont lancés par la machine. Mais avec quels droits sont-ils lancés ?! Des droits utilisateurs non privilégiés ? Un compte de service ? Non non non ! Ces .exe sont lancés avec les droits NT System. Autrement dit l’utilisateur qui dispose du plus de droits sous Windows !

Lorsque vous bootez avec votre clé USB Linux (ou lorsque vous êtes en dual boot) vous pouvez accéder à la partition de l’OS Windows. Ici je vous montre le contenu de mon dual boot sous Windows :

1.png

J’ai donc accès à n’importe quels fichiers et exécutables sur Windows depuis mon Linux. Retenez bien ça 😉😉 !

II/ Exploitation

Lorsque je boot sur Windows j’arrive sur cette page :

2.png

Sur cette page j’ai accès à plusieurs petits utilitaires tels que la loupe qui permet d’agrandir l’écran pour les malvoyants :

3.png

Atttteeennnnnndezzzzz quuuoooiiiii ?! Cette loupe, c’est un .exe à la base ! Donc ça veut dire que le processus à été lancé par NT System. Qu’est ce qui se passerait si à la place d’avoir la loupe je mettais un cmd.exe ?!

Eh bien vous auriez un shell avec les droits NT System ! Comment faire ? Eh bien c’est très simple, il suffit de supprimer dans le répertoire c:\Windows\System32 l’exécutable Magnify.exe, de faire une copie de cmd.exe et de le renommer Magnify.exe :

4.png

Rebootez la machine, cliquez sur l’option loupe et voilà votre shell :

5.png

A partir de là il vous suffit de rajouter un nouvel utilisateur :

6.png

Puis de l’ajouter au groupe Administrateurs :

7.png

Il ne vous reste plus qu’à vous connecter avec votre nouveau compte ! Je vous donne un petit tips en passant, au début il vous sera impossible d’utiliser le compte que vous venez de créer. Il ne vous sera pas proposer dans la liste des utilisateurs. Du coup lancez explorer.exe à l’aide du shell, un explorateur Windows va apparaître :

8.png

Déconnectez vous à l’aide des boutons standards et là vous pourrez vous connectez avec le compte précédemment créé 😄 !

9.png

III/ Et le forensic dans tout ça ?

Le problème avec cette technique c’est qu’elle laisse énormément de trace dans les logs USN. Ces logs catchent toutes les modifications qui ont été faites au système de fichiers. Heureusement pour nous, ils ont été introduis avec Windows 8 du coup sur notre Windows 7 la manipulation passera inaperçue 😎😎 !

Voilà voilà ! A l’origine cette technique utilisait sethc.exe qui était lancé lorsqu’on appuyait cinq fois sur la touche Maj d’où le nom de sticky keys !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s