Secure Desktop Propagacja rejestru Ułatwień dostępu LPE (RegPwn)
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Przegląd
Funkcje Accessibility w Windows zapisują konfigurację użytkownika pod HKCU i propagują ją do lokalizacji HKLM przypisanych do sesji. Podczas przejścia na Secure Desktop (ekran blokady lub monit UAC) komponenty działające jako SYSTEM ponownie kopiują te wartości. Jeśli klucz HKLM specyficzny dla sesji jest zapisywalny przez użytkownika, staje się punktem węzłowym zapisu z uprzywilejowaniami, który można przekierować za pomocą symbolicznych linków rejestru, co daje możliwość dowolnego zapisu rejestru jako SYSTEM.
Technika RegPwn wykorzystuje ów łańcuch propagacji z niewielkim oknem wyścigu, stabilizowanym przez opportunistic lock (oplock) na pliku używanym przez osk.exe.
Registry Propagation Chain (Accessibility -> Secure Desktop)
Przykładowa funkcja: On-Screen Keyboard (osk). Istotne lokacje to:
- System-wide feature list:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs- Per-user configuration (user-writable):
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk- Per-session HKLM config (created by
winlogon.exe, user-writable): HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Session<session id>\ATConfig\osk- Secure desktop/default user hive (SYSTEM context):
HKU\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
Propagacja podczas przejścia na secure desktop (uproszczone):
- Proces
atbroker.exeuruchomiony przez użytkownika kopiujeHKCU\...\ATConfig\oskdoHKLM\...\Session<session id>\ATConfig\osk. - Proces
atbroker.exedziałający jako SYSTEM kopiujeHKLM\...\Session<session id>\ATConfig\oskdoHKU\.DEFAULT\...\ATConfig\osk. - SYSTEM
osk.exekopiujeHKU\.DEFAULT\...\ATConfig\oskz powrotem doHKLM\...\Session<session id>\ATConfig\osk.
Jeśli poddrzewo HKLM dla sesji jest zapisywalne przez użytkownika, kroki 2/3 dostarczają zapisu jako SYSTEM przez lokalizację, którą użytkownik może zastąpić.
Prymityw: Dowolny zapis rejestru jako SYSTEM za pomocą linków rejestru
Zastąp klucz per-session zapisywalny przez użytkownika symbolicznym linkiem rejestru, który wskazuje na cel wybrany przez atakującego. Gdy kopiowanie wykonywane przez SYSTEM nastąpi, podąży ono za linkiem i zapisze wartości kontrolowane przez atakującego w dowolnym docelowym kluczu.
Kluczowa idea:
- Victim write target (user-writable):
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Session<session id>\ATConfig\osk- Attacker replaces that key with a registry link to any other key.
- SYSTEM performs the copy and writes into the attacker-chosen key with SYSTEM permissions.
To daje prymityw umożliwiający dowolny zapis rejestru jako SYSTEM.
Wygranie okna wyścigu za pomocą oplocków
Istnieje krótkie okno czasowe między uruchomieniem SYSTEM osk.exe a zapisem klucza per-session. Aby to uczynić niezawodnym, exploit umieszcza oplock na:
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml
Gdy oplock zostanie wyzwolony, atakujący podmienia przypisany do sesji klucz HKLM na registry link, pozwala SYSTEMowi zapisać dane, a następnie usuwa link.
Przykładowy przebieg eksploitacji (wysoki poziom)
- Pobierz bieżące session ID z access tokena.
- Uruchom ukrytą instancję
osk.exei krótko poczekaj (upewnij się, że oplock zostanie wyzwolony). - Zapisz wartości kontrolowane przez atakującego do:
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
- Ustaw oplock na
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml. - Wywołaj Secure Desktop (
LockWorkstation()), powodując uruchomienie SYSTEMatbroker.exe/osk.exe. - Gdy oplock zostanie wyzwolony, zastąp
HKLM\...\Session<session id>\ATConfig\oskregistry link wskazujący na dowolny cel. - Poczekaj krótko, aż kopia wykonana przez SYSTEM się zakończy, a następnie usuń link.
Zamiana prymitywu na wykonanie jako SYSTEM
Jednym prostym łańcuchem jest nadpisanie wartości service configuration (np. ImagePath), a następnie uruchomienie usługi. RegPwn PoC nadpisuje ImagePath msiserver i wywołuje ją przez instancjonowanie MSI COM object, skutkując wykonaniem kodu jako SYSTEM.
Powiązane
Aby zobaczyć inne zachowania Secure Desktop / UIAccess, zobacz:
Uiaccess Admin Protection Bypass
References
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


