
Elevação de privilégios local via PetitPotam (Abusando de privilégios de impersonação).
Escalação local de privilégios via PetitPotam (Abusando de privilégios de personificação).
O PetitPotam usa MS-EFSR (Encrypting File System Remote), um protocolo usado para realizar operações de manutenção e gerenciamento em dados criptografados armazenados remotamente e acessados por uma rede. Existem uma série de APIs similares a EfsRpcOpenFileRaw no MS-EFSR. A sintaxe da API EfsRpcOpenFileRaw é mostrada abaixo.
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PEXIMPORT_CONTEXT_HANDLE* hContext,
[in, string] wchar_t* FileName,
[in] long Flags
);
Essas APIs podem especificar um caminho UNC através do parâmetro FileName para abrir objetos criptografados no servidor para backup ou restauração. Quando o caminho no formato \\IP\C$ é especificado, o serviço lsass.exe acessará \\IP\pipe\srvsvc com privilégios da conta NT AUTHORITY SYSTEM.
Se pudermos chamar a API EfsRpcOpenFileRaw para forçar o computador local a se conectar ao named pipe malicioso que criamos, então podemos personificar o processo cliente do named pipe e, eventualmente, obter o privilégio SYSTEKM.
Mas a versão antiga do PetitPotam não funciona em versões mais novas do Windows devido às limitações dos patches relacionados. No entanto, definir AuthnLevel como RPC_C_AUTHN_LEVEL_PKT_PRIVACY via RpcBindingSetAuthInfoW antes de chamar o EFS funciona nos sistemas mais recentes.
Em dezembro de 2021, a Microsoft lançou um patch para uma vulnerabilidade EFSRPC diferente: CVE-2021-43217. Como parte da correção desse problema, a Microsoft implementou algumas medidas de endurecimento na comunicação EFSRPC. Em particular, os clientes EFSRPC precisariam usar RPC_C_AUTHN_LEVEL_PKT_PRIVACY ao usar EFSRPC. Se o cliente não fizer isso, o cliente é rejeitado e um evento de aplicativo do Windows é gerado.
Atualmente, o projeto pode elevar perfeitamente para SYSTEM em todas as versões do Windows (Testado no Windows 21H2 10.0.20348.1547).
PetitPotato.exe [EfsID] [Command]
EfsID: número da API MS-EFSR a ser usadoCommand: comando a ser executadoC:\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>
