2CLoader: Новий завантажувач шкідливого програмного забезпечення, що доставляє Vidar і Remus
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
2CLoader – нещодавно виявлений завантажувач шкідливої програми, який використовується для доставки інформаційних крадіїв, таких як Vidar і Remus, а також XWorm RAT. Він включає передові методи ухилення, такі як непрямі системні виклики через Hell’s Gate, перевірки на аналіз та віртуалізацію, а також інлайн гачки для підробки середовища. Завантажувач є дуже налаштовуваним та підтримує кілька механізмів стійкості та виконання.
Розслідування
Zscaler ThreatLabz провела глибокий технічний аналіз 2CLoader, розглядаючи його структуру ресурсів, процедури дешифрування та параметри конфігурації. Дослідники виявили багатоступеневий процес дешифрування, що поєднує обертовий XOR та AES-GCM, при цьому AES-ключ генерується з SHA256-хеша власного .text секції шкідливої програми. Розслідування також задокументувало кілька технік стійкості та значний функціонал протианалізу.
Пом’якшення
Організації повинні розгортати потужні рішення безпеки кінцевих точок, здатні виявляти непрямі системні виклики та активність ін’єкції процесів. Моніторинг підозрілих запланованих завдань, включаючи SecurityHealthService.exe, та неочікуваних змін у ключах реєстру Run/RunOnce є важливим. Команди безпеки також повинні стежити за несанкціонованими API-хуковками та ненормальними відносинами батьківських та дочірніх процесів, такими як explorer.exe, який запускає підозрілі процеси.
Реакція
Якщо виявлено активність 2CLoader, ізолюйте скомпрометовану хост від мережі, щоб обмежити потенційне ексфільтрацію даних інформаційними крадіжами. Проведіть аналіз пам’яті для виявлення підключених API та ін’єкованих пейлоадів. Перегляньте журнали мережі на наявність підключень до відомої інфраструктури C2, включаючи aware-cr1[.]com, та проведіть всебічний пошук механізмів стійкості, таких як заплановані завдання та шкідливі записи реєстру.
Потік атаки
Ми все ще оновлюємо цю частину.
Виявлення
Підозріле заплановане завдання (через аудит)
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через подію реєстру)
Підозрілий бінарний / скрипти в автозапуску (через подію файлу)
Підозріле завантаження файлу на прямий IP (через проксі)
IOC (HashSha256) для виявлення: 2CLoader: Новий завантажувач шкідливої програми, що доставляє Vidar та Remus
IOC (HashMd5) для виявлення: 2CLoader: Новий завантажувач шкідливої програми, що доставляє Vidar та Remus
IOC (SourceIP) для виявлення: 2CLoader: Новий завантажувач шкідливої програми, що доставляє Vidar та Remus
IOC (DestinationIP) для виявлення: 2CLoader: Новий завантажувач шкідливої програми, що доставляє Vidar та Remus
Виявлення комунікації 2CLoader C2 [З’єднання Windows]
Виявлення технік ухилення 2CLoader [Створення процесу Windows]
Виконання симуляції
-
Наратив атаки та команди: Метою противника є впровадження пейлоаду, уникаючи виявлення пісочницею. Для цього симульована шкідлива програма спочатку перевіряє, чи не відлагоджується вона, запитуючи
ProcessDebugPortviaNtQueryInformationProcess. Як тільки вона підтверджує “чисте” середовище, вона намагається маніпулювати власним простором пам’яті, щоб розпакувати шкідливий етап, спеціально викликаючиNtProtectVirtualMemoryщоб змінити дозволи на сторінці на Execute/Read/Write (RWX). Симуляція використовує оболонку на C++ для виконання їх як “опосередковані” виклики, імітуючи стиль ухилення 2CLoader. -
Скрипт регресійного тесту:
#include <windows.h> #include <winternl.h> #include <stdio.h> // Спрощене представлення послідовності системних викликів у стилі 2CLoader typedef NTSTATUS (NTAPI *pNtQueryInformationProcess)( HANDLE ProcessHandle, PROCESSINFOCLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength); int main() { printf("[+] Починаємо симуляцію ухилення 2CLoader...n"); // 1. Симулюємо анти-дебагінг (T1497.002) // Це імітує виклик NtQueryInformationProcess для перевірки ProcessDebugPort HANDLE hProcess = GetCurrentProcess(); DWORD_PTR debugPort = 0; // У реальному сценарії це був би опосередкований системний виклик. // Тут ми викликаємо логіку через API, щоб забезпечити видимість телеметрії. printf("[+] Перевірка на відлагоджувач через NtQueryInformationProcess...n"); // 2. Симулюємо маніпуляцію пам'яттю (T1055.005 / T1497) // Імітуємо NtProtectVirtualMemory для зміни захисту пам'яті printf("[+] Маніпуляція захистом пам'яті через NtProtectVirtualMemory...n"); void* buffer = VirtualAlloc(NULL, 1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if (buffer) { BOOL success = VirtualProtect(buffer, 1024, PAGE_EXECUTE_READWRITE, &DWORD); if (success) { printf("[!] Успіх: захист пам'яті змінено на RWX.n"); } VirtualFree(buffer, 0, MEM_RELEASE); } printf("[+] Симуляцію завершено.n"); return 0; } -
Команди очищення:
# Цей скрипт симуляції не створює стійких артефактів. # Переконайтеся в видаленні будь-яких скомпільованих бінарів: Remove-Item -Path ".simulation.exe" -ErrorAction SilentlyContinue