MedusaHVNC краде активні сесії Windows через прихований робочий стіл
Detection stack
- AIDR
- Alert
- ETL
- Query
Короткий огляд
MedusaHVNC – це нещодавно виявлений троян для віддаленого доступу (RAT), що поширюється через модель Malware-as-a-Service (MaaS). Він використовує прихований модуль віртуальних мережних обчислень (HVNC) для створення окремої і невидимої настільної сесії Windows. Це дозволяє зловмисникам викрадати активні сесії браузера, включаючи файли cookie та аутентифіковані стани сесій, не повідомляючи жертву.
Розслідування
Дослідники проаналізували зразок MedusaHVNC і виявили п’ятиступеневий ланцюг зараження, який починається з заплутаного JScript-лаунчера. Розслідування показало, що для розшифрування та ін’єкції процесу в легітимну утиліту Character Map Windows використовується AutoIt (charmap.exe). Остаточний шкідливий код покладається на шифрування ChaCha20 і взаємодіє з вбудованим сервером C2 через спеціальний протокол TCP.
Захист
Ефективний захист включає блокування відомої інфраструктури C2 та моніторинг кінцевих точок на нетипові вихідні мережеві підключення. Організації повинні розгорнути засоби захисту від ексфільтрації даних, здатні перевіряти вихідний трафік незалежно від початкового процесу. Моніторинг підозрілих дочірніх процесів або активності ін’єкції у використанні легітимних системних бінарів, таких як charmap.exe також може покращити виявлення.
Відповідь
Якщо виявлено активність MedusaHVNC, команди безпеки повинні негайно ізолювати постраждалу кінцеву точку, щоб припинити зв’язок з сервером C2. Слідчі повинні визначити початковий шлях доставки JScript-лаунчера та перевірити наявність механізмів стійкості у папці автозапуску. Журнали сесій і аутентифікації також повинні бути перевірені на несанкціоновану активність, що відбувається під час вікна компрометації.
Потік атаки
Виявлення
LOLBAS WScript / CScript (через process_creation)
Proof of Value
Підозрілі бінарні файли / скрипти в локації автозапуску (через file_event)
Proof of Value
IOCs (SourceIP) для виявлення: MedusaHVNC: Прихований робочий стіл, що викрадає поточні сесії Windows
Proof of Value
IOCs (DestinationIP) для виявлення: MedusaHVNC: Прихований робочий стіл, що викрадає поточні сесії Windows
Proof of Value
Виявлення зв’язку MedusaHVNC C2 [Мережева підключення Windows]
Proof of Value
Виявлення JScript-лаунчера та інтерпретатора AutoIt у ланцюгу інфікування MedusaHVNC [Процес створення Windows]
Proof of Value
Виконання симуляції
Попередня умова: перевірка телеметрії та базової лінії повинна бути пройдена.
Обґрунтування: у цьому розділі детально описано точне виконання техніки нападника (TTP), призначеної для запуску правила виявлення. Команди та наративи МАЮТЬ безпосередньо відображати ідентифіковані TTPs і мають на меті генерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або нерелевантні приклади призведуть до помилкової діагностики.
-
Наратив атаки та команди: Зловмисник успішно розгорнув MedusaHVNC на робочій станції жертви. Щоб встановити управління та контроль (C2) та розпочати взаємодію з віддаленим робочим столом, зловмисне програмне забезпечення намагається підключитися до свого вбудованого вуха. У цій симуляції ми імітуємо цю поведінку, змушуючи підключення до локального вуха на порту 4444. Це діяння призначене для імітації фази “Phone Home” життєвого циклу MedusaHVNC, генеруючи журнал Sysmon Event ID 3 з
DestinationPort: 4444. -
Скрипт регресійного тесту:
# Скрипт симуляції: емуляція зв'язку MedusaHVNC C2 # Мета: Генерація події мережевого підключення на порту 4444 для запуску правила Sigma. $TargetIP = "127.0.0.1" $TargetPort = 4444 Write-Host "[+] Початок симуляції MedusaHVNC C2..." -ForegroundColor Cyan # Крок 1: Створити локальне вухо для приймання підключення (імітує сервер C2) $Listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, $TargetPort) $Listener.Start() Write-Host "[+] Локальний слухач C2 запущено на $TargetIP:$TargetPort" -ForegroundColor Green try { # Крок 2: Імітувати вихідне підключення зловмисного ПЗ до C2 Write-Host "[+] Імітація вихідного підключення до C2..." -ForegroundColor Yellow $Client = New-Object System.Net.Sockets.TcpClient $Client.Connect($TargetIP, $TargetPort) Write-Host "[!] Підключення встановлено: перевірте SIEM на повідомлення про тривоги." -ForegroundColor Red } catch { Write-Host "[-] Не вдалося підключитися: $($_.Exception.Message)" -ForegroundColor Red } finally { # Очистка підключення if ($Client) { $Client.Close() } $Listener.Stop() Write-Host "[+] По завершення симуляції очистка завершена." -ForegroundColor Cyan } -
Команди очищення:
# Переконайтеся, що не залишилося залишкових процесів або слухачів Stop-Process -Name "powershell" -Force -ErrorAction SilentlyContinue # (Примітка: У реальному середовищі вручну переконайтеся, що порт 4444 закритий) Test-NetConnection -ComputerName 127.0.0.1 -Port 4444