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

22 May 2026 06:34 UTC

Стеґанографічні таємниці: Шкідливе ПЗ у всіх на очах

Author Photo
SOC Prime Team linkedin icon Стежити
Стеґанографічні таємниці: Шкідливе ПЗ у всіх на очах
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Зловмисники все частіше зловживають службами зберігання зображень та обміну файлами для доставки шкідливих завантажень, прихованих у безпечних на вигляд файлах PNG та JPEG. Ці зображення містять DLL з кодуванням Base64, які витягуються дропером на основі JavaScript та завантажуються безпосередньо в пам’ять для запуску шкідливого ПЗ для віддаленого доступу, такого як Remcos RAT. Завдяки уникненню очевидних артефактів на диску та покладанню на безфайлове виконання ця техніка може обійти багато традиційних засобів захисту кінцевих точок. Кампанії часто використовують теми, пов’язані з фінансами, і націлені на жертв через персоналізовані фішингові електронні листи.

Розслідування

Cofense проаналізувала групу фішингових листів, побудованих навколо фальшивих документів замовлення на придбання, які доставили дропер на основі JavaScript. Цей дропер отримав стеганографічне зображення з підроблених доменів, декодував DLL завантажувача .NET з кодуванням Base64 і ввів Remcos RAT у законний процес. Статистика кампанії показала, що 27% спостережуваних атак доставили Remcos RAT, тоді як 21% доставили Agent Tesla та 18% доставили XWorm RAT. У звіті також було визначено сильно зловживані платформи хостингу, в тому числі uploaddeimagens.com.br and archive.org.

Мітигація

Організації повинні посилити сканування вкладень електронної пошти та заблокувати виконання недовірених файлів JavaScript. Моніторинг вихідного трафіку на відомі платформи для розміщення зображень може допомогти виявити етап доставки завантажень. Поведінкова аналітика також повинна використовуватися для виявлення ін’єкцій в процеси та завантаження в пам’ять тільки підписаних DLL. Захисники додатково повинні стежити за розташуваннями автозапуску в реєстрі та запланованими завданнями, щоб виявити спроби безфайлової стійкості.

Відповідь

Якщо підозрюється шкідливе стеганографічне зображення, негайно ізолювати постраждалу кінцеву точку та зібрати пам’ять для судово-медичної експертизи. Слідчі повинні шукати DLL завантажувача .NET та будь-які законні процеси, які можуть містити компоненти Remcos. Неавторизовані записи в реєстрі автозапуску та заплановані завдання, створені завантажувачем, повинні бути видалені. Будь-які облікові записи, які могли бути задіяні під час вторгнення, повинні пройти повний скидання облікових даних.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#ffcc99 classDef privilege fill:#ffb3b3 %% Node definitions action_phishing["<b>Action</b> – <b>T1566.001 Фішинг</b><br/>Вживлений вкладенням: зловмисник надсилає електронний лист на фінансову тему з шкідливим вкладенням дроппера JavaScript."] class action_phishing action action_user_execution["<b>Дія</b> – <b>T1204.003 Виконання користувачами</b><br/>Шкідливе зображення: жертва відкриває дропер JavaScript, який ініціює завантаження шкідливого зображення з публічного сайту розміщення."] class action_user_execution action action_steganography["<b>Дія</b> – <b>T1027.003 Обфусцировані файли або інформація</b><br/>Стеганографія: завантажене зображення містить DLL завантажувача .NET з кодуванням Base64, прихований за допомогою стеганографії."] class action_steganography action action_process_injection["<b>Дія</b> – <b>T1055 Процес ін’єкції</b><br/>Завантажувач вводить Remcos RAT у пам’ять легітимного процесу, такого як explorer.exe."] class action_process_injection action action_privilege_escalation["<b>Дія</b> – <b>T1548 Зловживання підвищенням контролю механізму</b><br/>Завантажувач підвищує привілеї, щоб отримати права адміністратора перед виконанням завантаження."] class action_privilege_escalation privilege persistence_appcert["<b>Стійкість</b> – <b>T1546.009 Виконання тригероване подією</b><br/>AppCert DLLs: записи в реєстрі, що записані для завантаження шкідливого DLL під час завантаження системи (безфайлова стійкість)."] class persistence_appcert persistence persistence_activesetup["<b>Стійкість</b> – <b>T1547.014 Виконання автозапуску при завантаженні чи вході в систему</b><br/>Active Setup: додаткові ключі реєстру автозапуску додані для стійкості."] class persistence_activesetup persistence malware_remcos_rat["<b>Шкідливе ПЗ</b> – <b>T1219 Інструмент віддаленого доступу</b><br/>Remcos RAT надає можливості командного управління для зловмисника."] class malware_remcos_rat malware action_lateral_movement["<b>Дія</b> – <b>T1021 Віддалені служби</b><br/>RAT використовує віддалені служби для переміщення по мережі."] class action_lateral_movement action %% Connections action_phishing –>|доставляє| action_user_execution action_user_execution –>|виконує| action_steganography action_steganography –>|містить| action_process_injection action_process_injection –>|вводить| malware_remcos_rat malware_remcos_rat –>|дозволяє| action_privilege_escalation action_privilege_escalation –>|створює| persistence_appcert persistence_appcert –>|додає| persistence_activesetup malware_remcos_rat –>|сприяє| action_lateral_movement "

Потік атаки

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

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

Обґрунтування: Цей розділ детально описує точне виконання техніки зловмисника (TTP), розроблене для того, щоб викликати правило виявлення. Команди та розповідь повинні безпосередньо відображати виявлені TTPs і мати на меті створити точну телеметрію, яку вимагає логіка виявлення.

  • Опис атаки та команди:

    1. Підготовка – Стеганографічне навантаження:
      Атакуючий вставляє скомпільований DLL Remcos RAT всередину безпечного JPEG, використовуючи власний інструмент (StegoEmbed.exe). В результаті файл (malicious.jpg) несе шкідливе навантаження в своїх піксельних даних.

    2. Доставка – Виконання завантажувача DotNET:
      Атакуючий виконує завантажувач на базі .NET (dotnet.exe), що посилається на стеговий образ і включає аргумент Loader. Завантажувач читає зображення, витягує вбудований DLL і завантажує його прямо в пам’ять (виконання в пам’яті) без запису на диск, досягаючи підвищення прав за допомогою експлойту (T1068).

    3. Результат – Випромінювання RAT:
      Після завантаження в пам’ять Remcos RAT встановлює мережеве з’єднання з сервером C2.

    Критична телеметрія, що генерується, – це подія створення процесу де:

    • Зображення (Ім’яПроцесу) містить DotNET (dotnet.exe).
    • Командний рядок містить буквальне слово Loader.

    Це задовольняє правило Sigma selection_dotnet_loader.

  • Регресійний тестовий скрипт:

    # ---------------------------------------------------------
    # Скрипт симуляції – Завантажувач DotNET зі стеганографією (T1027.003)
    # ---------------------------------------------------------
    # 1. Створити муляжне стеговське зображення (місце за резервом ембедінг не потрібен)
    $stegoPath = "$env:TEMPmalicious.jpg"
    Copy-Item "$env:SystemRootWebWallpaperWindowsimg0.jpg" $stegoPath -Force
    
    # 2. Виконати завантажувач .NET із необхідним флагом
    #    Використовуючи легітимний dotnet.exe для імітації імені зображення "DotNET".
    #    Аргумент "Loader" викликає правило Sigma.
    $loaderArgs = "`"$stegoPath`" Loader"
    Write-Host "[*] Запуск завантажувача dotnet з аргументом: $loaderArgs"
    
    Start-Process -FilePath "dotnet.exe" -ArgumentList $loaderArgs -NoNewWindow
    
    # 3. Зачекайте короткий період, щоб процес був захоплений Sysmon
    Start-Sleep -Seconds 5
    
    # 4. НЕОБОВ'ЯЗКОВО: Симулюйте випромінювання RAT (мережевий трафік) – не вимагається для тесту правила
    # ---------------------------------------------------------
    Write-Host "[*] Симуляція завершена. Перевірте сповіщення в SIEM."
  • Команди очищення:

    # ---------------------------------------------------------
    # Очищення – видалити тимчасове стеговське зображення та зупинити усі процеси завантажувача
    # ---------------------------------------------------------
    $stegoPath = "$env:TEMPmalicious.jpg"
    
    # Видалити тимчасове зображення
    if (Test-Path $stegoPath) {
        Remove-Item $stegoPath -Force
        Write-Host "[*] Видалено $stegoPath"
    }
    
    # Зупинити всі процеси dotnet, запущені цим скриптом (ідентифіковані аргументом "Loader")
    Get-Process -Name dotnet -ErrorAction SilentlyContinue |
        Where-Object { $_.Path -like "*dotnet.exe*" -and $_.StartInfo.Arguments -match "Loader" } |
        ForEach-Object {
            $_.Kill()
            Write-Host "[*] Завершено процес ID $($_.Id)"
        }
    # ---------------------------------------------------------