[Windows 7 & 8] Escalade de privilège sans LiveCD

08
janv.
2013
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Administration réseaux et systèmes / OS / Privilege escalation / Vulnérabilités, exploits et PoC / Windows   /   2 commentaires

Le 4 juillet 2012, ASafety (re)présentait diverses techniques, qui commencent à avoir de l’âge, permettant d’élever ses privilèges sur un système Windows (7 et 8). Ces techniques facilitent la redéfinition de mot de passe de comptes administrateurs notamment, dans le cas de pertes d’accès.

L’article initial (qu’il est conseillé de consulter avant celui-ci) a été enrichi en citant également le processus « Utilman.exe » se trouvant également dans C:\Windows\System32\. Ce processus est le gestionnaire des différents outils d’accessibilité en tant que tel, et permet ainsi la récupération d’un shell au niveau du winlogon, donc sous l’autorité du compte « SYSTEM » :

Élévation de privilège via Utilman sous Windows 8

Élévation de privilège via Utilman sous Windows 8

La technique présentée consiste à remplacer les binaires d’accessibilité par la console « cmd.exe » renommée comme ces utilitaires ; celle-ci est donc accessible avant même qu’une session Windows soit ouverte, et ce avec le maximum des privilèges.

L’inconvénient de cette technique est qu’un LiveCD (Linux ou un DVD de réinstallation Windows 7/8) est nécessaire, pour altérer le contenu du répertoire System32. En effet, une fois Windows lancé, même sous un compte d’administration, il n’est pas directement possible d’éditer le contenu du répertoire System32 :

Essai modification System32 compte admin

Essai modification System32 compte admin

Les Windows 7 et 8 demandent explicitement de lancer un processus « en tant qu’administrateur » via l’interface graphique, même si l’on considère être l’administrateur de la machine :

Lancement du processus en tant qu'administrateur

Lancement du processus en tant qu’administrateur

Cette demande est suivie d’une validation par l’UAC (User Account Control) de Windows pour confirmer l’action :

Demande de l'UAC

Demande de l’UAC

A partir d’un shell lancé en tant qu’administrateur, certains droits additionnels sont disponibles au sein des répertoires Windows tels que System32 comme la copie/création de fichier. Toutefois la suppression d’entité système ne l’est toujours pas :

Essai de modification de System32 en tant qu'administrateur

Essai de modification de System32 en tant qu’administrateur

La raison de ces droits partiels, et notamment de l’impossibilité de supprimer un fichier dans System32, vient du fait que le fichier n’appartient pas à l’utilisateur courant (même en tant qu’administrateur avec une shell lancé « en tant qu’administrateur »). Il faut donc changer le propriétaire des fichiers à modifier/supprimer. De plus, les ACL (Access Control List) du fichier n’autorisent pas l’édition de celui-ci par un membre de l’administration.

Ainsi, pour remédier à ces manques de droits, il est nécessaire d’exécuter les commandes suivantes dans un shell lancé en tant qu’administrateur :

takeown /f monfichier.exe # permet de rendre l'utilisateur courant propriétaire du fichier monfichier.exe
 
icacls monfichier.exe /grant Administrateurs:f # Donne le contrôle total "F" (Full) à l'ensemble des membres du groupe Administrateurs

Une fois le fichier attribué à l’utilisateur courant et avec ces ACL de modifiés (ASafety détaille également l’utilisation des ACL dans un article dédié pour le camouflage de données sous Windows), sa suppression se déroule sans problème et la copie de la console « cmd.exe » également :

Takeown & icacls sur le fichier

Takeown & icacls sur le fichier

Cette technique permet aisément de modifier les fichiers de System32, en vue de l’obtention d’un shell sous le compte SYSTEM au niveau du Winlogon, et ce sans avoir à redémarrer la machine sur un LiveCD quelconque.

A noter toutefois que l’exécution du processus « cmd.exe » doit pouvoir être réalisée sous le compte courant « en tant qu’administrateur ». L’UAC alerte aussitôt pour confirmer la transmission des droits, si celle-ci est active bien évidemment.

Ressources :

  • Google Plus
  • LinkedIn
  • Viadeo
Yann C.

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.