Багатоетапна атака LNK використовує блокчейн TON для доставки бекдора Node.js
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Складна багатоступенева атака використовує шкідливі файли LNK, доставлені через фішинг, для розгортання бекдора на основі Node.js. Шкідливе програмне забезпечення залежить від техніки EtherHiding, запитуючи блокчейн TON для отримання його командно-контрольних адрес, що спрощує оновлення інфраструктури для операторів. Воно також використовує розвинені методи ухилення, включаючи інтерпретатор віртуальної машини з власним байткодом та сильно заплутані скрипти PowerShell.
Розслідування
Команда LevelBlue Managed Threat Research виявила кампанію через сповіщення про безпеку, пов’язані з підозрілими ZIP-архівами та файлами LNK. Аналітики дешифрували команди PowerShell, які використовували побітову та арифметичну логіку для реконструкції шкідливих URL. Вони також дослідили спеціальний JavaScript VM-інтерпретатор, використаний для запуску зашифрованого байткоду, і відстежили отримання командно-контрольних запитів до транзакцій у блокчейні TON.
Пом’якшення
Організації повинні обмежити виконання файлів LNK з ненадійних джерел та моніторити підозрілу поведінку PowerShell, особливо команди, які включають побітову логіку або обчислення з великими числами. Сильна фільтрація електронної пошти повинна використовуватися для блокування шкідливих посилань, і захисники повинні спостерігати за несанкціонованими інсталяціями або виконаннями Node.js. Обмеження доступу до блокчейн-API для незвичних процесів також може перервати отримання командно-контрольних запитів.
Відповідь
Якщо така активність виявлена, ізолюйте уражені кінцеві точки та негайно завершіть підозрілі node.exe або процеси PowerShell. Виконайте аналіз пам’яті для відновлення дешифрованого байткоду JavaScript та ідентифікації конкретних командно-контрольних доменів, що запитуються. Перегляньте ключі реєстру Run для несанкціонованого збереження, і виконайте аналіз виключень Windows Defender, створених шкідливим ПЗ.
Потік атаки
Виявлення
Можливі точки збереження [ASEPs – Software/NTUSER Hive] (через registry_event)
Переглянути
Виконання файлу PowerShell у підозрілому каталозі з використанням політики обходу виконання (через cmdline)
Переглянути
Виконання бінарного файлу NodeJS з нетипового розташування (через cmdline)
Переглянути
Виклик підозрілих методів .NET з PowerShell (через powershell)
Переглянути
Підозрілі зміни налаштувань Windows Defender (через powershell)
Переглянути
Ймовірне завантаження NodeJs підозрілим процесом (через dns_query)
Переглянути
Заплутане виконання PowerShell і Node.js через файл LNK [Створення процесу в Windows]
Переглянути
Симуляція виконання
Передумова: Попередня перевірка телеметрії та базової лінії повинна бути пройдена.
Обґрунтування: У цьому розділі детально описується точне виконання техніки противника (TTP), розробленої для спрацювання правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати вказані TTP і націлені на генерування саме тієї телеметрії, яку очікують вияви. Абстрактні чи нерелевантні приклади призведуть до помилок в діагностиці.
-
Сценарій атаки та команди: Противник намагається встановити бекдор на систему. Щоб уникнути виявлення, вони використовують файл LNK, який виконує команду PowerShell. Замість зрозумілого URL, вони використовують
-band 255and-shr 8для маніпуляції великими значеннями цілих чисел, які при обробці реконструюють URL, що вказує на шкідливий навантажувач. Після того, як навантажувач вилучено або інсценовано, процес PowerShell розпочинаєnode.exeдля виконання бекдору на основі JavaScript, зливаючись з законною діяльністю розробника на машині. -
Сценарій регресійного тестування:
# Симуляція ланцюга виконання Obfuscated PowerShell -> Node.js # Цей скрипт імітує спеціальні аргументи командного рядка, необхідні для правила виявлення. $jsPayload = "console.log('C2 Connection Established');" # Крок 1: Симуляція етапу заплутування PowerShell (як це буде виглядати в командному рядку процесу) # У реальній атаці це була б команда, що запускається файлом LNK. $simulatedPSCommand = "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -band 255 -shr 8 -Command `"`$url = [Convert]::ToString([bigint]123456789); iwr `$url | iex`"" # Крок 2: Симуляція наступного виконання Node.js як частини того ж ланцюга # Ми використовуємо Start-Process, щоб імітувати батьківські-дочірні відносини Start-Process "powershell.exe" -ArgumentList "-NoProfile -Command `"$simulatedPSCommand; node.exe $jsPayload`"" -
Команди очищення:
# Постійні файли цим симулятором не створювалися, # але ми гарантуємо, що будь-які запущені node-процеси завершуються. Stop-Process -Name "node" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue