Investigación de Amenazas de Cato CTRL: Foxveil – Nuevo Cargador de Malware que Abusa de Cloudflare, Discord y Netlify como Infraestructura de Preparación
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Foxveil es un cargador de malware de primera etapa recientemente identificado, visto por primera vez en agosto de 2025. Extrae shellcode generado por Donut desde superficies de alojamiento «confiables»—Cloudflare Pages, Netlify y adjuntos de Discord—y luego lo ejecuta a través de técnicas de inyección de procesos. Para la persistencia, el cargador ya sea registra un servicio de Windows o intenta alterar la configuración de Microsoft Defender. A través de variantes observadas, las principales diferencias son la fuente de preparación, el enfoque de inyección y el método de persistencia.
Investigación
Investigadores de Cato analizaron dos variantes de Foxveil y documentaron el flujo de extremo a extremo: recuperación de shellcode, inyección a través de Early Bird APC (o auto-inyección directa), y persistencia mediante un servicio llamado AarSvc. Se observaron artefactos depositados bajo C:WindowsSysWOW64 usando nombres de archivo enmascarados para mezclarse con componentes legítimos. El cargador también incluye una lógica de mutación de cadenas que reescribe términos de alto impacto para reducir las detecciones estáticas. La telemetría de red mostró conexiones a múltiples dominios de Cloudflare y Netlify, con accesos ocasionales a URLs de adjuntos de Discord.
Mitigación
La plataforma Cato SASE bloqueó el cargador antes de la ejecución de la carga útil inspeccionando el comportamiento de descarga y patrones sospechosos de creación de procesos. Para reducir el riesgo, bloquee dominios de preparación conocidos y alerte sobre comportamientos relacionados con inyecciones asociados con las tácticas de Foxveil. Desactive la ejecución de scripts no confiables y fortalezca las políticas alrededor de las exclusiones de Windows Defender para limitar los intentos de persistencia. Mantenga las reglas de lista blanca para servicios en la nube legítimos al día para minimizar falsos positivos mientras se mantiene la cobertura.
Respuesta
Si se detecta actividad de Foxveil, aísle el punto de acceso, termine el proceso malicioso y elimine cualquier servicio registrado (incluyendo AarSvc). Realice una revisión forense de SysWOW64 para buscar ejecutables depositados y recopile hashes para definir el alcance. Apóyese en los registros de red para conexiones a dominios de preparación identificados y bloquéelos en las capas DNS/proxy. Despliegue detecciones para la inyección Early Bird APC y patrones de auto-inyección en toda la flota para identificar hosts adicionales afectados.
gráfico TB %% Definiciones de clase classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef tool fill:#99ccff classDef payload fill:#ccccff classDef operator fill:#ff9900 %% Definiciones de nodo initial_execution[«<b>Técnica</b> – <b>T1574.005 Secuestro de Flujo de Ejecución: Debilidad de Permisos de Archivo del Instalador Ejecutable</b><br/>La víctima ejecuta un EXE/DLL malicioso dejando caer el cargador Foxveil.»] class initial_execution technique staging_retrieval[«<b>Técnica</b> – <b>T1102.001 Servicio Web: Resolver de Entrega Secreta</b> y <b>T1102 Servicio Web</b><br/>Foxveil contacta páginas de Cloudflare, dominios de Netlify o enlaces de adjuntos de Discord controlados por atacantes para descargar shellcode generado por Donut.»] class staging_retrieval technique in_memory_loading[«<b>Técnica</b> – <b>T1620 Carga de Código Reflectante</b><br/>El shellcode descargado se carga directamente en memoria sin tocar el disco.»] class in_memory_loading technique process_injection[«<b>Técnica</b> – <b>T1055.002 Inyección de Ejecutable Portátil</b> y <b>T1055.001 Inyección de DLL</b><br/>Foxveil v1 inyecta vía Early‑Bird APC en un nuevo proceso svchost.exe; Foxveil v2 se auto‑inyecta.»] class process_injection technique persistence_service[«<b>Técnica</b> – <b>T1543 Crear o Modificar Proceso del Sistema</b><br/>Foxveil v1 registra un servicio de Windows (AarSvc) para la persistencia al arranque.»] class persistence_service technique masquerading[«<b>Técnica</b> – <b>T1036.005 Hacer Coincidir el Nombre o Ubicación del Recurso Legítimo</b><br/>Binarios depositados nombrados sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe colocados en C:\Windows\SysWOW64.»] class masquerading technique hide_artifacts[«<b>Técnica</b> – <b>T1564.012 Exclusiones de Archivo/Ruta</b><br/>Intenta una llamada WMI a MSFT_MpPreference para eliminar una exclusión para C:\Windows\SysWOW64.»] class hide_artifacts technique obfuscation[«<b>Técnica</b> – <b>T1027.014 Código Polimórfico</b><br/>Rutina de mutación de cadenas en tiempo de ejecución reemplaza cadenas de alto impacto como «fox», «payload», «meterpreter», «beacon».»] class obfuscation technique multistage_delivery[«<b>Técnica</b> – <b>T1104 Canales Multi‑Etapa</b><br/>Después de la ejecución inicial del shellcode, se descargan ejecutables adicionales desde la misma infraestructura de preparación (por ejemplo, un posible baliza Cobalt Strike).»] class multistage_delivery technique foxveil[«<b>Malware</b> – Cargador Foxveil<br/>Cargador inicial que recupera y carga shellcode.»] class foxveil malware donut_shellcode[«<b>Carga Útil</b> – Shellcode generado por Donut<br/>Contiene capacidades maliciosas adicionales.»] class donut_shellcode payload cobalt_strike[«<b>Herramienta</b> – Posible baliza de Cobalt Strike<br/>Descargada en etapas posteriores para comando y control.»] class cobalt_strike tool %% Conexiones initial_execution –>|deposita| foxveil foxveil –>|recupera| staging_retrieval staging_retrieval –>|descarga| donut_shellcode donut_shellcode –>|carga vía| in_memory_loading in_memory_loading –>|ejecuta| process_injection process_injection –>|habilita| persistence_service foxveil –>|realiza| masquerading foxveil –>|realiza| hide_artifacts foxveil –>|realiza| obfuscation process_injection –>|conduce a| multistage_delivery multistage_delivery –>|descarga| cobalt_strike cobalt_strike –>|proporciona| persistence_service
Flujo de Ataque
Detecciones
Cadena de Procesos del Sistema Anormal (vía creación de procesos)
Ver
Posible Infiltración / Exfiltración de Datos / C2 vía Servicios / Herramientas de Terceros (vía proxy)
Ver
Procesos Sospechosos de Svchost (vía creación de procesos)
Ver
Modificación Sospechosa de Exclusiones de Defender vía WMIC (vía cmdline)
Ver
Posible Infiltración / Exfiltración de Datos / C2 vía Servicios / Herramientas de Terceros (vía dns)
Ver
IOC (HashSha256) para detectar: Investigación de Amenazas Cato CTRLTM: Foxveil – Nuevo Cargador de Malware Abusando de Cloudflare, Discord y Netlify como Infraestructura de Preparación Parte 1
Ver
IOC (HashSha256) para detectar: Investigación de Amenazas Cato CTRLTM: Foxveil – Nuevo Cargador de Malware Abusando de Cloudflare, Discord y Netlify como Infraestructura de Preparación Parte 2
Ver
Detección de Inyección de Proceso Mascarado svchost.exe de Foxveil v1 [Creación de Proceso de Windows]
Ver
Detección de Dominios de Preparación de Malware Foxveil [Conexión de Red de Windows]
Ver
Ejecución de Simulación
Prerrequisito: La Verificación de Telemetría y Línea Base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narración DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque y Comandos
-
Reconocimiento: El atacante ha obtenido el dominio de preparación de Foxveil
syscore.pages.devde un volcado de credenciales comprometidas. - Etapa 1 – Resolución DNS: Utilizando una herramienta nativa de Windows, el atacante resuelve el dominio de preparación para obtener la dirección IP del host de la carga útil maliciosa. Este paso refleja el comportamiento real del malware y es el desencadenante observable.
- Etapa 2 – Recuperación de Carga Útil (no ejecutada en la prueba): En un ataque real la IP resuelta se usaría para descargar la carga útil de segunda etapa a través de HTTP. Con el fin de validar la detección, solo se requiere la resolución DNS.
-
Reconocimiento: El atacante ha obtenido el dominio de preparación de Foxveil
-
Script de Prueba de Regresión
<# Simular la resolución del dominio de preparación de Foxveil. Este script realiza una consulta DNS para un dominio conocido de Foxveil, generando la telemetría exacta que la regla Sigma monitorea. #> # Definir el dominio de preparación (elegido de la lista blanca de la regla) $stagingDomain = "syscore.pages.dev" # Resolver el dominio – esto genera un evento de consulta DNS try { $result = Resolve-DnsName -Name $stagingDomain -Type A -ErrorAction Stop Write-Host "Resuelto $stagingDomain a $($result.IPAddress)" } catch { Write-Error "Fallo en la resolución DNS: $_" } # Opcional: pausa para asegurar que la canalización de registros procese el evento Start-Sleep -Seconds 5 -
Comandos de Limpieza
# Vaciar la caché DNS para eliminar la entrada resuelta (evita efectos de caché en pruebas subsecuentes) ipconfig /flushdns Write-Host "Caché DNS vaciada."