LegacyHive: Помилка служби профілів користувачів Windows, яка завантажує реєстровий вулик іншого користувача
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.
Хід атаки
Виявлення
Можлива експлуатація LegacyHive (через реєстрову подію)
Перегляд
Можлива експлуатація LegacyHive (через подію файлу)
Перегляд
Можлива експлуатація LegacyHive (через командний рядок)
Перегляд
Ймовірне використання Windows Hacktools [Частина 3] (через подію файлу)
Перегляд
Ймовірне використання Windows Hacktools [Частина 3] (через командний рядок)
Перегляд
Виявлення атаки підвищення привілеїв LegacyHive [Подія реєстру Windows]
Перегляд
Виявлення спроби експлуатації LegacyHive через CreateProcessWithLogonW та призупинений Блокнот [Створення процесу Windows]
Перегляд
Виконавче резюме
- Ідентифікатор тест-кейсу: 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. Інструкції з налаштування телеметрії:
-
- Переконайтеся, що “Аудит створення процесів” увімкнено через Політику групи (Конфігурація комп’ютера > Налаштування Windows > Налаштування безпеки > Конфігурація розширеної політики аудиту > Детальне відстеження).
-
- Переконайтеся, що “Включити командний рядок у події створення процесу” увімкнено (через Реєстр:
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemAuditProcessCreationIncludeCmdLine).
- Переконайтеся, що “Включити командний рядок у події створення процесу” увімкнено (через Реєстр:
-
- Встановіть Sysmon і переконайтеся, що подія ID 1 (Створення процесу) збирається.
-
-
2. Валідація інгестації та базової лінії:
-
Дія (Бенінгова телеметрія): Запустіть стандартний екземпляр Блокноту, щоб переконатися, що логування створення процесу функціональне без запуску виявлення експлуатації.
Start-Process "notepad.exe" -
Запит валідації (Інгестація):
DeviceProcessEvents | where FileName =~ "notepad.exe" | where ProcessCommandLine !contains "CreateProcessWithLogonW"
-
Виконання симуляції
Попередня умова: Телеметрія та перевірка базової лінії перед польотом повинна пройти.
Обґрунтування: У цьому розділі детально описується точне виконання техніки супротивника (TTP), призначеної для того, щоб викликати правила виявлення. Команди та наративи повинні безпосередньо відображати вказані ТТP і мати на меті створення саме тієї телеметрії, яку очікує логіка виявлення. Абстрактні або невідповідні приклади призведуть до діагностичних помилок.
-
Наратив атаки та команди: Зловмисник має намір експлуатувати вразливість LegacyHive для підвищення привілеїв до рівня SYSTEM. Для цього він використовує скрипт, який викликає
CreateProcessWithLogonWWindows 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