RoguePlanet використовує вразливість нульового дня Windows через карантинний конвеєр Defender
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
RoguePlanet — це уразливість, яка надає можливість підвищення привілеїв локального користувача на правах адміністратора та використовує процес ізоляції та відновлення у Microsoft Defender на Windows. Комбінуючи NTFS-сигнальні з’єднання, опортуністичні блоки та службу Volume Shadow Copy, користувач з низькими привілеями може втручатися в процес обробки Defender та змусити виконання довільного коду від імені NT AUTHORITYSYSTEM. Експлойт покладається на детерміновану методику насичення В/В для постійної перемоги у гонках під час операцій із ізоляції файлів.
Розслідування
Група дослідників з команди Howler Cell Threat відтворила експлойт на повністю оновленій системі Windows 11 Pro та підтвердила, що експлойт досягає виконання коду на рівні SYSTEM без ушкодження пам’яті або адміністративного доступу. Їх аналіз виявив семиступеневий ланцюг атаки з використанням вбудованого ISO-образу, точок перепрямування NTFS та зловживання WER QueueReporting запланованим завданням. Дослідники також відзначили, що незначні зміни на рівні вихідного коду дозволяють експлойту легко обходити статичне виявлення.
Захист
Наразі немає офіційного виправлення, що усуває основну причину RoguePlanet. Захисники повинні стежити за створенням певних іменованих каналів, пов’язаних з експлойтом, та за незвичайною активністю файлової системи, що зачіпає імена каталогів, схожі на UUID, у %TEMP%. Додаткове посилення повинно зосередитися на обмеженні зловживання з’єднаннями NTFS і виявленні несистемних процесів, що перераховують копії томів тіньових копій.
Реакція
Якщо виявлено активність, пов’язану з RoguePlanet, команди безпеки повинні ізолювати постраждалий хост і розслідувати будь-які процеси, які запускають conhost.exe від батьківських процесів з інтеграцією SYSTEM у користувацькі сесії. Аналітики також повинні шукати wermgr.exe з неочікуваних шляхів і перевіряти %TEMP% структуру каталогу. Розгляд журналів Планувальника завдань щодо підозрілих запусків RP_ завдання також є важливим. завдання також є важливим.
Граф TB
%% Визначення класів
classDef action fill:#99ccff
classDef tool fill:#cccccc
classDef process fill:#ccffcc
classDef malware fill:#ff9999
classDef technique fill:#e1ccff
%% Визначення вузлів
%% Крок 1: Підготовка
prep_iso[“Дія: Витяг вбудованого ISO
Опис: Оркестратор витягує ISO для створення віртуального диска лише для читання
Ціль: структура каталогу %TEMP%”]
class prep_iso action
%% Крок 2: Доставка навантаження
payload_ads[“Дія – Атрибути файлів NTFS: Альтернативні потоки даних
Опис: Запис тестового файлу EICAR у прихований ADS з назвою :WDFOO
Ціль: Уникнення стандартних обмежень файлів під час доставки”]
class payload_ads technique
%% Крок 3: Стан гонки
race_condition[“Дія – Відмова у обслуговуванні кінцевої точки: Погіршення захисту
Опис: Використання підсистеми В/В Poseidon для створення високочастотної активності диска
Механізм: Насичення В/В та опортуністичні блокування для призупинення Defender”]
class race_condition technique
%% Крок 4: Викрадення потоку виконання
hijack_junction[“Дія – Застосунок Office: Створення або зміна реєстру/файлів
Опис: Виконання обміну з’єднаннями з використанням точок перепрямування NTFS
Ціль: Перенаправлення законного шляху wermgr.exe на директорію атакуючого”]
class hijack_junction technique
overwrite_artifact[“Дія: Перезапис артефакту, що належить SYSTEM
Опис: Замінює ізольований артефакт шкідливим навантаженням, зберігаючи метадані SYSTEM”]
class overwrite_artifact action
%% Крок 5: Підвищення привілеїв
task_trigger[“Дія – Заплановане завдання/Робота: Заплановане завдання
Опис: Використання COM-інтерфейсу Планувальника завдань для запуску завдання QueueReporting”]
class task_trigger technique
shell_escalation[“Процес: конхост.exe оболонка
Рівень привілеїв: NT AUTHORITYSYSTEM
Опис: Остаточне виконання перенаправленого навантаження через викрадене завдання”]
class shell_escalation process
%% З’єднання
%% Потік від підготовки до навантаження
prep_iso –>|фасилітує| payload_ads
%% Потік від навантаження до стану гонки
payload_ads –>|запускає| race_condition
%% Потік від стану гонки до викрадення
race_condition –>|дозволяє| hijack_junction
%% Потік від викрадення до перезапису
hijack_junction –>|призводить до| overwrite_artifact
%% Потік від перезапису до запуску завдання
overwrite_artifact –>|готує до| task_trigger
%% Потік від запуску завдання до фінальної оболонки
task_trigger –>|виконує| shell_escalation
Потік атаки
Детекції
Підозрілий процес під NT AUTHORITY (через створення процесу)
Перегляд
Образ оптичного диска VHDMP був змонтований (через VHDMP)
Перегляд
Можлива поведінка експлуатації RoguePlanet (через подію файлу)
Перегляд
Можлива поведінка експлуатації RoguePlanet (через створений канал)
Перегляд
Аномальний доступ NtQueryDirectoryObject до тіньових копій [Windows Sysmon]
Перегляд
Виявлення артефактів експлойту RoguePlanet та патернів поведінки [Події файлів Windows]
Перегляд
Аномалія трубопроводу RoguePlanet та процесу з інтеграцією SYSTEM [Створення процесу Windows]
Перегляд
Виконання симуляції
Передумова: Перевірка готовності база-стан даних та телеметрії має бути успішною.
Обґрунтування: У цьому розділі наведено точне виконання техніки противника (TTP), призначеної для запуску правила виявлення. Команди та наративи МАЮТЬ безпосередньо відображати виявлені TTP й націлюватися на точну телеметрію, очікувану логікою виявлення. Абстрактні або непричетні приклади призведуть до неправильної діагностики.
-
Опис атаки та команди: Противник експлуатує уразливість у запущеній службі Windows для досягнення виконання коду на рівні SYSTEM. Щоб полегшити зв’язок між експлуатованою службою і новим вкладеним потоком, противник створює іменований канал з назвою
.pipeRoguePlanet. Після успішного підвищення прівілегій, навантаження зловмисника змушуєservices.exeзапуститиconhost.exeщоб забезпечити інтерактивне середовище для подальшого виконання команд. Цей ланцюг спроектований, щоб імітувати поведінку ланцюга експлойту RoguePlanet. -
Сценарій регресійного тестування:
# Імітація іменованого каналу і аномалії процесу RoguePlanet # ПРИМІТКА: Цей скрипт потребує адміністративних привілеїв для імітації поведінки, схожої на службу Write-Host "[+] Розпочинаємо імітацію RoguePlanet..." -ForegroundColor Cyan # 1. Імітація створення іменованого каналу (відповідає вибору каналів) # Використовуємо PowerShell для створення іменованого каналу, що імітує цільовий індикатор $pipeName = "RoguePlanet" $pipe = New-Object System.IO.Pipes.NamedPipeServerStream($pipeName, [System.IO.Pipes.PipeDirection]::InOut) Write-Host "[+] Іменований канал \.pipe$pipeName створено." -ForegroundColor Green # 2. Імітація спауну аномального процесу (відповідає вибору conhost і вибору батьківського процесу) # У реальному експлойті services.exe був би батьківським процесом. # Оскільки ми не можемо легко 'стати' services.exe без експлойту ядра, # ми імітуємо телеметрію, запускаючи подію створення процесу, що # імітує конкретне співвідношення батьківських і дочірніх процесів, яке очікують в логіці правила. Write-Host "[+] Імітація спауну conhost.exe від services.exe..." -ForegroundColor Cyan # Ми використовуємо трюк для імітації телеметрії: створення процесу, який SIEM/Sysmon # зафіксує з цільовим батькия, якби ми працювали у контрольованому лабораторному середовищі. # Для цілей цього тесту виявлення ми виконаємо команду, яка # націлена на конкретні критерії образу/образу батька. # Примітка: У реальному світі для перевірки дослідник використав би інструмент # 'ProcMon' або власний драйвер для спуфінга ідентифікатора батьківського процесу (PPID) # services.exe, щоб переконатися, що правило працює точно. Start-Process "conhost.exe" -ArgumentList "/c echo Simulation Complete" -WindowStyle Hidden Write-Host "[+] Команди імітації відправлені. Перевірте SIEM на наявність сповіщень." -ForegroundColor Yellow # Утримуйте канал відкритим ненадовго, щоб гарантувати фіксацію телеметрії Start-Sleep -Seconds 5 $pipe.Dispose() -
Команди очищення:
# Очищення: Закрийте всі залишкові канали та припиніть усі імітовані процеси Get-Process conhost | Stop-Process -Force -ErrorAction SilentlyContinue Write-Host "[+] Очищення завершено." -ForegroundColor Green