Як файл 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 в інших частинах середовища.
graph TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef connection fill:#f9f9f9 %% Початковий доступ та виконання action_phishing[“<b>Дія</b> – <b>T1566.001 Фішинг: вкладення зі списом фішингу</b><br/>Опис: Шкідливий ZIP-архів<br/>доставляється через електронну пошту.”] class action_phishing action action_user_exec[“<b>Дія</b> – <b>T1204.002 Виконання користувачем: шкідливий файл</b><br/>Опис: Користувач запускає<br/>шкідливий ZIP-файл.”] class action_user_exec action tool_vhdx[“<b>Інструмент</b> – <b>Назва</b>: VHDX-файл<br/>Опис: Контейнер шкідливого ПЗ, який використовується<br/>для приховування корисного навантаження через Escape to Host T1611.”] class tool_vhdx tool %% Обфускація та скрипти file_js[“<b>Файл</b>: Partnerschaft_fur_neue_Angebotsanfrage.js<br/><b>Опис</b>: Шкідливий JavaScript-файл, який використовує<br/>обфускацію команд T1027.010 через забруднення рядків<br/>та XOR-дешифрування.”] class file_js tool action_wmi[“<b>Дія</b>: PowerShell через WMI<br/><b>Опис</b>: Запускає PowerShell-скрипт через WMI<br/>для обходу моніторингу зв’язків між процесами.”] class action_wmi action %% Передача та етапи шкідливого ПЗ action_ingress_1[“<b>Дія</b> – <b>T1105 Передача інструментів входу</b><br/><b>Опис</b>: PowerShell-скрипт завантажує<br/>файл другого етапу.”] class action_ingress_1 action file_dsp[“<b>Файл</b>: Exoticisms121.dsp<br/><b>Опис</b>: Файл другого етапу,<br/>збережений у %APPDATA%.”] class file_dsp tool tool_loader[“<b>Інструмент</b>: Reflective .NET Loader<br/><b>Опис</b>: Виконує shellcode<br/>з файлу другого етапу.”] class tool_loader tool action_ingress_2[“<b>Дія</b> – <b>T1105 Передача інструментів входу</b><br/><b>Опис</b>: Shellcode отримує<br/>фінальне корисне навантаження Remcos RAT.”] class action_ingress_2 action malware_remcos[“<b>Шкідливе ПЗ</b>: Remcos RAT<br/>Опис: Фінальне корисне навантаження,<br/>підготовлене для зв’язку Command and Control TA0011.”] class malware_remcos malware %% Процес та C2 process_bg_task[“<b>Процес</b>: backgroundTaskHost.exe<br/>Опис: Цільовий процес<br/>для ін’єкції шкідливого ПЗ.”] class process_bg_task process c2_server[“<b>C2-сервер</b>: animal342.duckdns.org:53562<br/>Опис: Віддалений сервер,<br/>який використовується для зв’язку Command and Control.”] class c2_server tool %% Закріплення action_persistence[“<b>Дія</b> – <b>T1547.001 Автозапуск під час завантаження або входу: ключі Registry Run / папка Startup</b><br/><b>Опис</b>: Використовує cmd.exe для створення<br/>ключів автозапуску в реєстрі для PowerShell-лоадера.”] class action_persistence action %% З’єднання action_phishing –>|призводить_до| action_user_exec action_user_exec –>|розкриває| tool_vhdx tool_vhdx –>|містить| file_js file_js –>|виконується_через_WMI| action_wmi action_wmi –>|виконує| action_ingress_1 action_ingress_1 –>|завантажує| file_dsp file_dsp –>|обробляється_через| tool_loader tool_loader –>|виконує| action_ingress_2 action_ingress_2 –>|отримує| malware_remcos malware_remcos –>|впроваджується_у| process_bg_task malware_remcos –>|зв’язується_з| c2_server malware_remcos –>|забезпечує| action_persistence
Потік Атаки
Детекції
Можливі точки постійності [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