Rastreo de Campañas de Malware con Material Reutilizado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Esta campaña reutiliza una imagen “portadora” JPEG que oculta una carga maliciosa entre las etiquetas BaseStart- y -BaseEnd. El acceso inicial se realiza a través de la explotación de Microsoft Equation Editor (CVE-2017-11882) en un adjunto elaborado, que descarga un HTA. El HTA ejecuta PowerShell para recuperar una .NET etapa binaria. La reutilización de la misma imagen en muchas muestras sugiere que el operador depende de componentes repetibles.
Investigación
El investigador observó TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs que contenía el exploit de Equation Editor. La cadena obtiene un HTA de una IP maliciosa, que ejecuta PowerShell para descargar una segunda carga alojada en otra IP. La etapa final es un binario .NET incrustado en el portador JPEG y recuperado a través de los delimitadores BaseStart/-BaseEnd. Se encontraron imágenes portadoras similares en docenas de envíos a VirusTotal.
Mitigación
Parchee CVE-2017-11882 y mantenga Office actualizado. Bloquee o restrinja la ejecución de HTA, imponga la firma de scripts de PowerShell y utilice el filtrado de URL/IP para denegar el acceso a la infraestructura de alojamiento.
Respuesta
Detecte y ponga en cuarentena el adjunto y la etapa HTA, y alerte sobre la actividad de descarga de PowerShell a las IPs identificadas. Aislar los hosts afectados y realizar análisis forenses de memoria para localizar y eliminar la carga .NET en la memoria.
«graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Nodes node_phishing[«<b>Acción</b> – <b>T1566.001 Phishing: Adjunto Spearphishing</b><br /><b>Descripción</b>: Archivo .xls malicioso explotando CVEu20112017u201111882 enviado por correo electrónico.»] class node_phishing action node_user_exec[«<b>Acción</b> – <b>T1204.002 Ejecución de Usuario</b><br /><b>Descripción</b>: La víctima abre el adjunto malicioso.»] class node_user_exec action node_exploit_client[«<b>Acción</b> – <b>T1203 Explotación para Ejecución de Cliente</b><br /><b>Descripción</b>: La vulnerabilidad de Equation Editor desencadena la descarga de contenido malicioso.»] class node_exploit_client action node_mshta[«<b>Acción</b> – <b>T1218.005 Ejecución de Proxy de Binario del Sistema: Mshta</b><br /><b>Descripción</b>: Archivo HTA descargado y ejecutado a través de mshta.»] class node_mshta action node_powershell[«<b>Acción</b> – <b>T1059.001 Intérprete de Comando y Script: PowerShell</b><br /><b>Descripción</b>: Script de PowerShell obtenido de servidor remoto y ejecutado.»] class node_powershell action node_web_comm[«<b>Acción</b> – <b>T1102.003 Servicio Web: Comunicación Unidireccional</b><br /><b>Descripción</b>: Script extrae una imagen PNG de un servidor remoto.»] class node_web_comm action node_stego[«<b>Acción</b> – <b>T1027.003 Archivos o Información Ofuscados: Esteganografía</b><br /><b>Descripción</b>: PNG contiene carga Base64 delimitada por los marcadores BaseStart y BaseEnd.»] class node_stego action node_dotnet[«<b>Acción</b> – <b>Ejecución</b><br /><b>Descripción</b>: Carga binaria .NET incrustada se ejecuta en el host.»] class node_dotnet process %% Connections node_phishing u002du002d>|conduce a| node_user_exec node_user_exec u002du002d>|conduce a| node_exploit_client node_exploit_client u002du002d>|conduce a| node_mshta node_mshta u002du002d>|ejecuta| node_powershell node_powershell u002du002d>|descarga| node_web_comm node_web_comm u002du002d>|recupera| node_stego node_stego u002du002d>|contiene| node_dotnet «
Flujo de Ataque
Detecciones
Comportamiento de Evasión de Defensa LOLBAS MSHTA Sospechoso por Detección de Comandos Asociados (vía creación de proceso)
Ver
Cadenas de PowerShell Sospechosas (vía powershell)
Ver
Descarga de Archivo Sospechosa IP Directa (vía proxy)
Ver
Proceso Hijo de Equation Editor Sospechoso (vía línea de comandos)
Ver
Cadenas de PowerShell Sospechosas (vía línea de comandos)
Ver
IOCs (DestinoIP) para detectar: Rastreo de Campañas de Malware Con Material Reutilizado
Ver
IOCs (SourceIP) para detectar: Rastreo de Campañas de Malware Con Material Reutilizado
Ver
Detectar Entrega de HTA Malicioso y Carga de Imagen Base64 [Proxy]
Ver
Obtención de Carga de PowerShell con Técnica Codificada en Base64 [Windows Powershell]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Previa de Telemetría & Baseline debe haberse completado con éxito.
Razonamiento: 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 TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque & Comandos:
Un adversario ha explotado una vulnerabilidad del lado del cliente que sirve un archivo HTA malicioso. El HTA lanza PowerShell con una línea de comandos que incrusta una carga maliciosa (por ejemplo,Invoke‑Expressionpara lanzarcalc.exe) codificada en Base64. La carga está envuelta entre las cadenasBaseStart-and-BaseEndpara que el atacante pueda extraerla confiablemente al vuelo. El comando ejecutado en el host comprometido es:powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"Esta línea de comandos satisface ambas
condiciones de selección_base_startandcondiciones de selección_base_endcondiciones, causando que la regla se active. -
Script de Prueba de Regresión: El siguiente script de PowerShell autónomo reproduce el comportamiento malicioso y puede ejecutarse en cualquier host de Windows con la telemetría activada arriba.
# Script de Prueba de Regresión – activa la regla de detección # 1. Construir carga codificada en Base64 (lanzar calc.exe) $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) # 2. Ensamblar la línea de comandos completa con delimitadores $cmd = "BaseStart-$payload-BaseEnd" # 3. Ejecutar PowerShell con la línea de comandos elaborada $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`"" # 4. Ejecutar el comando (esto lanzará calc.exe) Invoke-Expression $fullCommand -
Comandos de Limpieza: Elimine cualquier artefacto y termine el proceso generado si es necesario.
# Limpieza – cierre Calculadora si todavía está ejecutándose y limpie el historial de comandos Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force # Opcionalmente limpie el historial de PowerShell (solo para la sesión actual) Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue