
Élévation de privilèges locale via PetitPotam (Abus des privilèges d'impersonation).
Élévation locale de privilèges via PetitPotam (abus des privilèges d'emprunt d'identité).
PetitPotam utilise MS-EFSR (Encrypting File System Remote), un protocole utilisé pour effectuer des opérations de maintenance et de gestion sur des données chiffrées stockées à distance et accessibles via un réseau. Il existe une série d'API similaires à EfsRpcOpenFileRaw dans MS-EFSR. La syntaxe de l'API EfsRpcOpenFileRaw est présentée ci-dessous.
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PEXIMPORT_CONTEXT_HANDLE* hContext,
[in, string] wchar_t* FileName,
[in] long Flags
);
Ces API peuvent spécifier un chemin UNC via le paramètre FileName pour ouvrir des objets chiffrés sur le serveur à des fins de sauvegarde ou de restauration. Lorsque le chemin au format \\IP\C$ est spécifié, le service lsass.exe accède à \\IP\pipe\srvsvc avec les privilèges du compte NT AUTHORITY SYSTEM.
Si nous pouvons appeler l'API EfsRpcOpenFileRaw pour forcer l'ordinateur local à se connecter au canal nommé malveillant que nous avons créé, nous pouvons alors emprunter l'identité du processus client du canal nommé et finalement obtenir le privilège SYSTEKM.
Mais l'ancien PetitPotam ne fonctionne pas sur les versions plus récentes de Windows en raison des limitations des correctifs associés. Cependant, définir AuthnLevel sur RPC_C_AUTHN_LEVEL_PKT_PRIVACY via RpcBindingSetAuthInfoW avant d'appeler EFS fonctionne sur les systèmes les plus récents.
En décembre 2021, Microsoft a publié un correctif pour une vulnérabilité EFSRPC différente : CVE-2021-43217. Dans le cadre de la remédiation de ce problème, Microsoft a implémenté certaines mesures de durcissement sur la communication EFSRPC. En particulier, les clients EFSRPC devaient utiliser RPC_C_AUTHN_LEVEL_PKT_PRIVACY lors de l'utilisation d'EFSRPC. Si le client ne le fait pas, celui-ci est rejeté et un événement d'application Windows est généré.
Actuellement, le projet permet d'élever de manière fiable les privilèges à SYSTEM sur toutes les versions de Windows (testé sur Windows 21H2 10.0.20348.1547).
PetitPotato.exe [EfsID] [Command]
EfsID : numéro d'API MS-EFSR à utiliserCommand : commande à exécuterC:\Users\Administrator\Desktop>PetitPotato.exe 3 cmd
[+] Malicious named pipe running on \\.\pipe\petit\pipe\srvsvc.
[+] Invoking EfsRpcQueryUsersOnFile with target path: \\localhost/pipe/petit\C$\wh0nqs.txt.
[+] The connection is successful.
[+] ImpersonateNamedPipeClient OK.
[+] OpenThreadToken OK.
[+] DuplicateTokenEx OK.
[+] CreateProcessAsUser OK.
Microsoft Windows [Version 10.0.20348.1547]
(c) Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
nt authority\system
C:\Windows\system32>
