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.
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