SOC Prime Bias: Crítico

23 Dec 2025 10:26 UTC

Sigilo en Capas: Desenmascarando el Cargador usado en Campañas de Correo Electrónico Dirigidas

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Sigilo en Capas: Desenmascarando el Cargador usado en Campañas de Correo Electrónico Dirigidas
shield icon

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.

Flujo de Ataque

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 -EncodedCommand contorno que imprime “Base64” en los comentarios), la regla de detección coincidencia_seleccion_base64_decodificado_script se cumple, y el indicador de ventana oculta satisface coincidencia_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)