SOC Prime Bias: High

14 Jul 2026 15:26 UTC

Багатоетапна атака LNK використовує блокчейн TON для доставки бекдора Node.js

Author Photo
SOC Prime Team linkedin icon Стежити
Багатоетапна атака LNK використовує блокчейн TON для доставки бекдора Node.js
shield icon

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, створених шкідливим ПЗ.

Потік атаки

Симуляція виконання

Передумова: Попередня перевірка телеметрії та базової лінії повинна бути пройдена.

Обґрунтування: У цьому розділі детально описується точне виконання техніки противника (TTP), розробленої для спрацювання правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати вказані TTP і націлені на генерування саме тієї телеметрії, яку очікують вияви. Абстрактні чи нерелевантні приклади призведуть до помилок в діагностиці.

  • Сценарій атаки та команди: Противник намагається встановити бекдор на систему. Щоб уникнути виявлення, вони використовують файл LNK, який виконує команду PowerShell. Замість зрозумілого URL, вони використовують -band 255 and -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