[Windows] De simple utilisateur à administrateur en 1 click !

Qui n’a jamais tenté en vain d’être administrateur local après avoir essayé de multiples techniques ?

Vous allez voir qu’il est possible d’écrire dans les répertoires système normalement réservés aux administrateurs en 1 click !

Mais comment ?

Lancez une invite de commandes en tant que simple utilisateur et allez ensuite dans le gestionnaire de tâches.

Repérez le processus associé à votre invite de commandes et activer la virtualisation du contrôle de compte utilisateur (par défaut cette option est désactivée).

Et voila c’est tout ? Oui ! Vous pouvez maintenant écrire dans C:Windows\System32 !

La preuve, avec la commande précédente, echo Pwned > haha.txt, le fichier haha.txt est bien présent dans C:\Windows\System32 :

Bon allons voir maintenant ce fichier au niveau de l’explorateur de fichiers :

Il n’y est pas, que se passe t-il ?

Le fichier haha.txt n’est pas présent dans l’explorateur de fichiers alors qu’on le voit bien dans l’invite de commandes, c’est bizarre ça !

Mais alors je vous aurez menti ?

En quelque sorte oui ! Avez-vous fait attention à la date de ce post ? Il est du 1er avril 2021, poisson d’avril 🙂

Néanmoins où est ce fichier s’il n’est pas dans C:\Windows\System32 ?

Et bien ce fichier se trouve dans un répertoire où vous avez le droit d’écrire (et oui ce n’est pas magique), dans AppData\Local\VirtualStore :

C’est quoi ce tour de passe-passe ?

Dans mon dernier post je parlais d’une technique de bypass de l’UAC et bien là il s’agit de la virtualisation de l’UAC.

Windows permet aux applications qui ne sont pas écrites pour UAC de s’exécuter dans les comptes d’utilisateur standard à l’aide de la virtualisation du système de fichiers et de l’espace de noms du registre.

Lorsqu’une application modifie un emplacement de système global dans le système de fichiers ou dans le registre, et que cette opération échoue parce que l’accès lui est refusé, Windows redirige l’opération vers une zone propre à l’utilisateur.

Cette virtualisation de l’UAC s’appuie sur un mini filter driver, nommé luafv. Vous pouvez afficher la liste de ces mini filters drivers avec la commande fltmc (il faut être admin local, vraiment cette fois, pour pouvoir lancer cette commande) :

Vous avez remarqué la colonne « Altitude », à quoi sert-elle ?

Plus la valeur d’altitude est élevée, plus la priorité est élevée. Par exemple,
un filtre à l’altitude 10000 sera appelé avant un filtre à l’altitude 5000.

Lors du traitement des réponses, les altitudes sont traitées dans l’ordre inverse,
de sorte que le filtre à 5000 sera appelé en premier, puis celui à 10000.

Officiellement, les valeurs d’altitude doivent être enregistrées auprès de Microsoft (https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/allocated-altitudes).

Voila, il y aurait pas mal d’autres choses à dire sur ces mini filter drivers, notamment comment les exploiter en tant que pentester pour de l’élévation de privilèges vers Local System.

Si ce sujet vous intéresse je ne peux que vous conseillez la lecture de ce post :

https://googleprojectzero.blogspot.com/2021/01/hunting-for-bugs-in-windows-mini-filter.html

Joyeuses Pâques !