ClickFix до MaaS: Всередині модульного Windows RAT і його панелі управління
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Netskope Threat Labs спостерігали за кампанією ClickFix, яка доставляє спеціальний RAT для Windows, побудований на Node.js через шкідливі MSI-інсталятори. Завантажуваний файл тримає ключові модулі в пам’яті та використовує потокову передачу gRPC через Tor для командного серверу C2. Помилка в OPSEC викрила протокол адміністрування панелі, що вказує на модель зловмисного ПЗ як послуга з відстеженням гаманця. Постійність налаштовується через значення HKCU Run на рівні користувача.
Розслідування
Дослідники захопили MSI, декодували PowerShell-інструменти завантаження та відстежили динамічне завантаження модулів Node.js. Вони витягнули та розшифрували конфігураційний блок для відновлення адреси C2 .onion. Виявлений файл admin.proto показав функції MaaS, такі як управління кількома операторами та моніторинг гаманців, і аналітики відзначили наявність само-лікуючого наручного програмного засобу плюс використання Tor для анонімізації трафіку.
Зменшення ризику
Блокуйте виконання непідписаних MSI з недовірених джерел та моніторте HKCU…Run на наявність нових, підозрілих записів. Виявляйте PowerShell, що завантажує MSI з доменів, таких як cloud-verificate.com. Повідомляйте про conhost.exe або node.exe, запущені з прихованими аргументами, та про появу tor.exe на кінцевих точках, які його не потребують.
Відповідь
Ізолюйте уражені хости, збирайте пам’ять для аналізу внутрішньопам’яткових модулів та видаліть стійкість HKCU Run. Перегляньте %LOCALAPPDATA%LogicOptimizer на наявність стадійних артефактів та будь-якої запланованої активності tor.exe, потім блокуйте onion-сторінки та пов’язані домени/IP. Полюйте по всьому підприємству на ті ж артефакти інсталятора та ланцюги процесів.
Потік атаки
Виявлення
NodeJS, виконуваний з незвичайного місця (через cmdline)
Переглянути
Можливі точки стійкості [ASEPs – Реєстр/НТУЗЕР вулиця] (через реєстраційний захід)
Переглянути
Завантаження або завантаження через PowerShell (через cmdline)
Переглянути
LOLBAS Конхост (через cmdline)
Переглянути
MsiExec запускається процесом командної оболонки (через cmdline)
Переглянути
Можливі спроби зв’язку з доменами пошуку IP (через dns)
Переглянути
Можливі інструменти мережі Tor (через cmdline)
Переглянути
Виявлення виконання Conhost для запуску Node для скрипта Bootstrap [Створення процесу в Windows]
Переглянути
Виконання шкідливої команди PowerShell для завантаження та встановлення MSI [PowerShell Windows]
Переглянути
Виконання моделювання
Передумова: Перевірка телеметрії та базової лінії попереднього польоту повинна бути пройдена.
Обґрунтування: Цей розділ детально описує точне виконання техніки супротивника (TTP), розробленої для спрацьовування правила виявлення. Команди та розповідь ПОВИННІ прямо відображати ідентифіковані TTP і мають за мету створити саме таку телеметрію, яку очікує логіка виявлення.
-
Опис та команди атаки:
- Мета: Атакуючий хоче запустити шкідливе завантаження Node.js (
bootstrap.js) без підозри. - Метод: Використовуйте підписаний двійковий файл Windows (
conhost.exe) як проксі для запускуnode.exeв безголовому режимі, передаючи початковий сценарій як аргумент. - Кроки:
- Завантажте шкідливий
bootstrap.jsв записувану директорію (наприклад,%TEMP%). - Запустіть
conhost.exeз точним рядком аргументів, який правило очікує. - Команда виконується в контексті поточного користувача, імітуючи легітимне породження процесу.
- Завантажте шкідливий
# 1. Завантажте шкідливу bootstrap.js (змодельовано нешкідливий вміст для тесту) $bootstrapPath = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrapPath -Value "// злісний заповнювач завантаження" # 2. Виконайте conhost.exe для запуску node.exe з потрібними прапорами $conhost = "$env:windirsystem32conhost.exe" $args = '--headless "node.exe" "bootstrap.js"' Start-Process -FilePath $conhost -ArgumentList $args -WorkingDirectory $env:TEMP - Мета: Атакуючий хоче запустити шкідливе завантаження Node.js (
-
Скрипт регресійного тесту:
# ------------------------------------------------- # Регресійний тест: Виклик Bootstrap через Conhost # ------------------------------------------------- # Переконайтесь, що Sysmon працює і веде реєстрацію подій ProcessCreate. # Завантажте dummy-скрипт початкового завантаження $bootstrap = "$env:TEMPbootstrap.js" Set-Content -Path $bootstrap -Value "// тестовий вміст початкового завантаження" # Визначте точну командну лінію, що шукає правило виявлення $conhostPath = "$env:windirsystem32conhost.exe" $cmdLine = '--headless "node.exe" "bootstrap.js"' # Запустіть conhost з шкідливими на вигляд аргументами Start-Process -FilePath $conhostPath -ArgumentList $cmdLine -WorkingDirectory $env:TEMP Write-Host "Симуляція завершена – перевірте SIEM для попередження." -
Команди очищення:
# Зупиніть усі решті процеси node або conhost, запущені тестом Get-Process -Name node, conhost -ErrorAction SilentlyContinue | Stop-Process -Force # Видалити тимчасовий скрипт початкового завантаження Remove-Item -Path "$env:TEMPbootstrap.js" -Force -ErrorAction SilentlyContinue Write-Host "Очистка завершена."