SOC Prime Bias: Medio

27 Apr 2026 15:06 UTC

Dentro de Vidar 2026: De la infección a la ejecución en memoria

Author Photo
SOC Prime Team linkedin icon Seguir
Dentro de Vidar 2026: De la infección a la ejecución en memoria
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El informe examina cómo Vidar ha evolucionado en un marco de ataque multi-etapa, sin archivos, que combina cargadores basados en Go, VBS, PowerShell y binarios living-off-the-land para recuperar contenido malicioso oculto dentro de archivos JPEG y TXT alojados en una dirección IP remota. Las cargas útiles incrustadas se extraen, decodifican y ejecutan directamente en la memoria a través de RegAsm.exe, evitando la detección basada en disco. El acceso inicial se entrega a través de cebos de ingeniería social como falsos repositorios de GitHub, sitios de WordPress comprometidos y páginas CAPTCHA falsas. La campaña también se apoya en dominios con proxies de Telegram y Cloudflare para el comando y control y la exfiltración de datos.

Investigación

Los investigadores de Point Wild rastrearon toda la cadena de infección desde el dropper inicial compilado en Go hasta la carga útil final de Vidar, documentando cada capa de ofuscación en el camino. Su análisis destacó el uso de marcadores Base64 personalizados, cadenas invertidas y carga reflexiva de ensamblaje .NET para ocultar la ejecución. Los investigadores también describieron cómo WScript, PowerShell, y RegAsm.exe fueron abusados como proxies de ejecución, permitiendo que el malware decodificara y lanzara una DLL oculta completamente en la memoria. El tráfico de red confirmó además la recuperación basada en HTTP de cargas útiles JPEG y TXT por fases desde una dirección IP codificada.

Mitigación

Los defensores deben centrarse en detectar las etapas tempranas de VBS y PowerShell de la cadena de infección, incluida la sospechosa utilización de RegAsm.exe, recuperación de archivos JPEG o TXT desde la IP maliciosa, y patrones reconocibles de marcadores Base64. Bloquear dominios maliciosos conocidos y direcciones IP, monitorear el tráfico saliente hacia Telegram y aplicar controles de ejecución a utilidades comunes de LOLBin puede ayudar a reducir la exposición. También se recomienda encarecidamente la detección basada en comportamiento ajustada para la ejecución sin archivos y las técnicas de carga en memoria.

Respuesta

Si se identifican indicadores vinculados a la cadena de infección de Vidar, aísle inmediatamente el host afectado, termine procesos sospechosos como WScript, PowerShell, y RegAsm.exe, y recoja imágenes de memoria para revisión forense. La dirección IP identificada y los dominios relacionados deben ser bloqueados, y cualquier acceso directo de inicio o tareas programadas utilizadas para la persistencia deben ser eliminados. Los equipos de seguridad también deberían realizar una revisión completa de credenciales centrada en datos del navegador expuestos, extensiones y carteras de criptomonedas.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef builtin fill:#cccccc %% Nodes initial_access["<b>Acción</b> – <b>T1204 Ejecución de usuario</b><br/>Las víctimas ejecutan archivos maliciosos de repositorios de GitHub falsos, páginas CAPTCHA/ClickFix falsas, sitios de WordPress comprometidos y canales de distribución de trampas de juego.<br/><b>Subtécnicas</b>: T1204.001 Enlace malicioso, T1204.002 Archivo malicioso, T1204.004 Copiar y pegar malicioso"] class initial_access action execution["<b>Acción</b> – <b>T1216 Ejecución de Proxy de Script del Sistema</b><br/>Usa WScript y PowerShell para ejecutar scripts"] class execution action appdomain_hijack["<b>Acción</b> – <b>T1574.014 Secuestro del Flujo de Ejecución: AppDomainManager</b><br/>Inicia RegAsm.exe como un proxy de binario firmado para cargar un ensamblado .NET"] class appdomain_hijack action defense_obfusc["<b>Acción</b> – <b>T1027 Archivos o Información Ofuscados</b><br/>Código polimórfico, compilar después de la entrega, contrabando de HTML, cargas útiles incrustadas/despojadas, cadenas invertidas y marcadores Base64 personalizados"] class defense_obfusc action reflective_loading["<b>Acción</b> – <b>T1620 Carga de Código Reflexiva</b><br/>Carga la carga útil .NET decodificada completamente en la memoria"] class reflective_loading action process_injection["<b>Acción</b> – <b>T1055 Inyección de Proceso</b><br/>Inyecta la carga útil reflexiva en un proceso legítimo"] class process_injection action persistence["<b>Acción</b> – <b>T1176 Extensiones de Software</b><br/>Copia un archivo .bat en la carpeta de inicio para persistencia a nivel de usuario"] class persistence action discovery["<b>Acción</b> – <b>T1518 Descubrimiento de Software</b> y <b>T1217 Descubrimiento de Información del Navegador</b><br/>Enumera software instalado y más de 200 extensiones de navegador para carteras de criptomonedas y gestores de contraseñas"] class discovery action c2["<b>Acción</b> – <b>T1071.001 Protocolos Web</b>, <b>T1090.004 Encubrimiento de Dominio</b>, <b>T1102.002 Servicio Web Bidireccional</b>, <b>T1071.004 DNS</b><br/>Usa un servidor HTTP directo IP, dominio con proxy de Cloudflare e infraestructura de Telegram para comando y control"] class c2 action masquerade["<b>Acción</b> – <b>T1036 Camuflaje</b><br/>Los archivos maliciosos están disfrazados como imágenes JPEG legítimas y transportadores de texto TXT"] class masquerade action exfiltration["<b>Acción</b> – <b>T1041 Exfiltración a través de Canal de Comando y Control</b><br/>Los datos recopilados se envían a través de la página web de Telegram y el dominio con proxy de Cloudflare"] class exfiltration action %% Edges showing flow initial_access –>|conduce a| execution execution –>|usa| appdomain_hijack appdomain_hijack –>|habilita| defense_obfusc defense_obfusc –>|habilita| reflective_loading reflective_loading –>|habilita| process_injection process_injection –>|habilita| persistence persistence –>|habilita| discovery discovery –>|habilita| c2 c2 –>|habilita| masquerade masquerade –>|habilita| exfiltration "

Flujo de Ataque

Detecciones

Cadenas PowerShell Sospechosas (a través de cmdline)

Equipo de SOC Prime
27 Abr 2026

LOLBAS WScript / CScript (a través de creación_de_proceso)

Equipo de SOC Prime
27 Abr 2026

Cadenas de PowerShell Sospechosas (a través de powershell)

Equipo de SOC Prime
27 Abr 2026

Llamar Métodos .NET Sospechosos desde PowerShell (a través de powershell)

Equipo de SOC Prime
27 Abr 2026

Binarios / Scripts Sospechosos en Ubicación de Inicio Automático (a través de evento_de_archivo)

Equipo de SOC Prime
27 Abr 2026

Posible Abuso de Telegram Como Canal de Comando y Control (a través de consulta_dns)

Equipo de SOC Prime
27 Abr 2026

IOCs (HashMd5) para detectar: Dentro de Vidar (2026): De la Infección a la Ejecución en Memoria a través de Cargas Útiles JPEG y TXT

Reglas de AI de SOC Prime
27 Abr 2026

IOCs (SourceIP) para detectar: Dentro de Vidar (2026): De la Infección a la Ejecución en Memoria a través de Cargas Útiles JPEG y TXT

Reglas de AI de SOC Prime
27 Abr 2026

IOCs (DestinationIP) para detectar: Dentro de Vidar (2026): De la Infección a la Ejecución en Memoria a través de Cargas Útiles JPEG y TXT

Reglas de AI de SOC Prime
27 Abr 2026

Detección de Ejecución Sin Archivos del Infostealer Vidar a través de PowerShell y Carga Útil JPEG [Windows PowerShell]

Reglas de AI de SOC Prime
27 Abr 2026

Ejecución Multi-Etapa de Vidar Infostealer a través de WScript, PowerShell y RegAsm [Creación de Proceso en Windows]

Reglas de AI de SOC Prime
27 Abr 2026

Ejecución de Simulación

Provisión: El chequeo de telemetría y línea base de pre-vuelo 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 TTPs identificados y pretender generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa y Comandos de Ataque:

    1. Dropper Inicial (WScript): El atacante entrega un archivo JScript malicioso (payload.js) que se lanza a través de WScript.exe. El script descarga una carga útil de PowerShell codificada en base64 desde un servidor C2 y la escribe en %TEMP%.
    2. Etapa de PowerShell: La carga útil descargada se ejecuta con -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden, realiza la carga reflexiva de DLL (T1620) de un ensamblado .NET malicioso (evil.dll) en la memoria, y deja caer el ensamblado en el disco.
    3. Proxy RegAsm: Para evadir la detección nativa de PowerShell, el atacante invoca RegAsm.exe apuntando a evil.dll con el /codebase conmutador, haciendo que el cargador .NET ejecute el punto de entrada malicioso (T1574.014).

    La cadena crea tres eventos distintos de Sysmon, cada uno coincidiendo con el Image|endswith selector de la regla, disparando así la alerta.

  • Script de Prueba de Regresión: El script a continuación reproduce la cadena anterior de manera segura, con sandbox usando comandos echo inofensivos y una DLL ficticia (un archivo de texto simple) para evitar actividad maliciosa real mientras se generan los mismos eventos de creación de proceso.

    <#  
    Simulación de ejecución multi-etapa al estilo Vidar  
    - Etapa 1: WScript lanza un JScript que escribe un script de PowerShell en %TEMP%  
    - Etapa 2: PowerShell ejecuta el script, crea una DLL ficticia y lanza RegAsm  
    #>
    
    # ---------- Etapa 1: WScript ----------
    $jsPath = "$env:TEMPstage1.js"
    $psPayloadPath = "$env:TEMPstage2.ps1"
    $dummyDllPath = "$env:TEMPevil.dll"
    
    # JScript que escribe una simple carga útil de PowerShell en el disco
    $jsContent = @"
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var ts = fso.OpenTextFile("$psPayloadPath", 2, true);
    ts.WriteLine('Write-Host "[Stage 2] PowerShell ejecutado"');
    ts.WriteLine('Set-Content -Path "$dummyDllPath" -Value "Esto es una DLL ficticia"');
    ts.WriteLine('Start-Process -FilePath "$env:SystemRootMicrosoft.NETFramework64v4.0.30319RegAsm.exe" -ArgumentList "`"$dummyDllPath`" /codebase" -NoNewWindow');
    ts.Close();
    "@
    
    Set-Content -Path $jsPath -Value $jsContent -Encoding ASCII
    
    # Ejecutar el JScript a través de WScript
    Write-Host "`n[Etapa 1] Iniciando WScript..."
    & "$env:SystemRootSystem32WScript.exe" $jsPath
    
    # ---------- Etapa 2: PowerShell ----------
    Write-Host "`n[Etapa 2] Ejecutando carga útil de PowerShell generada..."
    & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $psPayloadPath
    
    # ---------- Limpieza ----------
    Write-Host "`nLimpiando archivos temporales..."
    Remove-Item -Path $jsPath, $psPayloadPath, $dummyDllPath -Force -ErrorAction SilentlyContinue
  • Comandos de Limpieza: Además de la limpieza al final del script, ejecute lo siguiente para asegurarse de que no queden procesos o archivos residuales.

    # Terminar a la fuerza cualquier instancia errante de RegAsm o PowerShell generada por la prueba
    Get-Process -Name regasm, powershell -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Eliminar cualquier archivo residual en %TEMP% que coincida con el patrón de prueba
    Get-ChildItem -Path $env:TEMP -Filter "stage*.*" -File | Remove-Item -Force