Sigilo en Capas: Desenmascarando el Cargador usado en Campañas de Correo Electrónico Dirigidas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un cargador ampliamente disponible está siendo reutilizado por múltiples actores maliciosos para entregar diferentes RAT y ladrones de información a través de correos electrónicos de phishing con adjuntos de JavaScript, PowerShell, LNK y ZIP armados. El cargador combina esteganografía, carga reflejada, hollowing de procesos y un método emergente de omisión de UAC para permitir la ejecución sin archivos y elevar privilegios. Se ha observado actividad dirigida a entidades de manufactura y gubernamentales en toda Europa y Oriente Medio, con el aparente objetivo de robar datos industriales y credenciales.
Investigación
Los Laboratorios de Investigación e Inteligencia de Cyble analizaron la cadena de entrega y delinearon un flujo de trabajo de evasión en cuatro etapas. Comienza con un armador de JavaScript ofuscado, pasa a un cargador esteganográfico de PowerShell, abusa de una biblioteca de TaskScheduler troyanizada y culmina en la inyección de cargas útiles en RegAsm.exe. El malware de la etapa final es PureLog Stealer, que recopila credenciales de navegador, datos de monedero de criptomonedas e información del sistema/host para exfiltración.
Mitigación
Utilice protecciones avanzadas para correos electrónicos con detonación en sandbox, bloquee la ejecución de scripts desde contenido entregado por correo electrónico, aplique el Modo de Lenguaje Restringido de PowerShell y monitoree para detectar hollowing de binarios legítimos de Windows. Agregue detección para esteganografía en archivos de imagen y ajuste las reglas de EDR para detectar carga reflejada de ensamblados .NET y patrones de omisión de UAC asociados con esta cadena de cargadores.
Respuesta
Si aparecen indicadores, aisle el punto final, detenga la actividad sospechosa de PowerShell y WMI, capture imágenes de memoria y busque artefactos reflejados de .NET y procesos de RegAsm.exe inyectados. Restablezca las credenciales potencialmente expuestas y bloquee los dominios e IP maliciosos asociados para prevenir la reinfección y la actividad lateral.
«graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions act_phishing[«<b>Acción</b> – <b>T1566.001 Anexo de Phishing</b><br/><b>Descripción</b>: Enviar anexo de correo electrónico malicioso que explota una vulnerabilidad de Office.»] class act_phishing action act_exploit[«<b>Acción</b> – <b>T1203 Explotación para Ejecución en Cliente</b> (CVEu20112017u201111882)<br/><b>Descripción</b>: Desencadenar una vulnerabilidad en Microsoft Office para ejecutar código.»] class act_exploit action act_obfuscate[«<b>Acción</b> – <b>T1027 Archivos Ofuscados o Información</b><br/><b>Descripción</b>: Cargar JavaScript o PowerShell ofuscado para ocultar intenciones maliciosas.»] class act_obfuscate action act_stego[«<b>Acción</b> – <b>T1027.003 Esteganografía</b><br/><b>Descripción</b>: Incrustar carga útil dentro de imagen PNG para evadir detección.»] class act_stego action act_reflective_load[«<b>Acción</b> – <b>T1620 Carga de Código Reflejada</b><br/><b>Descripción</b>: Cargar ensamblado .NET en memoria sin tocar el disco.»] class act_reflective_load action act_regasm[«<b>Acción</b> – <b>T1218.009 Ejecución por Proxy de RegAsm</b><br/><b>Descripción</b>: Abusar de RegAsm para ejecutar código .NET arbitrario.»] class act_regasm action act_process_hollow[«<b>Acción</b> – <b>T1055.012 Hollowing de Procesos</b><br/><b>Descripción</b>: Reemplazar la memoria del proceso legítimo con código malicioso.»] class act_process_hollow action act_uac_bypass[«<b>Acción</b> – <b>T1548.002 Evadir Control de Cuentas de Usuario</b><br/><b>Descripción</b>: Elevar privilegios sin alertar al usuario.»] class act_uac_bypass action act_cred_steal[«<b>Acción</b> – <b>T1555.003 Credenciales de Navegadores Web</b><br/><b>Descripción</b>: Sacar las credenciales guardadas del navegador.»] class act_cred_steal action act_data_collect[«<b>Acción</b> – <b>T1119 Recopilación Automatizada</b><br/><b>Descripción</b>: Recopilar archivos e información del sistema.»] class act_data_collect action act_exfil[«<b>Acción</b> – <b>T1102 Exfiltración a través de Servicio Web</b> / <b>T1041 Exfiltración a través de Canal C2</b><br/><b>Descripción</b>: Enviar datos recopilados a servidor remoto a través de servicio web.»] class act_exfil action %% Conexiones act_phishing u002du002d>|conduce_a| act_exploit act_exploit u002du002d>|conduce_a| act_obfuscate act_obfuscate u002du002d>|conduce_a| act_stego act_stego u002du002d>|conduce_a| act_reflective_load act_reflective_load u002du002d>|conduce_a| act_regasm act_regasm u002du002d>|conduce_a| act_process_hollow act_process_hollow u002du002d>|conduce_a| act_uac_bypass act_uac_bypass u002du002d>|conduce_a| act_cred_steal act_cred_steal u002du002d>|conduce_a| act_data_collect act_data_collect u002du002d>|conduce_a| act_exfil «
Flujo de Ataque
Detecciones
LOLBAS WScript / CScript (mediante creación_de_procesos)
Ver
Archivo de Imagen Fue Creado Por Proceso Sospechoso (mediante evento_de_archivo)
Ver
Cadenas Sospechosas de Powershell (mediante powershell)
Ver
Posible Archivo de Internet Resuelto Por Proceso Poco Común (mediante consulta_dns)
Ver
Llamar Métodos Sospechosos de .NET desde Powershell (mediante powershell)
Ver
Descarga de Archivo Sospechosa Directa a IP (mediante proxy)
Ver
IOCs (SourceIP) para detectar: Sigilo en Capas: Desenmascarando el Cargador utilizado en Campañas de Email Dirigidas
Ver
IOCs (DestinationIP) para detectar: Sigilo en Capas: Desenmascarando el Cargador utilizado en Campañas de Email Dirigidas
Ver
IOCs (HashSha256) para detectar: Sigilo en Capas: Desenmascarando el Cargador utilizado en Campañas de Email Dirigidas
Ver
Detección de PowerShell Oculto y Script Decodificado de Base64 [Windows Powershell]
Ver
Detección de Creación de Objetos WMI y Hollowing de Procesos [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerequisito: El Control de Pre-vuelo de Telemetría y Línea Base debe haber pasado.
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 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 & Comandos:
Un adversario envía un correo electrónico de spear-phishing que contiene un anexo JPEG con una carga útil de PowerShell oculta embebida esteganográficamente. Después de que la víctima abre el anexo, el script de primera etapa del atacante extrae los datos ocultos, los decodifica de Base64 y lanza un cargador de PowerShell de segunda etapa en una ventana oculta. Posteriormente, el cargador contacta a un servidor C2 para descargar herramientas adicionales. La línea de comandos exacta generada en el host de la víctima es:powershell -WindowStyle Hidden -EncodedCommand <Base64String>Debido a que el atacante incluye explícitamente la palabra “Base64” en el script (por ejemplo, usando el
-EncodedCommandcontorno que imprime “Base64” en los comentarios), la regla de deteccióncoincidencia_seleccion_base64_decodificado_scriptse cumple, y el indicador de ventana oculta satisfacecoincidencia_seleccion_powershell_oculto. -
Script de Prueba de Regresión:
# Simulación de Cargador Oculto de PowerShell Base64 # ------------------------------------------------- # Paso 1: Crear un script dummy de PowerShell $script = 'Write-Host "Host comprometido: $env:COMPUTERNAME"; Start-Sleep -Seconds 30' # Paso 2: Codificar a Base64 (Unicode) $bytes = [System.Text.Encoding]::Unicode.GetBytes($script) $b64 = [Convert]::ToBase64String($bytes) # Paso 3: Lanzar PowerShell oculto con la carga codificada Start-Process -FilePath "powershell.exe" ` -ArgumentList "-WindowStyle Hidden -EncodedCommand $b64" ` -WindowStyle Hidden ` -NoNewWindow # La presencia de la cadena "Base64" en el comentario satisface la regla. -
Comandos de Limpieza:
# Terminar cualquier instancia persistente oculta de PowerShell iniciada por la prueba Get-Process -Name "powershell" | Where-Object { $_.StartInfo.Arguments -match "-WindowStyle Hidden" } | Stop-Process -Force # Opcional: Eliminar cualquier archivo temporal (ninguno creado en este script)