Secure Desktop Accessibility Registry Propagation LPE (RegPwn)
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Überblick
Windows Accessibility-Funktionen speichern Benutzerkonfigurationen unter HKCU und propagieren sie in pro-Session HKLM-Pfade. Während einer Secure Desktop-Transition (Sperrbildschirm oder UAC-Prompt) kopieren SYSTEM-Komponenten diese Werte erneut. Wenn der pro-Session HKLM-Schlüssel vom Benutzer beschreibbar ist, wird er zu einem privilegierten Schreib-Choke-Point, der mit registry symbolic links umgelenkt werden kann und so einen beliebigen SYSTEM-Registry-Schreibzugriff ermöglicht.
Die RegPwn-Technik missbraucht diese Propagationskette mit einem kleinen Rennfenster, das durch einen opportunistic lock (oplock) auf eine von osk.exe verwendete Datei stabilisiert wird.
Registrierungs-Propagationskette (Accessibility -> Secure Desktop)
Beispielfeature: Bildschirmtastatur (osk). Die relevanten Orte sind:
- Systemweite Feature-Liste:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs- Per-User-Konfiguration (vom Benutzer beschreibbar):
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk- Per-Session HKLM-Konfiguration (von winlogon.exe erstellt, vom Benutzer beschreibbar):
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Session<session id>\ATConfig\osk- Secure desktop/default user hive (SYSTEM-Kontext):
HKU\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
Propagation während einer Secure Desktop-Transition (vereinfacht):
- Benutzer
atbroker.exekopiertHKCU\...\ATConfig\osknachHKLM\...\Session<session id>\ATConfig\osk. - SYSTEM
atbroker.exekopiertHKLM\...\Session<session id>\ATConfig\osknachHKU\.DEFAULT\...\ATConfig\osk. - SYSTEM
osk.exekopiertHKU\.DEFAULT\...\ATConfig\oskzurück nachHKLM\...\Session<session id>\ATConfig\osk.
Wenn der Session-HKLM-Teilbaum vom Benutzer beschreibbar ist, bieten Schritt 2/3 einen SYSTEM-Schreibzugriff über einen Ort, den der Benutzer ersetzen kann.
Primitive: Beliebiger SYSTEM-Registry-Schreibzugriff via Registry Links
Ersetze den vom Benutzer beschreibbaren Per-Session-Schlüssel durch einen registry symbolic link, der auf ein vom Angreifer gewähltes Ziel zeigt. Wenn die SYSTEM-Kopie erfolgt, folgt sie dem Link und schreibt vom Angreifer kontrollierte Werte in den beliebigen Zielschlüssel.
Kernidee:
- Opfer-Schreibziel (vom Benutzer beschreibbar):
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Session<session id>\ATConfig\osk- Angreifer ersetzt diesen Schlüssel durch einen registry link zu einem beliebigen anderen Schlüssel.
- SYSTEM führt die Kopie aus und schreibt mit SYSTEM-Berechtigungen in den vom Angreifer gewählten Schlüssel.
Das ergibt eine beliebige SYSTEM-Registry-Schreiboperation.
Das Race-Fenster mit Oplocks gewinnen
Es gibt ein kurzes Timing-Fenster zwischen dem Start von SYSTEM osk.exe und dem Schreiben des Per-Session-Schlüssels. Um es zuverlässig zu machen, platziert der Exploit einen oplock auf:
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml
Wenn der oplock ausgelöst wird, ersetzt der Angreifer den HKLM-Schlüssel für die jeweilige Sitzung durch einen registry link, lässt SYSTEM schreiben und entfernt dann den Link.
Beispielhafter Exploitation-Ablauf (High Level)
- Hole die aktuelle session ID aus dem Access-Token.
- Starte eine versteckte
osk.exe-Instanz und warte kurz (sicherstellen, dass der oplock ausgelöst wird). - Schreibe vom Angreifer kontrollierte Werte in:
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
- Setze einen oplock auf
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml. - Löse den Secure Desktop (
LockWorkstation()) aus, wodurch SYSTEMatbroker.exe/osk.exegestartet werden. - Beim Auslösen des oplock ersetze
HKLM\...\Session<session id>\ATConfig\oskdurch einen registry link zu einem beliebigen Ziel. - Warte kurz, bis die SYSTEM-Kopie abgeschlossen ist, und entferne dann den Link.
Umwandlung des Primitives in SYSTEM-Ausführung
Eine einfache Kette ist, einen Wert der service configuration zu überschreiben (z. B. ImagePath) und dann den Service zu starten. Die RegPwn PoC überschreibt den ImagePath von msiserver und löst diesen aus, indem das MSI COM object instanziiert wird, was zu SYSTEM-Codeausführung führt.
Verwandt
Für andere Secure Desktop / UIAccess-Verhalten, siehe:
Uiaccess Admin Protection Bypass
References
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


