Як файл VHDX доставляє Remcos RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Багатостадійна кампания з поширення шкідливого програмного забезпечення використовує небезпечний ZIP-архів, що містить образ диска VHDX, щоб уникнути загальних засобів безпеки. Після монтування VHDX, обфусцирований файл JavaScript запускається і ініціює серію стадій PowerShell через WMI. Кінцева шкідлива програма – Remcos RAT, яка вприскується в легітимний процес Windows, щоб приховати своє виконання.
Розслідування
Дослідник проаналізував шкідливий ZIP-архів та вбудований контейнер VHDX, щоб відновити повний потік атаки. Аналіз виявив складний ланцюг виконання, який використовував створення процесів на основі WMI для маскування відносин “батько-дитина”, поряд з обфускацією рядків через XOR та Base64, а також відбитковим завантажувачем .NET. Інфекційний шлях був успішно відстежений від початкового виконання JavaScript до розгортання кінцевого навантаження Remcos.
Пом’якшення
Організації повинні застосовувати суворі заходи контролю, щоб запобігти монтуванню образів диска VHDX з ненадійних джерел. Інструменти безпеки також повинні відстежувати підозрілу Win32_Process.Create діяльність, викликану скриптовими рушіями, такими як JavaScript або PowerShell. Блокування відомих шкідливих доменів і спостереження за незвичними ключами постійності запуску в реєстрі можуть додатково знизити ризик.
Реакція
Якщо ця діяльність виявлена, негайно ізолюйте уражену кінцеву точку, щоб зупинити зв’язок з командуванням та контролем. Отримайте дамп пам’яті, щоб захопити вприснуте навантаження Remcos та відбитковий завантажувач .NET. Повний судовий огляд повинен потім перевірити наявність шкідливих записів ключів запуску, додаткових файлів VHDX та підозрілої діяльності PowerShell в інших частинах середовища.
Потік Атаки
Детекції
Можливі точки постійності [ASEPs – Software/NTUSER Hive] (через registry_event)
Переглянути
Можливі точки постійності [ASEPs – Software/NTUSER Hive] (через cmdline)
Переглянути
LOLBAS WScript / CScript (через process_creation)
Переглянути
Файл віртуального жорсткого диска був створений (через file_event)
Переглянути
Можливо, був контакт динамічної служби DNS (через dns)
Переглянути
Виявлення завантажувача PowerShell Reflective .Net та ін’єкція в процес [Створення процесу Windows]
Переглянути
Виконання сценарію PowerShell через WMI для уникнення EDR [Windows Powershell]
Переглянути
## Виконання сімуляції
Передумова: Попередня перевірка телеметрії та базового рівня повинна бути успішною.
Мотивування: У цьому розділі детально описується точне виконання техніки супротивника (TTP), спрямоване на тригерування правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати виявлені TTP та прагнути генерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або нерелевантні приклади приведуть до неправильного діагнозу.
-
Розповідь про атаку та команди: Супротивник прагне виконати шкідливе навантаження в пам’яті, щоб уникнути виявлення традиційним антивірусом. Вони використовують сценарій PowerShell, який використовує
[System.Reflection.Assembly]::Load()для завантаження скомпільованої DLL .NET безпосередньо з байтового масиву в поточний процес. Щоб зберегти постійність та уникнути перевірок, вони намагаються створити або взаємодіяти зbackgroundTaskHost.exe, легітимним процесом Windows, щоб приховати свою нитку виконання в стандартному системному фоновому завданні. -
Сценарій тестування регресії:
# Сценарій симуляції: Завантаження відбиткових .NET та взаємодія з процесом # Цей сценарій імітує логіку, захоплену правилом виявлення. # 1. Створіть нефункціональний байтовий масив, що представляє асамблей .NET (дуже спрощено для імітації) $assemblyBytes = [byte[]](0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00) # Імітує заголовок MZ Write-Host "[+] Спроба відбиткового завантаження асамблеї .NET..." -ForegroundColor Cyan try { # Цей специфічний рядок є мішенню для правила виявлення $assembly = [System.Reflection.Assembly]::Load($assemblyBytes) Write-Host "[!] Успіх: Асамбля завантажена в пам'ять (тільки імітація)." -ForegroundColor Green } catch { Write-Host "[-] Завантаження асамблеї не вдалося (очікувано через недійсні нефункціональні байти), але команда була відправлена." -ForegroundColor Yellow } Write-Host "[+] Спроба викликати backgroundTaskHost.exe для активації виявлення..." -ForegroundColor Cyan # Цей специфічний рядок є мішенню для правила виявлення Start-Process "C:WindowsSystem32backgroundTaskHost.exe" -ArgumentList "/test-detection" -
Команди очищення:
# Очищення: завершення запущеного процесу backgroundTaskHost Stop-Process -Name "backgroundTaskHost" -ErrorAction SilentlyContinue Write-Host "[+] Очищення завершено. BackgroundTaskHost завершено." -ForegroundColor Green