SOC Prime Bias: Високий

07 Apr 2026 19:57

Ланцюг інфікування Qilin EDR Killer

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Ланцюг інфікування Qilin EDR Killer
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Звіт охоплює багатоступеневий завантажувач, доставлений як троянізована бібліотека msimg32.dll, що може вимикати або видаляти понад 300 продуктів захисту та реакції на кінцевих точках. Завантажувач поєднує в собі складні методи зловживання SEH/VEH, техніки ядра-драйвера і апаратні точки зупинки для уникнення хуків у режимі користувача і знищення процесів безпеки. Діяльність пов’язана з екосистемою програм-вимагачів Qilin і поставляється з власним драйвером, похідним від інструменту ThrottleStop. Кінцевим результатом є спеціалізований EDR-знищувач, який завершує сервіси безпеки і може знову забезпечити контроль зловмисника, відновлюючи або нейтралізуючи логіку зворотного виклику цілісності коду.

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

Дослідники реверс-інжинували шкідливу DLL, її PE завантажувач і два допоміжні драйвери, rwdrv.sys і hlpdrv.sys. Аналіз детально описує, як завантажувач створює таблицю політики системних викликів, втручається у диспетчер винятків і використовує IAT-хукінг для перенаправлення виконання. Потім він використовує векторизовану обробку винятків для підготовки та запуску завантаження на основі shell32. Шар драйвера надає доступ до необробленої фізичної пам’яті і використовується для видалення або відключення зворотних викликів ядра, пов’язаних з EDR, а також для завершення захищених процесів через інтерфейс IOCTL.

Захист

Використовуйте багаторівневий захист і не покладайтеся на єдиний контроль EDR. Моніторьте аномальну активність завантаження драйверів, підозріле використання IOCTL фізичної пам’яті і несподівані зміни в структурах зворотного виклику ядра. Запобігайте бічному завантаженню DLL, коли зловмисники заміщують законні системні бібліотеки, і забезпечте покриття для уникнення в стилі апаратних точок зупинки. Підтримуйте актуальність сигнатур мережі і кінцевих точок, включаючи правила з таких інструментів, як ClamAV і Snort.

Відповідь

Якщо виявлено, ізолюйте кінцеву точку, зупиніть шкідливий процес і вивантажте всі підозрілі драйвери. Захопіть повні знімки пам’яті для судової експертизи, перевірте явно наявність rwdrv.sys і hlpdrv.sys і перевірте цілісність зворотних викликів ядра та відповідної телеметрії безпеки. Розгорніть оновлені засоби виявлення для імені файлу msimg32.dll, подій завантаження драйвера і патерну IOCTL 0x2222008. Завершіть огляд цілісності системи і відновіть з відомо добрих резервних копій, якщо довіра до хосту не може бути відновлена.

"graph TB %% Class definitions classDef technique fill:#ffcc99 %% Node definitions tech_initial_appinit["<b>Техніка</b> – <b>T1546.010 DLLs AppInit</b>: Бокове завантаження шкідливої msimg32.dll<br/><b>Опис</b>: Використовуйте значення реєстру AppInit_DLLs, щоб викликати завантаження шкідливої DLL у кожен процес у режимі користувача, який завантажує User32.dll."] class tech_initial_appinit technique tech_obfuscation["<b>Техніка</b> – <b>T1027 Обфусковані файли або інформація</b>: Зашифрований корисний навантажувач з трюками SEH/VEH<br/><b>Опис</b>: Зашифруйте чи іншим чином сховайте шкідливий код і використовуйте трюки структуованої обробки винятків або векторизованої обробки винятків, щоб уникнути статичного аналізу."] class tech_obfuscation technique tech_dll_injection["<b>Техніка</b> – <b>T1055.001 DLL Ін’єкція</b>: Ін’єкція по IAT хукінгу ExitProcess<br/><b>Опис</b>: Ін’єктуйте шкідливу DLL у цільовий процес і змініть його імпортну таблицю адрес, щоб перехопити виклики ExitProcess."] class tech_dll_injection technique tech_hijack_flow["<b>Техніка</b> – <b>T1574 Викрадення потоку виконання</b>: Обробники VEH/SEH та апаратні точки зупинки<br/><b>Опис</b>: Замініть або додайте обробники винятків і встановіть апаратні точки зупинки, щоб перенаправити виконання до шкідливого коду."] class tech_hijack_flow technique tech_reflective_load["<b>Техніка</b> – <b>T1620 Відображене завантаження коду</b>: Дешифрування та виконання PE в пам’яті<br/><b>Опис</b>: Дешифроване виконуване в пам’яті і його виконання без запису на диск."] class tech_reflective_load technique tech_elev_control["<b>Техніка</b> – <b>T1548 Зловживання механізмом контролю підвищення привілеїв</b>: Завантаження драйвера rwdrv.sys для R/W фізичної пам’яті<br/><b>Опис</b>: Встановіть підписаний або вразливий драйвер, щоб отримати доступ для читання/запису до фізичної пам’яті."] class tech_elev_control technique tech_priv_esc["<b>Техніка</b> – <b>T1068 Експлуатація для підвищення привілеїв</b>: Маніпуляція об’єктами ядра і відключення зворотних викликів EDR<br/><b>Опис</b>: Використовуйте завантажений драйвер для зміни структур ядра і нейтралізації хуків захисту та реагування на кінцевій точці."] class tech_priv_esc technique tech_persistence_appinit["<b>Техніка</b> – <b>T1546.010 AppInit DLLs (Стійкість)</b>: Підтримка вимкненого стану EDR<br/><b>Опис</b>: Зберігайте шкідливу DLL зареєстровану через AppInit_DLLs, щоб залишатися під час перезавантажень, поки EDR залишається вимкненим."] class tech_persistence_appinit technique tech_sandbox_evasion["<b>Техніка</b> – <b>T1497.002 Віртуалізація/Ухилення від пісочниці</b>: Перевірка локалі та виявлення точок зупинки<br/><b>Опис</b>: Виявляйте середовища аналізу шляхом перевірки локальних налаштувань системи та перевірки точок зупинки відлагоджувача."] class tech_sandbox_evasion technique %% Зв’язки, що показують потік атаки tech_initial_appinit –>|веде до| tech_obfuscation tech_obfuscation –>|веде до| tech_dll_injection tech_dll_injection –>|веде до| tech_hijack_flow tech_hijack_flow –>|веде до| tech_reflective_load tech_reflective_load –>|веде до| tech_elev_control tech_elev_control –>|веде до| tech_priv_esc tech_priv_esc –>|веде до| tech_persistence_appinit tech_persistence_appinit –>|веде до| tech_sandbox_evasion "

Потік атаки

Виявлення

Можлива спроба бічного завантаження динамічної бібліотеки Msimg32 (через image_load)

Команда SOC Prime
03 квітня 2026 року

Індикатори компрометації (Sha256) для виявлення: Інфекційний ланцюг Qilin EDR Killer

Правила SOC Prime AI
03 квітня 2026 року

Індикатори компрометації (Sha1) для виявлення: Інфекційний ланцюг Qilin EDR Killer

Правила SOC Prime AI
03 квітня 2026 року

Індикатори компрометації (Md5) для виявлення: Інфекційний ланцюг Qilin EDR Killer

Правила SOC Prime AI
03 квітня 2026 року

Виявлення драйверів EDR Killer, завантажених в атаках Qilin Ransomware [Створення процесу Windows]

Правила SOC Prime AI
03 квітня 2026 року

Виявлення EDR-технік уникнення за допомогою Syscalls Nt* [Система Windows]

Правила SOC Prime AI
03 квітня 2026 року

Виявлення шкідливої msimg32.dll, використаної в атаках Qilin Ransomware [Завантаження зображень Windows]

Правила SOC Prime AI
03 квітня 2026 року

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

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

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

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

    Зловмисник створює мінімальний нативний C двійковий файл, який явним чином завантажує ntdll.dll та викликає NtTraceEvent через його експортовану назву. Двійковий файл компілюється на цільовому хості за допомогою Visual C++ Build Tools, а потім запускається. Оскільки виклик здійснюється через звичайну поверхню API Windows, подія створення процесу записує зображення (ntdll.dll) та поле CallTrace містить рядок “NtTraceEvent”, що задовольняє умову Sigma. Зловмисник потім видаляє двійковий файл, щоб зменшити судові артефакти.

  • Сценарій регресійного тестування:

    # ---------------------------------------------------------
    # Крок 1 – Створіть тимчасовий C код, що викликає NtTraceEvent
    # ---------------------------------------------------------
    $src = @"
    #include <windows.h>
    typedef NTSTATUS (NTAPI *pNtTraceEvent)(HANDLE, ULONG, PVOID, ULONG);
    int main() {
        HMODULE hNtdll = LoadLibraryA("ntdll.dll");
        if (!hNtdll) return 1;
        pNtTraceEvent NtTraceEvent = (pNtTraceEvent)GetProcAddress(hNtdll, "NtTraceEvent");
        if (!NtTraceEvent) return 1;
        // Мінімальний виклик – аргументи в основному ігноруються для цього демо
        NtTraceEvent(NULL, 0, NULL, 0);
        return 0;
    }
    "@
    $tmpPath = "$env:TEMPNtTraceDemo.c"
    $exePath = "$env:TEMPNtTraceDemo.exe"
    $src | Set-Content -Path $tmpPath -Encoding ASCII
    
    # ---------------------------------------------------------
    # Крок 2 – Компіляція за допомогою cl.exe (вважається, що встановлено Visual C++ Build Tools)
    # ---------------------------------------------------------
    $vcVars = "$env:ProgramFiles(x86)Microsoft Visual Studio2019BuildToolsVCAuxiliaryBuildvcvars64.bat"
    if (Test-Path $vcVars) {
        & cmd /c "`"$vcVars`" && cl /nologo /O2 /Fe:`"$exePath`" `"$tmpPath`""
    } else {
        Write-Error "Visual C++ Build Tools не знайдено. Встановіть їх перед запуском цього сценарію."
        exit 1
    }
    
    # ---------------------------------------------------------
    # Крок 3 – Виконання двійкового файлу (це повинно активувати правило)
    # ---------------------------------------------------------
    & $exePath
    
    # ---------------------------------------------------------
    # Крок 4 – очистити артефакти
    # ---------------------------------------------------------
    Remove-Item -Force $tmpPath, $exePath
  • Команди очищення:

    # Переконайтеся, що всі залишкові файли видалено (виконувати як адміністратор)
    Get-ChildItem "$env:TEMPNtTraceDemo.*" -ErrorAction SilentlyContinue | Remove-Item -Force