SOC Prime Bias: High

01 Sep 2026 16:33 UTC

Кампанія TerminalFix створює зворотні тунелі для стійкого доступу

Author Photo
SOC Prime Team linkedin icon Стежити
Кампанія TerminalFix створює зворотні тунелі для стійкого доступу
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Кампанія TerminalFix є варіантом ClickFix, яка використовує фальшиві оверлеї з Cloudflare CAPTCHA для соціальної інженерії користувачів з метою виконання шкідливих PowerShell команд. Ланцюг атаки поєднує завантаження бічних DLL, стеганографічне вилучення корисного навантаження з PNG зображень та розширену розвідку Active Directory. Врешті-решт, кампанія розгортає на замовлення імплантат на базі Python з зворотним тунелем, що надає зловмисникам стійкий проксі-доступ на рівні мережі.

Розслідування

Microsoft Threat Intelligence проаналізувала багатоетапний ланцюг атаки, який зловживає підписаним легітимним LockScreenContentServer.exe бінарним файлом для завантаження бічних DLL. Розслідування показало, як шкідливі корисні навантаження приховані в пікселях PNG і як середовище виконання Python створює зворотний тунель на базі WebSocket. Дослідники також ідентифікували інфраструктуру командування та контролю і техніки розвідки, що використовуються для складання карти внутрішніх мереж.

Минімізація ризиків

Організації мають обмежувати виконання PowerShell через AppLocker або Групову Політику та стежити за LockScreenContentServer.exe виконанням з незвичайних або нестандартних місць. Правила зменшення поверхні атаки (ASR) можуть допомогти блокувати обфусцировані скрипти та несанкціоновані запуски програм. Навчання користувачів для розрізнення фальшивих CAPTCHA є також важливим превентивним заходом.

Відповідь

Якщо виявлено активність TerminalFix, уражені пристрої слід розглядати як потенційні точки повороту в мережі та дослідити на предмет латерального руху. Пріоритет слід надати ротації облікових даних, зокрема для облікових записів адміністратора домену, доступних з компрометованої системи. Команди безпеки також повинні провести судову перевірку на наявність несанкціонованих середовищ виконання Python та підозрілих вихідних зв’язків WebSocket.

Сценарій атаки

Ми все ще оновлюємо цю частину.

Виявлення

Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через registry_event)

Команда SOC Prime
31 серпня 2026

Можливі зразки атак ClickFix в командному рядку (через cmdline)

Команда SOC Prime
31 серпня 2026

Виконання Python зі підозрілих каталогів (через cmdline)

Команда SOC Prime
31 серпня 2026

Виклик підозрілих класів/методів .NET з командного рядка PowerShell (через process_creation)

Команда SOC Prime
31 серпня 2026

Можлива системна інвентаризація (через cmdline)

Команда SOC Prime
31 серпня 2026

Можливе виявлення віддаленої системи або перевірка підключення (через cmdline)

Команда SOC Prime
31 серпня 2026

Виявлення підозрілих доменних довіреностей (через cmdline)

Команда SOC Prime
31 серпня 2026

Виконання Attrib для приховування файлів (через cmdline)

Команда SOC Prime
31 серпня 2026

Можливі прямі завантаження інтерпретатора Python (через cmdline)

Команда SOC Prime
31 серпня 2026

Архів був вилучений у підозрілий каталог за допомогою PowerShell (через powershell)

Команда SOC Prime
31 серпня 2026

IOC (HashSha256) для виявлення: кампанія TerminalFix розгортає зворотний тунель через багатоступінчасте проникнення

SOC Prime AI Правила
31 серпня 2026

Вихідний тунель TLS WebSocket на gitnow.dev [Підключення до мережі Windows]

SOC Prime AI Правила
31 серпня 2026

Виявлення зворотного тунелю TerminalFix та завантаження DLL [Створення процесу Windows]

SOC Prime AI Правила
31 серпня 2026

Завантаження DLL і екстракція стеганографічних корисних навантажень у кампанії TerminalFix [Завантаження зображення Windows]

SOC Prime AI Правила
31 серпня 2026

Виконання кампанії TerminalFix PowerShell і цикл команд [Windows Powershell]

SOC Prime AI Правила
31 серпня 2026

Виконання симуляції

Передумова: телеметрія та базисне попереднє перевірення повинні бути успішно завершені.

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

  • Опис атаки і команди: Супротивник планує встановити стійкий зворотний тунель. Щоб злитися з системними процесами, спочатку він впускає схожий на легітимний бінарний файл, LockScreenContentServer.exe, в директорію. Потім вони використовують завантаження бічних DLL для виконання шкідливого коду. Після цього вони ініціюють тунель на базі Python, використовуючи pythonw.exe (щоб уникнути видимого вікна консолі) і виконують скрипт під назвою client.py. Ця послідовність створена для створення бекдора на рівні мережі, який обходить стандартні обмеження брандмауера через тунелювання WebSocket.

  • Скрипт тестування регресії:

    # Скрипт симуляції: емуляція зворотного тунелю TerminalFix
    # 1. Налаштування середовища
    $targetDir = "C:UsersPublicDownloadsSystemFiles"
    New-Item -Path $targetDir -ItemType Directory -Force
    
    # 2. Створення підставного 'LockScreenContentServer.exe' (Симуляція завантаженого бінарного файлу)
    # В реальній атаці це був би реальний файл PE.
    $dummyExe = Join-Path $targetDir "LockScreenContentServer.exe"
    New-Item -Path $dummyExe -ItemType File -Force
    
    # 3. Створення підставного Python скрипта 'client.py'
    $pythonScript = Join-Path $targetDir "client.py"
    "print('Встановлення тунелю...')" | Out-File -FilePath $pythonScript -Encoding ascii
    
    # 4. Виконання 'шкідливих' процесів для провокування логіки виявлення
    # Тригер частина А: LockScreenContentServer.exe
    Start-Process -FilePath $dummyExe -WindowStyle Hidden
    
    # Тригер частина Б: pythonw.exe з client.py в командному рядку
    # Примітка: ми використовуємо повний шлях до pythonw.exe, як очікується за правилом
    $pythonwPath = "C:WindowsSystem32pythonw.exe" 
    # Якщо pythonw не в System32, ми шукаємо його
    if (-not (Test-Path $pythonwPath)) {
        $pythonwPath = (Get-Command pythonw.exe).Source
    }
    
    Start-Process -FilePath $pythonwPath -ArgumentList $pythonScript -WindowStyle Hidden
  • Команди очищення:

    # Скрипт очищення
    $targetDir = "C:UsersPublicDownloadsSystemFiles"
    if (Test-Path $targetDir) {
        Remove-Item -Path $targetDir -Recurse -Force
    }