SOC Prime Bias: Crítico

13 Fev 2026 15:45

Pesquisa de Ameaças Cato CTRL: Foxveil – Novo Carregador de Malware que Abusa da Infraestrutura de Cloudflare, Discord e Netlify

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Pesquisa de Ameaças Cato CTRL: Foxveil – Novo Carregador de Malware que Abusa da Infraestrutura de Cloudflare, Discord e Netlify
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Foxveil é um carregador de malware de estágio inicial recentemente identificado, visto pela primeira vez em agosto de 2025. Ele extrai shellcode gerado pelo Donut de superfícies de hospedagem “confiáveis”—Cloudflare Pages, Netlify e anexos do Discord—e depois o executa através de técnicas de injeção de processo. Para persistência, o carregador registra um serviço do Windows ou tenta alterar as configurações do Microsoft Defender. Entre as variantes observadas, as principais diferenças são a fonte de preparação, a abordagem de injeção e o método de persistência.

Investigação

Os pesquisadores da Cato analisaram duas variantes do Foxveil e documentaram o fluxo de ponta-a-ponta: recuperação do shellcode, injeção via Early Bird APC (ou auto-injeção direta), e persistência através de um serviço chamado AarSvc. Foram observados artefatos descartados em C:WindowsSysWOW64 usando nomes de arquivos mascarados para se misturar com componentes legítimos. O carregador também inclui lógica de mutação de string que reescreve termos de alta detecção para reduzir detecções estáticas. A telemetria da rede mostrou conexões para múltiplos domínios da Cloudflare e Netlify, com buscas ocasionais de URLs de anexos do Discord.

Mitigação

A plataforma Cato SASE bloqueou o carregador antes da execução da carga útil inspecionando o comportamento de download e padrões suspeitos de criação de processos. Para reduzir o risco, bloqueie domínios de preparação conhecidos e alerte sobre comportamentos relacionados a injeção associados à técnica do Foxveil. Desative a execução de scripts não confiáveis e endureça as políticas em torno das exclusões do Windows Defender para limitar as tentativas de persistência. Mantenha as regras de lista de permissões para serviços em nuvem legítimos atualizadas para minimizar falsos positivos enquanto mantém a cobertura.

Resposta

Se a atividade do Foxveil for detectada, isole o ponto final, termine o processo malicioso e remova qualquer serviço registrado (incluindo o AarSvc). Realize uma revisão forense do SysWOW64 em busca de executáveis descartados e colete hashes para escopo. Pivote nos logs de rede para conexões a domínios de preparação identificados e bloqueie-os em camadas de DNS/proxy. Promova detecções para injeção Early Bird APC e padrões de auto-injeção em toda a frota para identificar hosts adicionais impactados.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef tool fill:#99ccff classDef payload fill:#ccccff classDef operator fill:#ff9900 %% Node Definitions initial_execution["<b>Technique</b> – <b>T1574.005 Hijack Execution Flow: Executable Installer File Permissions Weakness</b><br/>Victim runs malicious EXE/DLL dropping the Foxveil loader."] class initial_execution technique staging_retrieval["<b>Technique</b> – <b>T1102.001 Web Service: Dead Drop Resolver</b> and <b>T1102 Web Service</b><br/>Foxveil contacts attacker‑controlled Cloudflare Pages, Netlify domains or Discord attachment links to download Donut‑generated shellcode."] class staging_retrieval technique in_memory_loading["<b>Technique</b> – <b>T1620 Reflective Code Loading</b><br/>Downloaded shellcode is loaded directly into memory without touching disk."] class in_memory_loading technique process_injection["<b>Technique</b> – <b>T1055.002 Portable Executable Injection</b> and <b>T1055.001 DLL Injection</b><br/>Foxveil v1 injects via Early‑Bird APC into a newly spawned svchost.exe process; Foxveil v2 self‑injects."] class process_injection technique persistence_service["<b>Technique</b> – <b>T1543 Create or Modify System Process</b><br/>Foxveil v1 registers a Windows service (AarSvc) for boot persistence."] class persistence_service technique masquerading["<b>Technique</b> – <b>T1036.005 Match Legitimate Resource Name or Location</b><br/>Dropped binaries named sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe placed in C:\Windows\SysWOW64."] class masquerading technique hide_artifacts["<b>Technique</b> – <b>T1564.012 File/Path Exclusions</b><br/>Attempts WMI call to MSFT_MpPreference to remove an exclusion for C:\Windows\SysWOW64."] class hide_artifacts technique obfuscation["<b>Technique</b> – <b>T1027.014 Polymorphic Code</b><br/>Runtime string‑mutation routine replaces high‑signal strings such as "fox", "payload", "meterpreter", "beacon"."] class obfuscation technique multistage_delivery["<b>Technique</b> – <b>T1104 Multi‑Stage Channels</b><br/>After initial shellcode execution, additional executables are downloaded from the same staging infrastructure (e.g., potential Cobalt Strike beacon)."] class multistage_delivery technique foxveil["<b>Malware</b> – Foxveil Loader<br/>Initial dropper that retrieves and loads shellcode."] class foxveil malware donut_shellcode["<b>Payload</b> – Donut generated shellcode<br/>Contains further malicious capabilities."] class donut_shellcode payload cobalt_strike["<b>Tool</b> – Potential Cobalt Strike beacon

fluxo de grafo TB %% Definições de Classe definição de classe técnica fill:#ffcc99 definição de classe malware fill:#ff9999 definição de classe ferramenta fill:#99ccff definição de classe payload fill:#ccccff definição de operador de classe fill:#ff9900 %% Definições de Nó execução_inicial[“<b>Técnica</b> – <b>T1574.005 Fluxo de Execução de Seqüência: Fraqueza nas Permissões do Arquivo Instalador Executável</b><br/>A vítima executa EXE/DLL malicioso descartando o carregador Foxveil.”] class execução_inicial técnica recuperação de preparação[“<b>Técnica</b> – <b>T1102.001 Serviço Web: Resolvedor Dead Drop</b> e <b>T1102 Serviço Web</b><br/>Foxveil contata páginas de Cloudflare, domínios Netlify ou links de anexos do Discord controlados pelo atacante para baixar shellcode gerado por Donut.”] class recuperação de preparação técnica carregamento na memória[“<b>Técnica</b> – <b>T1620 Carregamento de Código Reflexivo</b><br/>O shellcode baixado é carregado diretamente na memória sem tocar no disco.”] classe carregamento na memória técnica injeção de processo[“<b>Técnica</b> – <b>T1055.002 Injeção de Executável Portátil</b> e <b>T1055.001 Injeção de DLL</b><br/>Foxveil v1 injeta via Early-Bird APC em um novo processo svchost.exe; Foxveil v2 se auto-injeta.”] class injeção de processo técnica serviço de persistência[“<b>Técnica</b> – <b>T1543 Criar ou Modificar Processo de Sistema</b><br/>Foxveil v1 registra um serviço do Windows (AarSvc) para persistência de inicialização.”] classe serviço de persistência técnica mascaramento[“<b>Técnica</b> – <b>T1036.005 Corresponder Nome ou Localização de Recurso Legítimo</b><br/>Binários descartados nomeados sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe colocados em C:\Windows\SysWOW64.”] classe mascaramento técnica ocultar_artefatos[“<b>Técnica</b> – <b>T1564.012 Exclusões de Arquivo/Caminho</b><br/>Tenta chamada WMI para MSFT_MpPreference para remover uma exclusão para C:\Windows\SysWOW64.”] classe ocultar artefatos técnica obfuscação[“<b>Técnica</b> – <b>T1027.014 Código Polimórfico</b><br/>Rotina de mutação de string em tempo de execução substitui strings de alto sinal, como “fox”, “carga útil”, “meterpreter”, “beacon”.”] classe obfuscação técnica delivery_multistage[“<b>Técnica</b> – <b>T1104 Canais Multi-Estágios</b><br/>Após execução do shellcode inicial, executáveis adicionais são baixados da mesma infraestrutura de preparação (por exemplo, potencial beacon do Cobalt Strike).”] classe delivery_multistage técnica foxveil[“<b>Malware</b> – Carregador Foxveil<br/>Dropper inicial que recupera e carrega o shellcode.”] classe malware foxveil shellcode_donut[“<b>Payload</b> – Shellcode gerado por Donut<br/>Contém capacidades maliciosas adicionais.”] classe payload shellcode_donut cobalt_strike[“<b>Ferramenta</b> – Potencial beacon do Cobalt Strike<br/>Baixado nas fases posteriores para comando e controle.”] classe ferramenta cobalt_strike %% Conexões execução_inicial –>|dropa| foxveil foxveil –>|recupera| recuperação de preparação recuperação de preparação –>|baixa| shellcode_donut shellcode_donut –>|carrega via| carregamento na memória carregamento na memória –>|executa| injeção de processo injeção de processo –>|ativa| serviço de persistência foxveil –>|performa| mascaramento foxveil –>|performa| ocultar artefatos foxveil –>|performa| obfuscação injeção de processo –>|leva para| delivery_multistage delivery_multistage –>|baixa| cobalt_strike cobalt_strike –>|fornece| serviço de persistência

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Telemetria e Check de Pré-voo de Base deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa e Comandos do Ataque

    1. Reconhecimento: O atacante obteve o domínio de preparação Foxveil syscore.pages.dev de um despejo de credenciais comprometidas.
    2. Fase 1 – Resolução de DNS: Usando uma ferramenta nativa do Windows, o atacante resolve o domínio de preparação para obter o endereço IP do host de carga maliciosa. Este passo espelha o comportamento real do malware e é o gatilho observável.
    3. Fase 2 – Recuperação de Carga (não executado no teste): Em um ataque real, o IP resolvido seria usado para baixar a carga de segundo estágio via HTTP. Para fins de validação de detecção, apenas a resolução DNS é necessária.
  • Script de Teste de Regressão

    <# 
    Simular resolução de domínio de preparação do Foxveil.
    Este script realiza uma consulta DNS para um domínio conhecido do Foxveil,
    gerando a telemetria exata que a regra Sigma monitora.
    #>
    
    # Defina o domínio de preparação (escolhido da lista de permissões da regra)
    $stagingDomain = "syscore.pages.dev"
    
    # Resolva o domínio – isso gera um evento de consulta DNS
    try {
        $result = Resolve-DnsName -Name $stagingDomain -Type A -ErrorAction Stop
        Write-Host "Resolvido $stagingDomain para $($result.IPAddress)"
    } catch {
        Write-Error "Resolução de DNS falhou: $_"
    }
    
    # Opcional: pause para garantir que a linha de logs processe o evento
    Start-Sleep -Seconds 5
  • Comandos de Limpeza

    # Limpe o cache DNS para remover a entrada resolvida (previne efeitos de cache em testes subsequentes)
    ipconfig /flushdns
    Write-Host "Cache DNS limpo."