Pour faire suite à un précédent article sur l‘escalade de privilège via la commande des tâches planifiées AT, une variante de cette méthode est pleinement fonctionnelle sous les versions de Windows plus récentes.
En effet, du temps de Windows XP les tâches planifiées se géraient exclusivement via cette commande AT. Depuis Windows Vista et 7, cette commande est tombée en désuétude au dépend de « schtasks ». Toutefois, Microsoft n’a pas éradiqué ce binaire « AT » de ses système en guise de rétro-compatibilité.
L’utilisation de cette ancienne commande nécessite d’avoir un shell privilégié, lancé en tant qu’administrateur. :
La raison de cette bride de la commande AT pour un shell simple est bien évidemment l’UAC (User Account Control). Ce mécanisme introduit depuis Windows Vista questionne l’utilisateur de la machine pour chaque action d’administration qu’il tente d’effectuer :
Diverses techniques existent et sont largement utilisées pour du pentest, afin de bypasser ces restrictions dues à l’UAC. Le projet Metasploit/Meterpreter intègre nativement des méthodes de bypass. Un des projets permettant cela se nomme « bypassuac » et est compatible avec les architectures 32 et 64 bits de Windows 7. Cet utilitaire binaire standalone permet de contourner cette protection pour exécuter des commandes « en tant qu’administrateur » :
Une autre évolution de la commande « AT » sur les nouveaux systèmes, est que le mode « interactif » qui fonctionnait pleinement sous Windows XP ne semble plus d’actualité. Ce mode permettait par exemple d’ajouter une tâche planifiée de « cmd.exe » à une heure précise en mode interactif, et que lorsque cette heure était atteinte, la commande s’ouvrait d’elle-même de manière interactive bien qu’elle était exécutée sous un utilisateur différent (SYSTEM) par rapport à la session courante.
A présent, ce mécanisme semble également bridé, et la commande n’apparaît plus. Néanmoins il est tout à fait possible de récupérer un shell SYSTEM sans interactivité. L’idée est d’utiliser le binaire « remote.exe » (ou « remotex64.exe ») disponible dans les « Windows debugger Tools« . Ces binaires, standalone, permettent de réaliser un tunnel (pipe) client/serveur sur une même machine Windows. L’avantage est que ces binaires sont propres à Microsoft et sont donc légitimes (non jugés dangereux par un quelconque antivirus, idéal pour le pentesting). Pour récupérer ces binaires, télécharger l’archive jointe à cet article ou installer les Windows Debugger Tools et récupérez les dans le répertoire d’installation.
Le fonctionnement de ces binaires « remote.exe » et « remotex64.exe » est très simple.
Partie serveur :
remote.exe /s cmd SYSCMD
Le « /s » pour activer le serveur en mettant à disposition la ressource « cmd » avec les privilèges « SYSCMD ».
Partie cliente :
remote.exe /c %COMPUTERNAME% SYSCMD
Le « /c » pour activer le mode « client » à destination de la machine du nom Netbios %COMPUTERNAME% avec des privilèges identiques.
L’obtention d’un shell NT AUTHORITY/SYSTEM sous un environnement Windows 7 avec bypass de l’UAC et via l’ancienne commande AT s’effectue donc via l’enchaînement de ces opérations dans un fichier Batch .bat :
- Définir le chemin d’accès au binaire « bypassuac.exe » préalablement placé sur la machine.
- Définir le chemin d’accès au binaire « remote.exe » préalablement placé sur la machine.
- L’heure actuelle est sauvée dans une variable.
- L’heure actuelle est changée à 13:37:57,44.
- Une tâche planifiée via AT est ajoutée à 13:38, lançant le serveur remote.exe avec les privilèges SYSTEM.
- Un temps d’attente de 3 secondes est réalisé via le ping.
- L’heure sauvée en amont du script est redéfinie.
- Enfin, « remote.exe » est utilisé en tant que client pour se connecter au serveur avec les droits SYSTEM.
Aperçu de l’exécution de ce script :
L’ensemble des binaires, outils et script ont été centralisés dans le package Win7_Local-Privilege-Escalation_AT_BypassUAC afin de faire gagner du temps aux pentesteurs.
Cette méthode n’est pas nouvelle et est à considérer comme une évolution de la technique du temps de Windows XP. Elle a été traitée en 2008 sur le blog TechNet de Microsoft et remis au goût du jour par Carnal0wnage dernièrement. ASafety la fait suivre ici en fournissant un script Batch automatisé et un package prêt à l’emploi.
Sources & ressources :