Operación MacroMaze: nueva campaña de APT28 utilizando herramientas básicas e infraestructura legítima
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
APT28 (Fancy Bear) llevó a cabo una operación de spear-phishing denominada Operación MacroMaze dirigida a organizaciones en Europa Occidental y Central. El señuelo usó documentos de Word armados con macros dropper que descargaban scripts adicionales y movían datos robados a través de servicios de webhook legítimos. La cadena se adhiere a herramientas de baja fricción—VBS, scripts por lotes y Microsoft Edge lanzado en modo oculto o sin cabeza—mientras mantiene la infraestructura en el servicio público webhook.site.
Investigación
Lab52 rastreó cuatro variantes de macro entre septiembre de 2025 y enero de 2026, observando cambios iterativos en el comportamiento del dropper, persistencia de tareas programadas y exfiltración impulsada por el navegador. Los analistas destacaron indicadores recurrentes, incluyendo campos INCLUDEPICTURE, nombres de archivos estilo GUID y automatización basada en SendKeys. También extrajeron artefactos relevantes, URLs y el flujo específico de creación de tareas programadas utilizado para mantener el acceso.
Mitigación
Desactive la ejecución automática de macros en Office y aplique un manejo estricto de adjuntos en Outlook. Monitoree la creación de tareas programadas sospechosas y los lanzamientos atípicos de Microsoft Edge en modos sin cabeza o fuera de pantalla. Bloquee o alerte sobre el tráfico saliente a webhook.site y plataformas de webhook públicas similares. Utilice listas de aplicaciones permitidas para restringir la ejecución de archivos VBS y scripts por lotes desconocidos.
Respuesta
Si se detecta actividad, aisle el host, conserve el documento malicioso y los artefactos relacionados, y busque la tarea programada creada y los archivos droppeados. Capture la telemetría de red para identificar puntos de exfiltración y elimine cualquier tarea programada maliciosa. Realice una evaluación forense para el robo de credenciales y notifique a las partes interesadas. Actualice las detecciones para cubrir los IOC y patrones de comportamiento observados.
graph TB %% Definiciones de clases classDef technique fill:#c2e0ff %% Definición de nodos t1566_001[«<b>Técnica</b> – T1566.001<br/><b>Nombre</b>: Adjuntos de Spearphishing<br/><b>Descripción</b>: Enviar correo electrónico con adjunto malicioso que, al abrirse, entrega la carga útil.»] class t1566_001 technique t1204[«<b>Técnica</b> – T1204<br/><b>Nombre</b>: Ejecución del Usuario<br/><b>Descripción</b>: La víctima ejecuta un archivo o script malicioso iniciando el ataque.»] class t1204 technique t1564_007[«<b>Técnica</b> – T1564.007<br/><b>Nombre</b>: Ocultar Artefactos: VBA Stomping<br/><b>Descripción</b>: Modificar código macro VBA para ocultar contenido malicioso preservando funcionalidad.»] class t1564_007 technique t1059_005[«<b>Técnica</b> – T1059.005<br/><b>Nombre</b>: Visual Basic<br/><b>Descripción</b>: Ejecutar comandos usando scripts VBA.»] class t1059_005 technique t1137_001[«<b>Técnica</b> – T1137.001<br/><b>Nombre</b>: Macros de Plantilla Office<br/><b>Descripción</b>: Distribuir macros maliciosos mediante plantillas Office.»] class t1137_001 technique t1546_002[«<b>Técnica</b> – T1546.002<br/><b>Nombre</b>: Ejecución Activada por Evento: Protector de Pantalla<br/><b>Descripción</b>: Registrar protector de pantalla malicioso para ejecutarse al activarse.»] class t1546_002 technique t1218_001[«<b>Técnica</b> – T1218.001<br/><b>Nombre</b>: Archivo HTML Compilado<br/><b>Descripción</b>: Usar archivos CHM para ejecutar código en el sistema víctima.»] class t1218_001 technique t1027_006[«<b>Técnica</b> – T1027.006<br/><b>Nombre</b>: HTML Smuggling<br/><b>Descripción</b>: Codificar carga maliciosa en HTML para evadir controles de seguridad.»] class t1027_006 technique t1102_001[«<b>Técnica</b> – T1102.001<br/><b>Nombre</b>: Dead Drop Resolver<br/><b>Descripción</b>: Usar resolvedor dead-drop para obtener comandos o exfiltrar datos.»] class t1102_001 technique t1102_002[«<b>Técnica</b> – T1102.002<br/><b>Nombre</b>: Comunicación Bidireccional<br/><b>Descripción</b>: Establecer canal de comunicación de doble vía para comando y control.»] class t1102_002 technique t1102_003[«<b>Técnica</b> – T1102.003<br/><b>Nombre</b>: Comunicación Unidireccional<br/><b>Descripción</b>: Usar canal unidireccional para enviar datos fuera de la red.»] class t1102_003 technique t1074_001[«<b>Técnica</b> – T1074.001<br/><b>Nombre</b>: Datos Preparados: Preparación Local<br/><b>Descripción</b>: Recolectar y preparar datos en el host local antes de exfiltración.»] class t1074_001 technique t1074_002[«<b>Técnica</b> – T1074.002<br/><b>Nombre</b>: Datos Preparados: Preparación Remota<br/><b>Descripción</b>: Transferir datos preparados a ubicación remota para exfiltración posterior.»] class t1074_002 technique t1560_001[«<b>Técnica</b> – T1560.001<br/><b>Nombre</b>: Archivo mediante Utilidad<br/><b>Descripción</b>: Comprimir datos preparados usando utilidades de archivo.»] class t1560_001 technique t1567_004[«<b>Técnica</b> – T1567.004<br/><b>Nombre</b>: Exfiltración vía Webhook<br/><b>Descripción</b>: Enviar datos exfiltrados a servicio externo mediante webhook.»] class t1567_004 technique %% Conexiones t1566_001 –>|leads_to| t1204 t1204 –>|leads_to| t1564_007 t1564_007 –>|leads_to| t1059_005 t1059_005 –>|leads_to| t1137_001 t1137_001 –>|leads_to| t1546_002 t1546_002 –>|leads_to| t1218_001 t1218_001 –>|leads_to| t1027_006 t1027_006 –>|leads_to| t1102_001 t1102_001 –>|leads_to| t1102_002 t1102_002 –>|leads_to| t1102_003 t1102_003 –>|leads_to| t1074_001 t1074_001 –>|leads_to| t1074_002 t1074_002 –>|leads_to| t1560_001 t1560_001 –>|leads_to| t1567_004
Flujo de ataque
Detecciones
Ejecución sospechosa de Taskkill (vía cmdline)
Ver
Distribución posible de malware a través de endpoints de WebsiteHook (vía proxy)
Ver
Proceso de navegador sospechoso ejecutado con parámetros sospechosos (vía cmdline)
Ver
LOLBAS WScript / CScript (vía process_creation)
Ver
Distribución posible de malware a través de endpoints de WebsiteHook (vía dns)
Ver
IOC (HashSha256) para detectar: Operación MacroMaze: nueva campaña APT28 usando herramientas básicas e infraestructura legítima
Ver
Operación MacroMaze APT28 Ejecución de WScript y CMD [Creación de Procesos en Windows]
Ver
Ejecución de simulación
Requisito previo: La verificación previa 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 narrativa deben reflejar directamente los TTP identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del ataque y comandos:
Un macro malicioso al estilo APT28 se entrega vía phishing. Cuando se abre el documento, el macro ejecuta un pequeño VBScript que crea un objeto WScript.Shell . Este objeto se usa luego para lanzar
cmd.execon un payload que escribe un shell reverso de PowerShell codificado en base-64 a un archivo temporal y lo ejecuta. La secuencia genera dos eventos de creación de procesos que satisfacen la regla Sigma:- wscript.exe (or cscript.exe) ejecuta el VBScript que contiene
objeto WScript.Shell. - El mismo VBScript llama a
WScript.Shell.Run "cmd.exe /c powershell -nop -w hidden -EncodedCommand …"lo que genera cmd.exe.
La relación padre-hijo y la presencia de
objeto WScript.Shellen la línea de comando son los indicadores exactos que busca la regla. - wscript.exe (or cscript.exe) ejecuta el VBScript que contiene
-
Guion de prueba de regresión:
# ------------------------------------------------------- # Simulación MacroMaze – lanza wscript.exe → cmd.exe # ------------------------------------------------------- # 1. Crear un VBS temporal que use WScript.Shell para ejecutar cmd.exe $vbsContent = @" Set sh = CreateObject("WScript.Shell") sh.Run "cmd.exe /c echo Malicious payload executed > %TEMP%payload.txt" "@ $vbsPath = "$env:TEMPmacromaze.vbs" $vbsContent | Set-Content -Path $vbsPath -Encoding ASCII # 2. Ejecutar el VBS a través de wscript.exe (generará la telemetría deseada) Start-Process -FilePath "wscript.exe" -ArgumentList "`"$vbsPath`"" -WindowStyle Hidden # Opcional: pausar para permitir que el SIEM ingiera eventos Start-Sleep -Seconds 5 # ------------------------------------------------------- -
Comandos de limpieza:
# Eliminar el VBS temporal y el archivo de payload Remove-Item -Path "$env:TEMPmacromaze.vbs" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPpayload.txt" -ErrorAction SilentlyContinue