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

15 May 2026 13:51 UTC

FrostyNeighbor: Свіжі Шахрайства та Цифрові Загрози

Author Photo
SOC Prime Team linkedin icon Стежити
FrostyNeighbor: Свіжі Шахрайства та Цифрові Загрози
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

ESET повідомляє, що група APT FrostyNeighbor, також відома як Ghostwriter, відновила атаки на українські урядові організації, використовуючи спір-фішинг PDF-файли, які доставляють завантажувач на основі JavaScript, відомий як PicassoLoader, який зрештою розгортає маяк Cobalt Strike. Кампанія покладається на гео-базовану валідацію, збереження за допомогою запланованих завдань та різні методи скидання файлів для зменшення видимості та уникнення виявлення. Її інфраструктура розташована за Cloudflare і використовує декілька needbinding.icu доменів.

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

Дослідники реконструювали повний ланцюг атаки, починаючи з зловмисного PDF-приманки, продовжуючи через JavaScript-дропер і PicassoLoader-завантажувач, та закінчуючи доставкою корисного навантаження Cobalt Strike. Вони вилучили показники, включаючи назви файлів, зміни реєстру та командно-контрольні URLs, після чого пов’язали їх з відомою тактикою FrostyNeighbor. У звіті також підкреслюється експлуатація CVE-2023-38831 у WinRAR та CVE-2024-42009 у Roundcube.

Зменшення ризиків

Організації повинні блокувати підозрілі типи вкладень, запроваджувати суворий контроль за виконанням макросів та скриптів, моніторити створення запланованих завдань невідомими двійковими файлами та обмежувати вихідний HTTPS-трафік до відомих зловмисних доменів. Зазначені вразливості повинні бути виправлені негайно, а обмеження найменших привілеїв слід застосовувати до використання rundll32.exe .

Відповідь

Якщо виявлено які-небудь пов’язані показники, негайно ізолюйте уражену систему, зберіть судово-медичні артефакти та проведіть пошук як для маяка Cobalt Strike, так і для компонентів PicassoLoader. Скиньте будь-які відкриті облікові дані та перегляньте заплановані завдання та записи ключів запуску на свідчення постійності.

"граф TB %% Визначення класів classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef file fill:#c2f0c2 classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Вузли – Дії attack_initial_access["<b>Дія</b> – <b>T1566.001 Фішинг: Вкладення для спір-фішингу</b><br/>Зловмисний електронний лист PDF із посиланням на архів RAR."] class attack_initial_access action action_user_execution["<b>Дія</b> – <b>T1204.002 Виконання користувачем</b><br/>Жертва відкриває PDF, який запускає JavaScript-дропер."] class action_user_execution action %% Вузли – Файли file_malicious_pdf["<b>Файл</b> – <b>Назва</b>: malicious.pdf<br/>Містить JavaScript-дропер."] class file_malicious_pdf file file_rar["<b>Файл</b> – <b>Назва</b>: payload.rar<br/>Доставлено через посилання в PDF."] class file_rar file file_scheduled_xml["<b>Файл</b> – <b>Назва</b>: scheduled_task.xml<br/>XML, використаний для реєстрації запланованого завдання."] class file_scheduled_xml file file_reg["<b>Файл</b> – <b>Назва</b>: persistence.reg<br/>Файл реєстру, що створює ключ запуску.""" class file_reg file file_lnk["<b>Файл</b> – <b>Назва</b>: launcher.lnk<br/>Ярлик, розміщений у папці запуску.""" class file_lnk file %% Вузли – Шкідливе програмне забезпечення / Інструменти malware_javascript_dropper["<b>Шкідливе програмне забезпечення</b> – <b>Назва</b>: JavaScript Dropper<br/>Виконує скрипти, кодування base64, та вбудовує корисні навантаження другого етапу."] class malware_javascript_dropper malware tool_picasso_loader["<b>Інструмент</b> – <b>Назва</b>: PicassoLoader<br/>Збирає системну інформацію, список процесів та дані про жертву."] class tool_picasso_loader tool malware_cobalt_strike["<b>Шкідливе програмне забезпечення</b> – <b>Назва</b>: Cobalt Strike Beacon<br/>Надає функції віддаленого управління.""" class malware_cobalt_strike malware %% Вузли – Техніки technique_obfuscation["<b>Техніка</b> – <b>T1027 Завуальовані файли або інформація</b><br/>Корисні навантаження закодовані base64 для уникнення виявлення."] class technique_obfuscation technique technique_embedded_payload["<b>Техніка</b> – <b>T1027.009 Вбудовані корисні навантаження</b><br/>Завантажувач і маяк приховані всередині JavaScript."] class technique_embedded_payload technique technique_gather_identity["<b>Техніка</b> – <b>T1589 Збір інформації про ідентичність жертви</b><br/>Збирає ім’я користувача, ім’я комп'ютера, версію ОС та час завантаження."] class technique_gather_identity technique technique_system_info["<b>Техніка</b> – <b>T1082 Виявлення системної інформації</b><br/>Збирає детальні специфікації системи."] class technique_system_info technique technique_process_discovery["<b>Техніка</b> – <b>T1057 Виявлення процесів</b><br/>Перераховує запущені процеси на хості."] class technique_process_discovery technique technique_c2_https["<b>Техніка</b> – <b>T1071.001 Протокол прикладного рівня: Веб-протоколи</b><br/>Зв’язується з C2 через HTTPS POST.""" class technique_c2_https technique technique_scheduled_task["<b>Техніка</b> – <b>T1053.005 Заплановане завдання/Робота</b><br/>Створює XML для запланованого завдання для забезпечення постійності.""" class technique_scheduled_task technique technique_run_key["<b>Техніка</b> – <b>T1060 Ключі запуску реєстру / Папка запуску</b><br/>Додає ключ запуску, що вказує на зловмисний LNK.""" class technique_run_key technique technique_exfiltration["<b>Техніка</b> – <b>T1041 Витік через C2 канал</b><br/>Передає зібрані дані через той самий HTTPS канал.""" class technique_exfiltration technique %% Зв’язки – Потік атаки attack_initial_access –>|доставляє| file_malicious_pdf file_malicious_pdf –>|відкритий| action_user_execution action_user_execution –>|виконує| malware_javascript_dropper malware_javascript_dropper –>|використовує| technique_obfuscation malware_javascript_dropper –>|містить| technique_embedded_payload technique_embedded_payload –>|скидає| tool_picasso_loader tool_picasso_loader –>|збирає| technique_system_info tool_picasso_loader –>|збирає| technique_process_discovery tool_picasso_loader –>|збирає| technique_gather_identity tool_picasso_loader –>|контактує| technique_c2_https technique_c2_https –>|доставляє| malware_cobalt_strike malware_cobalt_strike –>|встановлює| technique_scheduled_task technique_scheduled_task –>|створює| file_scheduled_xml malware_cobalt_strike –>|встановлює| technique_run_key technique_run_key –>|створює| file_reg file_reg –>|додає| file_lnk technique_c2_https –>|вижимає через| technique_exfiltration "

Атака потоку

Імітаційне виконання

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

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

  • Нарратив атаки і команди:

    Зловмисник отримав плацдарм на хості жертви і хоче розгорнути маяк Cobalt Strike, залишаючись невидимим. Вони:

    1. Копіювати використання rundll32.exe до нестандартного місця розташування (C:ProgramDataTemprundll32.exe) щоб уникнути простих алертів білого списку.
    2. Скидання зловмисного DLL (ViberPC.dll) в %ProgramData%. Ця DLL містить завантажене навантаження Cobalt Strike.
    3. Виконання скопійованого використання rundll32.exe за допомогою командного рядка, що завантажує зловмисну DLL (%ProgramData%ViberPC.dll).
    4. Кидають два файли JavaScript (53_7.03.2026_R.js and Update.js) які містять JScript, що контактує з сервером C2 і завершує установку маяка.
    5. Запускають файли JavaScript використовуючи cscript.exe, спричиняючи створення процесів, чий Образ закінчується з .js і чий КоманднийРядок містить точні назви файлів.

    Ці кроки генерують точні події створення процесів Sysmon, поєднані з вибором1, вибором2, та вибором3 в правилі Sigma.

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

    # Імітація розгортання Cobalt Strike FrostyNeighbor
    # -------------------------------------------------
    # 1. Підготувати шляхи
    $tempDir = "$env:ProgramDataTemp"
    $rundllCopy = Join-Path $tempDir "rundll32.exe"
    $malDll    = "$env:ProgramDataViberPC.dll"
    $js1       = "$env:ProgramData53_7.03.2026_R.js"
    $js2       = "$env:ProgramDataUpdate.js"
    
    # 2. Забезпечити існування тимчасового каталогу
    New-Item -Path $tempDir -ItemType Directory -Force | Out-Null
    
    # 3. Копіювати rundll32.exe до нетипового місця
    Copy-Item -Path "$env:SystemRootSystem32rundll32.exe" -Destination $rundllCopy -Force
    
    # 4. Створити фіктивну зловмисну DLL (в реальній атаці це був би корисний вантаж)
    $dummyDll = [IO.File]::ReadAllBytes("$env:SystemRootSystem32driversetchosts") # бінарний файл-заповнювач
    [IO.File]::WriteAllBytes($malDll, $dummyDll)
    
    # 5. Виконання скопійованого rundll32 з зловмисною DLL
    Start-Process -FilePath $rundllCopy -ArgumentList "`"$malDll`"" -WindowStyle Hidden
    
    # 6. Скидання корисних навантажень JavaScript
    $jsContent = @"
    // Простий JScript, що звертається до кінцевої точки C2 (симульовано)
    var xhr = new ActiveXObject("MSXML2.XMLHTTP");
    xhr.open("GET", "http://127.0.0.1:8080/beacon", false);
    xhr.send();
    "@
    
    Set-Content -Path $js1 -Value $jsContent -Encoding ASCII
    Set-Content -Path $js2 -Value $jsContent -Encoding ASCII
    
    # 7. Виконання файлів JavaScript через cscript (це створює процеси з образом .js)
    Start-Process -FilePath "cscript.exe" -ArgumentList "//NoLogo `"$js1`"" -WindowStyle Hidden
    Start-Process -FilePath "cscript.exe" -ArgumentList "//NoLogo `"$js2`"" -WindowStyle Hidden
    
    # 8. Пауза для дозволу поглинання SIEM
    Start-Sleep -Seconds 15
  • Команди очищення:

    # Очищення після імітації
    $paths = @(
        "$env:ProgramDataViberPC.dll",
        "$env:ProgramData53_7.03.2026_R.js",
        "$env:ProgramDataUpdate.js",
        "$env:ProgramDataTemprundll32.exe"
    )
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item -Path $p -Force }
    }
    # При бажанні зупинити залишені процеси cscript, запущені тестом
    Get-Process -Name cscript -ErrorAction SilentlyContinue | Stop-Process -Force