SOC Prime Bias: Критичний

16 Jul 2026 13:54 UTC

LegacyHive: Помилка служби профілів користувачів Windows, яка завантажує реєстровий вулик іншого користувача

Author Photo
SOC Prime Team linkedin icon Стежити
LegacyHive: Помилка служби профілів користувачів Windows, яка завантажує реєстровий вулик іншого користувача
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

LegacyHive – це непатчена вразливість для підвищення привілеїв на локальному рівні у Службі профілю користувача Windows (ProfSvc). Зловмисник може використати комбінацію отруєння реєстру, символічних посилань менеджера об’єктів та умови гонки TOCTOU через oplocks, щоб примусити службу рівня SYSTEM завантажити реєстровий вулик цільового користувача. Це дозволяє користувачу з низькими привілеями отримати несанкціонований доступ до чутливих даних реєстру або потенційно здобути повний компроміс із SYSTEM.

Розслідування

Дослідник Nightmare-Eclipse розробив доказ концепції (PoC), що використовує невідповідність між операціями файлів рівня SYSTEM та шляхами, контрольованими користувачем. Розслідування демонструє, як модифікація значення реєстру Local AppData може перенаправити службу до простору імен NT менеджера об’єктів. Використовуючи опортуністичний замок (oplock) на файлі-приманці, зловмисник може замінити символічне посилання в той момент, коли служба намагається завантажити вулик.

Пом’якшення

Microsoft має реалізувати канонізацію шляхів, щоб гарантувати, що розв’язані шляхи залишаються в межах законного каталогу профілю користувача, і відхиляти префікси пристроїв/менеджера об’єктів. Крім того, розробникам слід використовувати захист від перезапису (FILE_FLAG_OPEN_REPARSE_POINT) і виконувати ввід/вивід у контексті безпеки користувача, а не SYSTEM, щоб запобігти сценаріям з плутаниною заступника.

Відповідь

Захисники повинні негайно стежити за незвичайними завантаженнями реєстрів (RegLoadKey) для облікових записів, що не увійшли інтерактивно, та спостерігати за створенням директорій об’єктів під BaseNamedObjectsRestricted. Інструменти контролю програм, такі як WDAC або AppLocker, слід використовувати для запобігання виконанню непідписаних бінарних файлів. Як тільки Microsoft випустить офіційний патч, його слід пріоритетно встановити на всіх настільних та серверних установках Windows.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="flowchart TD step_data_manipulation["T1565.003 – Data Manipulation: Runtime Data Manipulation: Poisoning Local AppData registry value to point to .globalrootBaseNamedObjectsRestricted"] rules_for_data_manipulation("<b>Rule Name</b>: Possible LegacyHive Exploitation Behavior (via registry_event)<br/><b>Rule ID</b>: a369fa4f-a2b4-4cc7-a6d8-dbc8e083ed32") step_delay_execution["T1678 – Delay Execution: Using FSCTL_REQUEST_BATCH_OPLOCK on decoy UsrClass.dat to stall User Profile Service"] rules_for_delay_execution("<b>Rule Name</b>: Possible LegacyHive Exploitation Behavior (via file_event)<br/><b>Rule ID</b>: f950cb0b-1c08-4ce5-9519-449b43c218f9") step_privilege_escalation["T1068 – Exploitation for Privilege Escalation: Deleting symbolic link to force ProfSvc to load administrator registry hive under attacker session"] rules_for_privilege_escalation("<b>Rule Name</b>: Possible LegacyHive Exploitation Behavior (via cmdline)<br/><b>Rule ID</b>: 5b44a5f0-9e8f-41e0-be1e-ec4946322166<hr/><b>Rule Name</b>: Probable Use of Windows Hacktools [Part3] (via cmdline)<br/><b>Rule ID</b>: 1b1fdfaf-7efb-4a69-88b6-1f4f9a27ad1a<hr/><b>Rule Name</b>: Probable Use of Windows Hacktools [Part3] (via file_event)<br/><b>Rule ID

Хід атаки

Виконавче резюме

  • Ідентифікатор тест-кейсу: TC-20240522-K9P2L
  • TTP: T1068, T1548
  • Короткий зміст логіки правила виявлення: Виявляє спроби експлуатації вразливості LegacyHive шляхом моніторингу notepad.exe запуску з CreateProcessWithLogonW шаблоном API в командному рядку.
  • Мова/Формат правила виявлення: yaml
  • Цільове середовище безпеки: Windows OS, Windows Event Logs (Створення процесу), EDR/SIEM.
  • Оцінка стійкості (1-5): 2
  • Обґрунтування: Правило сильно залежить від наявності конкретного рядка (CreateProcessWithLogonW) у полі CommandLine . Зловмисник може легко обійти це, використовуючи інші виклики API, які дають той самий результат, або використовуючи інші імена процесів замість notepad.exe.
  • Основні Висновки: Виявлення дуже специфічно для однієї реалізації експлуатації і є надзвичайно крихким проти незначних варіацій у векторі атаки.
  • Рекомендація: Розширити виявлення для моніторингу підозрілих створення процесу варіантів у кількох загальних бінарних файлах (наприклад, calc.exe, cmd.exe) та спостерігати за аномаліями Служби профілів користувачів (ProfSvc).

Середовище симуляції та контекст

  • Піддослідні TTP:
    • T1068: Експлуатація для підвищення привілеїв
    • T1548: Зловживання механізмами підвищення привілеїв
  • TTP Контекст та Релевантність: Експлуатація LegacyHive полягає у примушенні служби рівня SYSTEM до виконання дій від імені користувача. Використовуючи CreateProcessWithLogonW для запуску процесу в призупиненому стані, зловмисник може маніпулювати середовищем для завантаження шкідливого реєстрового вулика. Моніторинг специфічних артефактів командного рядка цього виклику API призначений для виявлення стадії експлуатації.
  • Цільове середовище:
    • OS: Windows 10/11 або Windows Server 2019/2022
    • Логування: Sysmon (Event ID 1) або Журнал безпеки Windows (Event ID 4688) з увімкненим аудитом командного рядка.
    • Security Stack: SIEM (напр., Splunk, Microsoft Sentinel)

Телеметрія та перевірка базової лінії перед польотом

Обґрунтування: Перед імітацією атаки ми повинні підтвердити, що цільовий хост налаштований на створення необхідних журналів, що ці журнали інгестюються SIEM, і що правило виявлення не спрацьовує на безвинну активність. Без цієї перевірки будь-який тестовий результат ненадійний.

  • 1. Інструкції з налаштування телеметрії:

      1. Переконайтеся, що “Аудит створення процесів” увімкнено через Політику групи (Конфігурація комп’ютера > Налаштування Windows > Налаштування безпеки > Конфігурація розширеної політики аудиту > Детальне відстеження).
      1. Переконайтеся, що “Включити командний рядок у події створення процесу” увімкнено (через Реєстр: HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemAuditProcessCreationIncludeCmdLine).
      1. Встановіть Sysmon і переконайтеся, що подія ID 1 (Створення процесу) збирається.
  • 2. Валідація інгестації та базової лінії:

    • Дія (Бенінгова телеметрія): Запустіть стандартний екземпляр Блокноту, щоб переконатися, що логування створення процесу функціональне без запуску виявлення експлуатації.

      Start-Process "notepad.exe"
    • Запит валідації (Інгестація):

      DeviceProcessEvents
      | where FileName =~ "notepad.exe"
      | where ProcessCommandLine !contains "CreateProcessWithLogonW"

Виконання симуляції

Попередня умова: Телеметрія та перевірка базової лінії перед польотом повинна пройти.

Обґрунтування: У цьому розділі детально описується точне виконання техніки супротивника (TTP), призначеної для того, щоб викликати правила виявлення. Команди та наративи повинні безпосередньо відображати вказані ТТP і мати на меті створення саме тієї телеметрії, яку очікує логіка виявлення. Абстрактні або невідповідні приклади призведуть до діагностичних помилок.

  • Наратив атаки та команди: Зловмисник має намір експлуатувати вразливість LegacyHive для підвищення привілеїв до рівня SYSTEM. Для цього він використовує скрипт, який викликає CreateProcessWithLogonW Windows API. Мета полягає в запуску notepad.exe в призупиненому стані. Симуляція використовує оболонку PowerShell, щоб імітувати шаблон аргументів командного рядка, який шукає правило виявлення, зокрема фокусуючись на рядку CreateProcessWithLogonW у контексті виконання notepad.exe.

  • Скрипт регресійного тестування:

    # Імітація спроби експлуатації LegacyHive через ін'єкцію артефактів командного рядка
    # Примітка: Цей скрипт симулює шаблон рядка командного рядка для тестування виявлення.
    
    $targetProcess = "notepad.exe"
    $fakeArgument = "CreateProcessWithLogonW"
    
    Write-Host "[+] Початок симуляції спроби експлуатації LegacyHive..."
    
    # Використовуємо cmd /c для забезпечення відображення рядка командного рядка
    # і появи в телеметрії створення процесів.
    Start-Process "cmd.exe" -ArgumentList "/c $targetProcess $fakeArgument"
    
    Write-Host "[+] Симуляційну команду відправлено. Перевірте SIEM для notepad.exe з CreateProcessWithLogonW у командному рядку."
  • Команди очищення:

    # Завершіть будь-які залишкові процеси notepad або cmd, створені симуляцією
    Stop-Process -Name "notepad" -ErrorAction SilentlyContinue
    Stop-Process -Name "cmd" -ErrorAction SilentlyContinue