hacktricks/windows-hardening/windows-local-privilege-escalation/appenddata-addsubdirectory-permission-over-service-registry.md

2.6 KiB

Oryginalny post to https://itm4n.github.io/windows-registry-rpceptmapper-eop/

Podsumowanie

Znaleziono dwa klucze rejestru, które były zapisywalne przez bieżącego użytkownika:

  • HKLM\SYSTEM\CurrentControlSet\Services\Dnscache
  • HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper

Zasugerowano sprawdzenie uprawnień usługi RpcEptMapper za pomocą regedit GUI, a konkretnie zakładki Efektywne uprawnienia w oknie Zaawansowane ustawienia zabezpieczeń. Takie podejście umożliwia ocenę przyznanych uprawnień dla konkretnych użytkowników lub grup bez potrzeby badania każdego wpisu kontroli dostępu (ACE) z osobna.

Zrzut ekranu pokazał uprawnienia przypisane użytkownikowi o niskich uprawnieniach, wśród których wyróżniało się uprawnienie Utwórz podklucz. To uprawnienie, znane również jako AppendData/AddSubdirectory, odpowiada ustaleniom skryptu.

Zauważono niemożność bezpośredniej modyfikacji niektórych wartości, ale możliwość tworzenia nowych podkluczy. Przykładem było próba zmiany wartości ImagePath, która zakończyła się komunikatem o odmowie dostępu.

Pomimo tych ograniczeń, zidentyfikowano potencjał do eskalacji uprawnień poprzez możliwość wykorzystania podklucza Performance w strukturze rejestru usługi RpcEptMapper, podklucza, który nie jest obecny domyślnie. Mogłoby to umożliwić rejestrację DLL i monitorowanie wydajności.

Skonsultowano dokumentację na temat podklucza Performance i jego wykorzystania do monitorowania wydajności, co doprowadziło do opracowania dowodu koncepcji DLL. Ta DLL, demonstrująca implementację funkcji OpenPerfData, CollectPerfData i ClosePerfData, została przetestowana za pomocą rundll32, potwierdzając jej operacyjną skuteczność.

Celem było zmuszenie usługi RPC Endpoint Mapper do załadowania stworzonych DLL do wydajności. Obserwacje wykazały, że wykonywanie zapytań klas WMI związanych z danymi wydajnościowymi za pomocą PowerShell skutkowało utworzeniem pliku dziennika, co umożliwiło wykonanie dowolnego kodu w kontekście LOCAL SYSTEM, przyznając tym samym podwyższone uprawnienia.

Podkreślono trwałość i potencjalne implikacje tej luki, zwracając uwagę na jej znaczenie dla strategii poeksploatacyjnych, ruchu lateralnego oraz unikania systemów antywirusowych/EDR.

Chociaż luka została początkowo ujawniona przypadkowo za pomocą skryptu, podkreślono, że jej wykorzystanie jest ograniczone do przestarzałych wersji Windows (np. Windows 7 / Server 2008 R2) i wymaga dostępu lokalnego.