SOC Prime Bias: Високий

24 Jun 2026 19:37 UTC

Виявлено варіант PureRAT у AI Video Player

Author Photo
SOC Prime Team linkedin icon Стежити
Виявлено варіант PureRAT у AI Video Player
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Кампанія з шкідливим програмним забезпеченням використовує підроблений відеозавантажувач у стилі Google Drive для запуску багатоступінчастого ланцюга виконання. Інфекція переходить від завантажувача на основі Python до shell-коду, а потім до захищеної збірки .NET, ідентифікованої як PureRAT. Шкідливе програмне забезпечення використовує потужну заплутування, спеціальне шифрування та автентифіковані WebSocket-з’єднання для управління трафіком командування та контролю.

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

Розслідування проаналізувало виконання, яке починалося з завантажувача байткоду Python. Дослідники спостерігали декодування Base85, розпакування zlib та ін’єкцію shell-коду через VirtualAlloc. Дальший аналіз виявив сильно захищений завантажувач .NET, Ykzrh/smveo-csharp-agent.exe, який використовував віртуалізацію та реконструкцію в режимі виконання для ускладнення аналізу.

Мітигація

Користувачам слід попереджати про небезпеку завантаження файлів з неофіційних або підозрілих відеоліш. Організації повинні контролювати несанкціоноване виконання Python та незвичну поведінку .NET збірок у місцевих каталогах даних додатків. Сильний білий список додатків та моніторинг підозрілих змін у ключах запуску можуть також знизити ризик компрометації.

Відповідь

Якщо цю активність виявлено, негайно ізолюйте уражені кінцеві точки для переривання подальшого трафіку командування та контролю на основі WebSocket. Слідчі повинні виконати судову експертизу пам’яті, щоб захопити дешифрований .NET навантажувач і визначити масштаб інфекції. Журнали мережі також слід переглянути щодо з’єднань з інфраструктурою smveo.com , і будь-які потенційно скомпрометовані облікові дані слід змінити.

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef obfuscation fill:#ffff99 classDef tool fill:#cccccc %% Node definitions act_user_exec[“<b>Action</b> – <b>T1204 User Execution</b><br/>Victim interacts with a lure<br/>disguised as a fake Google Drive<br/>or SMVEO video download.”] class act_user_exec action act_drive_by[“<b>Action</b> – <b>T1189 Drive-by Compromise</b><br/>User downloads malicious file:<br/>DriveVideoSetup-x64-0.1.0.exe.”] class act_drive_by action mal_setup[“<b>Malware</b> – <b>Initial Executable</b><br/>File: DriveVideoSetup-x64-0.1.0.exe<br/>Establishes persistence and<br/>starts deobfuscation chain.”] class mal_setup malware per_registry[“<b>Action</b> – <b>T1547.014 Persistence</b><br/>Modifies registry key:<br/>HKCUSoftwareMicrosoftWindowsCurrentVersionRun”] class per_registry persistence act_deobf[“<b>Action</b> – <b>T1140 Deobfuscate/Decode Files</b><br/>Complex Python stages involving<br/>Base85 decoding, zlib decompression,<br/>and marshal.loads.”] class act_deobf obfuscation tool_donut[“<b>Tool</b> – <b>DonutLoader</b><br/>Mechanism used to execute<br/>shellcode in memory.”] class tool_donut tool mal_ykzrh[“<b>Malware</b> – <b>Ykzrh.exe</b><br/>Highly protected .NET loader<br/>utilizing virtualization.”] class mal_ykzrh malware act_packing[“<b>Action</b> – <b>T1027.002 Software Packing</b><br/>Uses custom bytecode interpreters<br/>and virtualization to hide core logic.”] class act_packing obfuscation mal_purerat[“<b>Malware</b> – <b>PureRAT</b><br/>Core functionality of the attack<br/>hidden via obfuscation.”] class mal_purerat malware act_cert_steal[“<b>Action</b> – <b>T1649 Steal or Forge Authentication Certificates</b><br/>Generates client.crt and client.key<br/>under %LOCALAPPDATA%SMVEO.”] class act_cert_steal action comm_c2[“<b>Action</b> – <b>C2 Communication</b><br/>Authenticated WebSocket communication<br/>to agent.sm-veo.com.”] class comm_c2 action %% Connections act_user_exec –>|leads_to| act_drive_by act_drive_by –>|executes| mal_setup mal_setup –>|performs| per_registry mal_setup –>|initiates| act_deobf act_deobf –>|leads_to| tool_donut tool_donut –>|deploys| mal_ykzrh mal_ykzrh –>|utilizes| act_packing act_packing –>|hides| mal_purerat mal_purerat –>|performs| act_cert_steal act_cert_steal –>|facilitates| comm_c2

Потік атаки

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

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

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

  • Опис атаки та команди: Супротивник успішно розгорнув варіант PureRAT. Для підтримки контролю шкідливе програмне забезпечення встановлює постійний канал командування та контролю (C2). Замість стандартного опитування HTTP воно використовує автентифіковане WebSocket-з’єднання для обходу традиційних веб-проксі, які можуть не перевіряти довгострокові потоки WebSocket. Метою атакуючого є встановлення стабільного, малозатримного тунелю до agent.sm-veo.com на порт 8443. Ця симуляція використовує скрипт PowerShell для імітації цієї мережевої поведінки шляхом встановлення підключення до шкідливого URI.

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

    # Симуляція C2 варіанта PureRAT через WebSocket
    # Мета: Активувати правило виявлення через цільовий домен або URL.
    
    $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws"
    $targetDomain = "agent.sm-veo.com"
    
    Write-Host "[+] Запуск симуляції C2 PureRAT..." -ForegroundColor Cyan
    
    try {
        Write-Host "[+] Спроба встановити підключення WebSocket до $targetUrl"
        # Використання .NET WebSocket клієнта для імітації специфічної поведінки протоколу
        $ws = New-Object System.Net.WebSockets.ClientWebSocket
        $uri = New-Object System.Uri($targetUrl)
        $ct = New-Object System.Threading.CancellationTokenSource
    
        # Ми не потребуємо успішного рукостискання для активації телеметрії мережі,
        # лише спроби підключення до зазначеного місця призначення.
        $task = $ws.ConnectAsync($uri, $ct.Token)
    
        # Коротка пауза, щоб спроба підключення могла згенерувати телеметрію
        Start-Sleep -Seconds 5
        Write-Host "[!] Спроба підключення завершена. Перевірте SIEM на наявність телеметрії." -ForegroundColor Green
    }
    catch {
        Write-Host "[!] Підключення не вдалося (Очікувано, якщо домен перекритий/нереальний), але телеметрія повинна була бути згенерована." -ForegroundColor Yellow
    }
    finally {
        if ($ws) { $ws.Dispose() }
    }
  • Команди очищення:

    # Жоден з постійних файлів або ключів реєстру не змінилося через цей конкретний скрипт симуляції.
    # Якщо була симульована стійкість (T1547.001), скористайтеся наступним:
    # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update'
    Write-Host "[+] Очищення завершено. Ніяких артефактів після мережевої симуляції не залишилося." -ForegroundColor Cyan