2CLoader: Um Novo Carregador de Malware Entregando Vidar e Remus
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
2CLoader é um loader de malware recém-descoberto usado para entregar ladrões de informações, incluindo Vidar e Remus, bem como o XWorm RAT. Ele incorpora técnicas avançadas de evasão, como chamadas de sistema indiretas através do Hell’s Gate, verificações de anti-análise e anti-VM, e ganchos de trampolim em linha para falsificação de ambiente. O loader é altamente configurável e suporta múltiplos mecanismos de persistência e execução.
Investigação
Zscaler ThreatLabz realizou uma análise técnica aprofundada do 2CLoader, examinando sua estrutura de recursos, rotinas de decriptação e opções de configuração. Pesquisadores descobriram um processo de decriptação em várias etapas combinando XOR rolante e AES-GCM, com a chave AES gerada a partir do hash SHA256 da própria seção .text do malware. A investigação também documentou várias técnicas de persistência e funcionalidades extensivas de anti-análise.
Mitigação
As organizações devem implantar soluções robustas de segurança de endpoint capazes de identificar chamadas de sistema indiretas e atividades de injeção de processos. Monitorar tarefas agendadas suspeitas, incluindo SecurityHealthService.exe, e mudanças inesperadas nas chaves do registro Run/RunOnce é essencial. As equipes de segurança devem também observar por ganchos de API não autorizados e relações anormais de processo pai-filho, como explorer.exe iniciando processos suspeitos.
Resposta
Se for detectada atividade do 2CLoader, isole o host comprometido da rede para limitar a potencial exfiltração de dados por ladrões de informações. Realize análise forense de memória para identificar APIs alteradas e cargas úteis injetadas. Revise logs de rede para conexões com infraestruturas C2 conhecidas, incluindo aware-cr1[.]com, e conduza uma pesquisa abrangente por mecanismos de persistência, como tarefas agendadas e entradas maliciosas no registro.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Tarefa Agendada Suspeita (via auditoria)
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via evento_registry)
Binário/Scripts Suspeitos em Local de Inicialização Automática (via evento_arquivo)
Download de Arquivo Suspeito Direto por IP (via proxy)
IOCs (HashSha256) para detectar: 2CLoader: Um Novo Loader de Malware Entregando Vidar e Remus
IOCs (HashMd5) para detectar: 2CLoader: Um Novo Loader de Malware Entregando Vidar e Remus
IOCs (SourceIP) para detectar: 2CLoader: Um Novo Loader de Malware Entregando Vidar e Remus
IOCs (DestinationIP) para detectar: 2CLoader: Um Novo Loader de Malware Entregando Vidar e Remus
Detecção de Comunicação C2 do 2CLoader [Conexão de Rede do Windows]
Detecção de Técnicas de Evasão do Malware 2CLoader [Criação de Processo do Windows]
Execução de Simulação
-
Narrativa do Ataque & Comandos: O objetivo do adversário é implantar uma carga útil enquanto evita a detecção por sandbox. Para alcançar isso, o malware simulado primeiro verifica se está sendo depurado consultando
ProcessDebugPortviaNtQueryInformationProcess. Uma vez que se confirma um ambiente “limpo”, ele tenta manipular seu próprio espaço de memória para descompactar um estágio malicioso, chamando especificamenteNtProtectVirtualMemorypara mudar as permissões de página para Executar/Ler/Escrever (RWX). A simulação usa um wrapper em C++ para executar isso como chamadas “indiretas” para imitar o estilo de evasão do 2CLoader. -
Script de Teste de Regressão:
#include <windows.h> #include <winternl.h> #include <stdio.h> // Representação simplificada da sequência de syscall estilo 2CLoader typedef NTSTATUS (NTAPI *pNtQueryInformationProcess)( HANDLE ProcessHandle, PROCESSINFOCLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength); int main() { printf("[+] Iniciando Simulação de Evasão 2CLoader...n"); // 1. Simular Anti-Debugging (T1497.002) // Isso imita a chamada para NtQueryInformationProcess para verificar ProcessDebugPort HANDLE hProcess = GetCurrentProcess(); DWORD_PTR debugPort = 0; // Em um cenário real, isso seria uma syscall indireta. // Aqui, acionamos a lógica via API para garantir a visibilidade da telemetria. printf("[+] Verificando Depurador via NtQueryInformationProcess...n"); // 2. Simular Manipulação de Memória (T1055.005 / T1497) // Imitar NtProtectVirtualMemory para alterar a proteção de memória printf("[+] Manipulando proteção de memória 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("[!] Sucesso: Proteção de memória alterada para RWX.n"); } VirtualFree(buffer, 0, MEM_RELEASE); } printf("[+] Simulação Completa.n"); return 0; } -
Comandos de Limpeza:
# Nenhum artefato persistente é criado por este script de simulação. # Certifique-se de que quaisquer binários compilados sejam removidos: Remove-Item -Path ".simulation.exe" -ErrorAction SilentlyContinue