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

02 Jun 2026 19:40 UTC

Розкриття інструментарію Gamaredon: GammaPhish та GammaWorm

Author Photo
SOC Prime Team linkedin icon Стежити
Розкриття інструментарію Gamaredon: GammaPhish та GammaWorm
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Група Gamaredon, підтримувана російською державою APT група, продовжує довгострокові операції з шпигунства проти українських державних установ, військових об’єктів та критичної інфраструктури. Її модульний ланцюг інфекцій починається з документа для цілеспрямованого фішингу, використовує помилку обходу шляхів у WinRAR, а потім покладається на VBScript, альтернативні потоки даних та dead-drop резольвери для поширення, збереження та отримання додаткових корисних навантажень. Кампанія також використовує законні сервіси такі як Telegram, Cloudflare і Supabase для активності командування та контролю. Виявлення залишається складним через те, що зловмисники сильно зловживають вбудованою функціональністю Windows та безфайловими методами виконання.

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

Sekoia TDR реконструювала ланцюг вторгнення в січні 2026 року, вивчивши більше ніж 70 артефактів, зібраних з компрометованих систем. Їх аналіз виявив початковий компонент фішингу, GammaPhish, за яким слідував VBScript завантажувач GammaLoad, самопропагуючий черв GammaWorm і PowerShell крадій GammaSteel, який зберігає модулі в реєстрі. Дослідники також задокументували використання GammaWorm альтернативними потоками даних та запланованими завданнями для збереження, а також повторювані мережеві запити до кількох доменів dead-drop резольвера. Розслідування картувало, як кожен компонент підтримував ширший ланцюг інфекції та довгострокову опору.

Пом’якшення

Оскільки шкідливе ПЗ може постійно завантажувати нові корисні навантаження через резольвери dead-drop, найбезпечнішим підходом до усунення часто є повне відновлення системи. Захисні зусилля повинні зосередитись на виявленні підозрілих створення альтернативних потоків даних, модифікацій реєстру RunOnce, запланованих завдань з незвичайними іменами та вихідного трафіку з небраузерних процесів до відомих доменів резольверів. Блокування ідентифікованої інфраструктури командування та контролю і застосування суворих скануючих контролів до вкладень електронної пошти також можуть зменшити імовірність початкового компромісу.

Відповідь

Якщо ця активність виявлена, негайно ізолюйте уражений хост, зберіть волатильні докази та проведіть повну судову експертизу. Видаліть файли, приховані в альтернативних потоках даних, видаліть зловмисний запис реєстру RunOnce та вимкніть будь-які пов’язані заплановані завдання. Відомі домени та IP-адреси резольверів повинні бути заблоковані на межі мережі, а системи виявлення на кінцевих точках повинні бути оновлені для визначення спостережуваних командних ліній та безфайлових шаблонів виконання.

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ddffdd classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes attack_phishing[“<b>Дія</b> – <b>T1566.001 Фішинг із вкладенням</b><br/>Зловмисник надсилає жертвам шкідливий ZIP-файл електронною поштою.”] class attack_phishing action file_zip[“<b>Файл</b> – malicious.zip<br/>Містить .lnk ярлик і .exe дроппер, скомпільований у Rust.”] class file_zip file action_user_exec[“<b>Дія</b> – <b>T1204.001 Виконання користувачем</b><br/>Жертва відкриває .lnk або запускає .exe, запускаючи ланцюг виконання.”] class action_user_exec action file_lnk[“<b>Файл</b> – payload.pdf.lnk<br/>Ярлик із подвійним розширенням та іконкою Edge для маскування.”] class file_lnk file tool_wscript[“<b>Інструмент</b> – wscript.exe<br/>Виконує VBScript-пейлоад.”] class tool_wscript tool file_vbs[“<b>Файл</b> – empty.vbs<br/>Мінімальний VBScript, що запускає PowerShell.”] class file_vbs file action_vbscript[“<b>Дія</b> – <b>T1059.005 Visual Basic</b><br/>VBScript запускається через wscript для старту PowerShell.”] class action_vbscript action action_powershell[“<b>Дія</b> – <b>T1059.001 PowerShell</b><br/>Запускається з обходом ExecutionPolicy та розшифровує наступний етап.”] class action_powershell action file_dat[“<b>Файл</b> – 1.dat<br/>XOR-зашифрований контейнер із RuntimeBroker_update.exe.”] class file_dat file process_runtime[“<b>Процес</b> – RuntimeBroker_update.exe<br/>Розшифрований із 1.dat; завантажує DLL через DLL side-loading.”] class process_runtime process file_dll[“<b>Файл</b> – UnityPlayer.dll<br/>Шкідлива DLL, розміщена в тій самій директорії.”] class file_dll file action_dll_sideload[“<b>Дія</b> – <b>T1546.009 AppCert DLL</b><br/>DLL side-loading забезпечує виконання коду.”] class action_dll_sideload action tool_rustloader[“<b>Інструмент</b> – Rust loader (RUSTCLOAK)<br/>Виділяє пам’ять, записує розшифрований PE AZUREVEIL і виконує через Windows fibers.”] class tool_rustloader tool action_process_injection[“<b>Дія</b> – <b>T1055.002 Ін’єкція процесу</b><br/>PE-ін’єкція через Windows fibers.”] class action_process_injection action file_azureveil[“<b>Файл</b> – AZUREVEIL.exe<br/>Розшифрований payload, що виконується після ін’єкції.”] class file_azureveil file action_discovery[“<b>Дія</b> – <b>T1083 Розвідка файлів</b><br/>Завантажувач перераховує файли та переміщує їх у %TEMP%.”] class action_discovery action action_network_discovery[“<b>Дія</b> – <b>T1016 Розвідка мережі</b><br/>Збір MAC- та IP-адрес.”] class action_network_discovery action action_c2[“<b>Дія</b> – <b>T1102 Вебсервіс</b><br/>Комунікація з Azure Blob Storage через HTTPS.”] class action_c2 action action_dead_drop[“<b>Дія</b> – <b>T1102.003 Односторонній канал</b><br/>Використання одного контейнера для beacon і команд.”] class action_dead_drop action action_encrypted_channel[“<b>Дія</b> – <b>T1573.001 Зашифрований канал</b><br/>Шифрована комунікація RC4 та SM4-CBC.”] class action_encrypted_channel action action_exfil[“<b>Дія</b> – <b>T1567.002 Ексфільтрація через вебсервіс</b><br/>Завантаження зашифрованих даних у Azure Blob.”] class action_exfil action action_persistence[“<b>Дія</b> – <b>T1547.009 Закріплення через ярлик</b><br/>Розміщення LNK у автозавантаженні.”] class action_persistence action %% Connections attack_phishing –>|доставка| file_zip file_zip –>|активація| action_user_exec action_user_exec –>|відкриває| file_lnk file_lnk –>|виконує| tool_wscript tool_wscript –>|запускає| file_vbs file_vbs –>|ініціює| action_vbscript action_vbscript –>|запускає| action_powershell action_powershell –>|розшифровує| file_dat file_dat –>|створює| process_runtime process_runtime –>|завантажує| file_dll file_dll –>|використовується| action_dll_sideload process_runtime –>|ін’єктує| action_process_injection action_process_injection –>|використовує| tool_rustloader tool_rustloader –>|завантажує| file_azureveil file_azureveil –>|виконує| action_discovery action_discovery –>|також| action_network_discovery action_network_discovery –>|надсилає| action_c2 action_c2 –>|використовує| action_dead_drop action_dead_drop –>|залежить від| action_encrypted_channel action_encrypted_channel –>|активує| action_exfil action_exfil –>|може активувати| action_persistence file_lnk –>|постійність| action_persistence

Потік атаки

Виявлення

Можливі точки персистентності [ASEPs – Реєстр NTUSER](через registry_event)

Команда SOC Prime
02 Червня 2026

LOLBAS WScript/CScript (через створення процесу)

Команда SOC Prime
02 Червня 2026

Підозріле обходження захисних засобів LOLBAS MSHTA через виявлення пов’язаних команд (через створення процесу)

Команда SOC Prime
02 Червня 2026

Підозріле використання CURL (через cmdline)

Команда SOC Prime
02 Червня 2026

Підозрілі Бінарні файли / Сценарії в місці автозапуску (через file_event)

Команда SOC Prime
02 Червня 2026

Можливе зловживання Telegram як каналу команд і управління (через dns_query)

Команда SOC Prime
02 Червня 2026

Можливе проникнення даних / Експільтрація / C2 через сторонні сервіси / інструменти (через dns_query)

Команда SOC Prime
02 Червня 2026

Можливість експлуатації CVE-2025-8088 / CVE-2025-6218 (уразливість WinRAR) (через file_event)

Команда SOC Prime
02 Червня 2026

Підозріле спілкування з доменом Trycloudflare (через dns)

Команда SOC Prime
02 Червня 2026

Можливе зловживання доменом Cloudflare Development (через dns)

Команда SOC Prime
02 Червня 2026

IOC-об’єкти (HashMd5) для виявлення: Матрешка ФСБ #1/3 – подарунки Gamaredon, які продовжують розкриватися – GammaPhish і GammaWorm

Правила AI SOC Prime
02 Червня 2026

IOC-об’єкти (SourceIP) для виявлення: Матрешка ФСБ #1/3 – подарунки Gamaredon, які продовжують розкриватися – GammaPhish і GammaWorm

Правила AI SOC Prime
02 Червня 2026

IOC-об’єкти (DestinationIP) для виявлення: Матрешка ФСБ #1/3 – подарунки Gamaredon, які продовжують розкриватися – GammaPhish і GammaWorm

Правила AI SOC Prime
02 Червня 2026

Виявлення використання NTFS ADS GammaWorm для персистентності та розповсюдження [Подія файлу Windows]

Правила AI SOC Prime
02 Червня 2026

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

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

Причина: В цьому розділі детально описано точне виконання техніки супротивника (T1564.007), призначеної для спрацьовування правила виявлення. Команди та розповідь безпосередньо створюють телеметрію, очікувану логікою виявлення.

  • Оповідання про атаку та команди:
    Оператор отримав корисне навантаження GammaWorm (скомпільований PE) і бажає досягти персистентності, залишаючись прихованим від традиційних списків файлів. Зловмисник записує корисне навантаження у NTFS Alternate Data Stream з назвою GTR в директорії профілю користувача. Windows буде трактути ADS як частину нормального файлу (%USERPROFILE%gamma.exe:GTR). Оскільки назва ADS відповідає списку жорстко закодованому в правилі, будь-яка подія створення файлу, що включає “:GTR” під %USERPROFILE% викличе спрацювання виявлення.

    # Крок 1 – Підготуйте підроблений зловмисний бінарний файл (наприклад, однолінійний скрипт PowerShell, закодований в base64) 
    $malicious = [System.Convert]::FromBase64String(
        "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" +
        "AAAAAAAAAAAAAAAwAAAAA4AAAAA")
    $payloadPath = "$env:USERPROFILEgamma.exe"
    
    # Крок 2 – Запишіть бінарний файл у первинний файл (необов'язково; ADS може існувати без первинного файлу)
    [IO.File]::WriteAllBytes($payloadPath, $malicious)
    
    # Крок 3 – Запишіть той же бінарний файл (або інше корисне навантаження) у ADS з назвою GTR
    $adsPath = "$payloadPath:GTR"
    Set-Content -Path $adsPath -Value $malicious -Encoding Byte
  • Скрипт регресійного тестування: (самостійний; може бути виконаний на будь-якому Windows хості з PowerShell 5+)

    # Симуляція персистентності GammaWorm ADS – спрацьовує правило виявлення 
    try {
        # Створіть заповнювач для хост-файлу 
        $hostFile = "$env:USERPROFILEgamma.exe"
        $dummyBytes = [byte[]] (0x4D,0x5A,0x90,0x00) # Мінімальний заголовок PE
        [IO.File]::WriteAllBytes($hostFile, $dummyBytes)
    
        # Запишіть зловмисне навантаження в ADS з назвою "GTR"
        $ads = "$hostFile:GTR"
        Set-Content -Path $ads -Value $dummyBytes -Encoding Byte
    
        Write-Host "ADS 'GTR' успішно створений в $ads"
    } catch {
        Write-Error "Симуляція не вдалася: $_"
    }
  • Команди очищення:

    # Видаліть ADS та хост-файл заповнювач 
    $hostFile = "$env:USERPROFILEgamma.exe"
    $ads = "$hostFile:GTR"
    
    # Видалення ADS (вимагає Sysinternals Streams.exe або PowerShell 5+)
    if (Test-Path $ads) {
        Remove-Item -Path $ads -Force
        Write-Host "Повідомлення ADS GTR видалено."
    }
    
    # Видалення головного файлу
    if (Test-Path $hostFile) {
        Remove-Item -Path $hostFile -Force
        Write-Host "Файл хоста gamma.exe видалено."
    }