2CLoader: Un Nuovo Malware Loader che Distribuisce Vidar e Remus
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
2CLoader è un nuovo malware loader scoperto recentemente, utilizzato per distribuire rubatori di informazioni come Vidar e Remus, oltre al RAT XWorm. Integra tecniche di evasione avanzate come le chiamate di sistema indirette attraverso Hell’s Gate, controlli anti-analisi e anti-VM, e hook trampoline inline per lo spoofing dell’ambiente. Il loader è altamente configurabile e supporta molteplici meccanismi di persistenza ed esecuzione.
Indagine
Zscaler ThreatLabz ha eseguito un’analisi tecnica approfondita di 2CLoader, esaminandone la struttura delle risorse, le routine di decrittazione e le opzioni di configurazione. I ricercatori hanno scoperto un processo di decrittazione multistadio che combina XOR rolling e AES-GCM, con la chiave AES generata dall’hash SHA256 della sezione .text del malware stesso. L’indagine ha anche documentato diverse tecniche di persistenza e una vasta funzionalità anti-analisi.
Mitigazione
Le organizzazioni dovrebbero distribuire soluzioni di sicurezza per endpoint robuste capaci di identificare chiamate di sistema indirette e attività di iniezione di processo. È essenziale monitorare compiti pianificati sospetti, inclusi SecurityHealthService.exe, e cambiamenti inaspettati nelle chiavi di registro Run/RunOnce. I team di sicurezza dovrebbero anche osservare per hooking di API non autorizzate e relazioni anomale tra processi padre e figlio, come explorer.exe che avvia processi sospetti.
Risposta
Se viene rilevata attività di 2CLoader, isolare l’host compromesso dalla rete per limitare la potenziale esfiltrazione di dati da parte di rubatori di informazioni. Eseguire un’analisi forense della memoria per identificare le API hookate e i payload iniettati. Rivedere i log di rete per le connessioni all’infrastruttura C2 nota, incluso aware-cr1[.]com, e condurre una ricerca approfondita per i meccanismi di persistenza come compiti pianificati e voci di registro malevole.
Flusso di Attacco
Stiamo ancora aggiornando questa parte.
Rilevamenti
Compito Pianificato Sospetto (via audit)
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Binary Sospetti / Script in Luogo di Avvio Automatico (via file_event)
Download di File Sospetti Direct IP (via proxy)
IOC (HashSha256) per rilevare: 2CLoader: Un Nuovo Malware Loader che Distribuisce Vidar e Remus
IOC (HashMd5) per rilevare: 2CLoader: Un Nuovo Malware Loader che Distribuisce Vidar e Remus
IOC (SourceIP) per rilevare: 2CLoader: Un Nuovo Malware Loader che Distribuisce Vidar e Remus
IOC (DestinationIP) per rilevare: 2CLoader: Un Nuovo Malware Loader che Distribuisce Vidar e Remus
Rilevamento Comunicazione C2 di 2CLoader [Connessione Rete Windows]
Rilevamento delle Tecniche di Evasione del Malware 2CLoader [Creazione Processo Windows]
Esecuzione di Simulazione
-
Narrativa & Comandi dell’Attacco: L’obiettivo dell’avversario è distribuzione di un payload evitando la rilevazione sandbox. Per raggiungere questo scopo, il malware simulato verifica innanzitutto se viene eseguito il debug attraverso l’interrogazione di
ProcessDebugPortviaNtQueryInformationProcess. Una volta confermato un ambiente “pulito”, tenta di manipolare il proprio spazio di memoria per decomprimere uno stadio malevolo, chiamando specificamenteNtProtectVirtualMemoryper cambiare i permessi della pagina a Execute/Read/Write (RWX). La simulazione utilizza un wrapper C++ per eseguire queste come chiamate “indirette” per imitare lo stile di evasione di 2CLoader. -
Script di Test di Regressione:
#include <windows.h> #include <winternl.h> #include <stdio.h> // Rappresentazione semplificata della sequenza di syscall in stile 2CLoader typedef NTSTATUS (NTAPI *pNtQueryInformationProcess)( HANDLE ProcessHandle, PROCESSINFOCLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength); int main() { printf("[+] Avvio Simulazione Evasione 2CLoader...n"); // 1. Simulazione Anti-Debugging (T1497.002) // Questo imita la chiamata a NtQueryInformationProcess per verificare ProcessDebugPort HANDLE hProcess = GetCurrentProcess(); DWORD_PTR debugPort = 0; // In uno scenario reale, sarebbe una syscall indiretta. // Qui attiviamo la logica tramite l'API per garantire la visibilità delle telemetrie. printf("[+] Controllo per Debugger via NtQueryInformationProcess...n"); // 2. Simulazione Manipolazione della Memoria (T1055.005 / T1497) // Imitazione di NtProtectVirtualMemory per cambiare la protezione della memoria printf("[+] Manipolazione della protezione della memoria via 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("[!] Successo: Protezione della memoria cambiata a RWX.n"); } VirtualFree(buffer, 0, MEM_RELEASE); } printf("[+] Simulazione Completa.n"); return 0; } -
Comandi di Pulizia:
# Nessun artefatto persistente viene creato da questo script di simulazione. # Assicurarsi che tutti i binari compilati siano rimossi: Remove-Item -Path ".simulation.exe" -ErrorAction SilentlyContinue