Полювання на загрози від Zscaler викриває та реконструює кампанію води Gamayun APT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Звіт охоплює багатоступеневе проникнення, пов’язане з APT-групою Water Gamayun, яка використовує нульовий день вразливості MMC (CVE-2025-26633) для доставки завантаженого навантаження PowerShell у RAR-архіві з подвійним розширенням.
Розслідування
Zscaler реконструював ланцюг атаки від перенаправлення з пошуку Bing до скомпрометованого сайту, завантаження файлу .pdf.rar, експлуатації MSC EvilTwin, поетапних скриптів PowerShell та виконання бекдора ItunesC.exe.
Пом’якшення
Рекомендації включають моніторинг архівів з подвійним розширенням, перевірку перенаправлень, виявлення закодованих команд PowerShell та блокування зловмисних IP і доменів.
Відповідь
При виявленні, сповістити про запуск mmc.exe з PowerShell з -EncodedCommand, ізолювати файл, блокувати зовнішні з’єднання з 103.246.147.17 і активувати процедури реагування на інциденти.
graph TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef file fill:#ffff99 classDef c2 fill:#ffccff %% Визначення вузлів node_initial_access[“<b>Дія</b> – <b>T1659 Інʼєкція контенту</b><br/><b>Опис</b>: Компрометація легітимного сайту для впровадження шкідливих редиректів”] class node_initial_access action node_malicious_domain[“<b>Файл</b> – <b>Назва</b>: Фішинговий домен‑двійник<br/><b>Призначення</b>: Розповсюджує архів з подвійним розширенням”] class node_malicious_domain file node_pdf_rar[“<b>Файл</b> – <b>Назва</b>: brochure.pdf.rar<br/><b>Тип</b>: Архів з подвійним розширенням, замаскований під PDF”] class node_pdf_rar file node_user_execution[“<b>Дія</b> – <b>T1204.001 Шкідливе посилання</b><br/><b>Опис</b>: Жертва переходить за посиланням та завантажує архів”] class node_user_execution action node_exploit_client[“<b>Дія</b> – <b>T1203 Експлуатація клієнтського ПЗ</b><br/><b>Опис</b>: Архів розпаковує .msc, який перехоплює mmc.exe через MSC EvilTwin”] class node_exploit_client action node_cve[“<b>Інструмент</b> – <b>Назва</b>: MSC EvilTwin експлойт (CVE‑2025‑26633)<br/><b>Ціль</b>: mmc.exe”] class node_cve tool node_mmc[“<b>Процес</b> – <b>Назва</b>: mmc.exe”] class node_mmc process node_powershell[“<b>Процес</b> – <b>Назва</b>: powershell.exe”] class node_powershell process node_ps_command[“<b>Дія</b> – <b>T1059.001 PowerShell</b><br/><b>Опис</b>: EncodedCommand з Base64 UTF‑16LE payload”] class node_ps_command action node_obfuscation[“<b>Дія</b> – <b>T1027 Обфускація</b> та <b>T1140 Декодування</b><br/><b>Опис</b>: Подвійне кодування PowerShell‑команди”] class node_obfuscation action node_unrar[“<b>Інструмент</b> – <b>Назва</b>: UnRAR.exe”] class node_unrar tool node_rar_payload[“<b>Файл</b> – <b>Назва</b>: RAR‑payloadи, захищені паролем”] class node_rar_payload file node_hidden_window[“<b>Дія</b> – <b>T1564.003 Приховане вікно</b><br/><b>Опис</b>: .NET‑клас WinHpXN викликає ShowWindow для приховування консолі”] class node_hidden_window action node_itunesc[“<b>Шкідливе ПЗ</b> – <b>Назва</b>: ItunesC.exe<br/><b>Функція</b>: Лоадер і бекдор”] class node_itunesc malware node_c2[“<b>C2</b> – <b>IP</b>: 103.246.147.17<br/><b>Протокол</b>: HTTPS”] class node_c2 c2 %% Зв’язки node_initial_access –>|перенаправляє на| node_malicious_domain node_malicious_domain –>|розповсюджує| node_pdf_rar node_pdf_rar –>|завантажується| node_user_execution node_user_execution –>|запускає| node_exploit_client node_exploit_client –>|скидає| node_cve node_cve –>|перехоплює| node_mmc node_mmc –>|завантажує| node_powershell node_powershell –>|виконує| node_ps_command node_ps_command –>|використовує| node_obfuscation node_ps_command –>|завантажує| node_unrar node_unrar –>|розпаковує| node_rar_payload node_rar_payload –>|призводить до| node_hidden_window node_hidden_window –>|запускає| node_itunesc node_itunesc –>|зв’язується з| node_c2
Потік атаки
Виявлення
Зловмисне виконання MMC та PowerShell групою Water Gamayun APT [Створення процесу Windows]
Переглянути
Виявлення обфускаційних шаблонів PowerShell від Water Gamayun [Powershell Windows]
Переглянути
IOC (DestinationIP) для виявлення: Zscaler Threat Hunting виявляє та реконструює складну атаку APT-групи Water Gamayun
Переглянути
IOC (SourceIP) для виявлення: Zscaler Threat Hunting виявляє та реконструює складну атаку APT-групи Water Gamayun
Переглянути
IOC (HashMd5) для виявлення: Zscaler Threat Hunting виявляє та реконструює складну атаку APT-групи Water Gamayun
Переглянути
Виконання симуляції
Передумова: Телеметрія та перевірка базового рівня повинні бути успішно пройдені.
Обґрунтування: Цей розділ детально викладає точне виконання техніки противника (TTP), призначеної для активації правила виявлення. Команди та оповідь повинні точно відображати ідентифіковані TTP та прагнути до точного генерування очікуваної телеметрії логікою виявлення. Абстрактні або непов’язані приклади призведуть до неправильного діагнозу.
-
Опис атаки та команди:
Зловмисник, використовуючи методологію Water Gamayun, готує зловмисне навантаження PowerShell, яке створює нового локального адміністратора та додає його до групи адміністраторів. Щоб приховати навантаження, зловмисник:- Записує скрипт PowerShell у відкритому тексті.
- Кодує його в UTF‑16LE Base64.
- Вставляє підкреслення (
_) після кожних 4 символів для підвищення ентропії. - Ланцюже дію
|Replace('_','')так, що виконання PowerShell видаляє підкреслення перед декодуванням, що відповідає сигнатурі виявлення.
Остаточна команда виконання:
powershell.exe -EncodedCommand <Base64StringWithUnderscores> | Replace('_','')Ця точна командна лінія відповідає двом умовам правила Sigma (
-EncodedCommandand|Replace('_','')), генеруючи записи Sysmon EventID 1 та Security EventID 4688, які правило позначатиме. -
Скрипт регресійного тесту:
Наведений далі скрипт автоматизує створення обфускаційного навантаження та його виконання. Його можна виконати на будь-якому хості Windows з PowerShell 5.1+.# Імітація обфускації PowerShell стилю Water Gamayun # Крок 1: Визначити зловмисне навантаження PowerShell (додає локального адміністратора) $payload = @' $user = "tempAdmin" $pwd = ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force New-LocalUser -Name $user -Password $pwd -FullName "Temp Admin" -Description "Test admin account" Add-LocalGroupMember -Group "Administrators" -Member $user '@ # Крок 2: Закодувати в UTF-16LE, а потім Base64 $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [Convert]::ToBase64String($bytes) # Крок 3: Вставити підкреслення кожні 8 символів (імітація шаблону групи) $b64Underscored = ($b64 -split '(.{8})' | Where-Object {$_} | ForEach-Object { $_ + '_' }) -join '' # Крок 4: Виконати з необхідним Replace('_','') в конвеєрі powershell.exe -EncodedCommand $b64Underscored | Replace('_','') -
Команди очистки:
Наступні команди видаляють тестового користувача та відновлюють оточення.# Очистка: Видалити тимчасовий обліковий запис адміністратора, створений тестом $user = "tempAdmin" if (Get-LocalUser -Name $user -ErrorAction SilentlyContinue) { Remove-LocalUser -Name $user Write-Host "Deleted test user $user." } else { Write-Host "Test user $user does not exist." }