Secure Desktop Accessibility Registry Propagation LPE (RegPwn)
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Огляд
Функції Accessibility у Windows зберігають конфігурацію користувача під HKCU і поширюють її в пер-сесійнi локації HKLM. Під час переходу на Secure Desktop (екран блокування або UAC prompt) компоненти SYSTEM повторно копіюють ці значення. Якщо пер-сесійний ключ HKLM доступний для запису користувачем, він стає привілейованим choke point для запису, який можна перенаправити за допомогою registry symbolic links, що дає можливість здійснити довільний запис у реєстр від імені SYSTEM.
Техніка RegPwn зловживає цим ланцюжком пропагації з невеликим вікном гонки, яке стабілізується за допомогою opportunistic lock (oplock) на файлі, що використовується osk.exe.
Registry Propagation Chain (Accessibility -> Secure Desktop)
Приклад функції: On-Screen Keyboard (osk). Відповідні локації:
- 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
Поширення під час переходу на Secure Desktop (спрощено):
- User
atbroker.exeкопіюєHKCU\...\ATConfig\oskвHKLM\...\Session<session id>\ATConfig\osk. - SYSTEM
atbroker.exeкопіюєHKLM\...\Session<session id>\ATConfig\oskвHKU\.DEFAULT\...\ATConfig\osk. - SYSTEM
osk.exeкопіюєHKU\.DEFAULT\...\ATConfig\oskназад уHKLM\...\Session<session id>\ATConfig\osk.
Якщо піддерево сесії в HKLM доступне для запису користувачем, кроки 2/3 забезпечують запис від імені SYSTEM через локацію, яку користувач може замінити.
Примітив: Arbitrary SYSTEM Registry Write via Registry Links
Замість пер-сесійного ключа, доступного для запису користувачем, встановлюють registry symbolic link, що вказує на довільну ціль, обрану атакуючим. Коли відбувається копіювання від SYSTEM, воно слідує по ланцюгу і записує керовані атакуючим значення в довільний цільовий ключ.
Ключова ідея:
- 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.
Це дає примітив для довільного запису в реєстр від імені SYSTEM.
Winning the Race Window with Oplocks
Існує коротке часове вікно між запуском SYSTEM osk.exe і записом пер-сесійного ключа. Щоб зробити це надійним, експлойт розміщує oplock на:
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml
Коли oplock спрацьовує, атакувальник замінює per-session ключ HKLM на registry link, дозволяє SYSTEM виконати запис, а потім видаляє цей лінк.
Example Exploitation Flow (High Level)
- Отримайте поточний session ID з access token.
- Запустіть прихований екземпляр
osk.exeта ненадовго зробіть паузу (щоб гарантувати спрацьовування oplock). - Запишіть керовані атакером значення в:
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
- Встановіть oplock на
C:\Program Files\Common Files\microsoft shared\ink\fsdefinitions\oskmenu.xml. - Ініціюйте Secure Desktop (
LockWorkstation()), що спричинить запуск SYSTEMatbroker.exe/osk.exe. - При спрацьовуванні oplock замініть
HKLM\...\Session<session id>\ATConfig\oskна registry link до довільної цілі. - Почекайте коротко, доки SYSTEM завершить копіювання, після чого видаліть лінк.
Converting the Primitive to SYSTEM Execution
Одним із простих ланцюжків є перезапис значення service configuration (наприклад, ImagePath) з подальшим запуском служби. RegPwn PoC перезаписує ImagePath для msiserver і запускає її шляхом інстанціювання MSI COM object, що призводить до виконання коду від імені SYSTEM.
Related
Для інших поведінок Secure Desktop / UIAccess див.:
Uiaccess Admin Protection Bypass
References
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


