SOC Prime Bias: Alto

24 Jun 2026 19:37 UTC

Variante de PureRAT Descubierta en Reproductor de Video AI

Author Photo
SOC Prime Team linkedin icon Seguir
Variante de PureRAT Descubierta en Reproductor de Video AI
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Una campaña de malware está utilizando un falso descargador de videos temático de Google Drive para lanzar una cadena de ejecución en varias etapas. La infección pasa de un cargador en Python a shellcode y luego a un ensamblaje .NET protegido identificado como PureRAT. El malware se basa en una fuerte ofuscación, cifrado personalizado y comunicaciones WebSocket autenticadas para gestionar el tráfico de comando y control.

Investigación

La investigación analizó un flujo de ejecución en etapas que comenzó con un cargador de bytecode de Python. Los investigadores observaron decodificación Base85, zlib descompresión e inyección de shellcode a través de VirtualAlloc. Un análisis adicional descubrió un cargador .NET altamente protegido, Ykzrh/smveo-csharp-agent.exe, que utilizaba virtualización y reconstrucción en tiempo de ejecución para dificultar el análisis.

Mitigación

Se debe advertir a los usuarios de no descargar archivos desde cebos temáticos de videos sospechosos o no oficiales. Las organizaciones deben monitorear la ejecución no autorizada de Python y el comportamiento inusual de ensamblajes .NET dentro de los directorios de datos de aplicaciones locales. Listas blancas de aplicaciones fuertes y monitoreo de cambios sospechosos en la clave de ejecución pueden también reducir el riesgo de compromiso.

Respuesta

Si se detecta esta actividad, aísle los puntos finales afectados inmediatamente para interrumpir el tráfico de comando y control basado en WebSocket. Los investigadores deben realizar forense de memoria para capturar el payload .NET descifrado y determinar el alcance de la infección. También se deben revisar los registros de red para las conexiones a la infraestructura smveo.com , y cualquier credencial potencialmente expuesta debe ser rotada.

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef obfuscation fill:#ffff99 classDef tool fill:#cccccc %% Node definitions act_user_exec[«<b>Acción</b> – <b>T1204 Ejecución por Usuario</b><br/>La víctima interactúa con un cebo<br/>disfrazado como un falso Google Drive<br/>o descarga de video de SMVEO.»] class act_user_exec action act_drive_by[«<b>Acción</b> – <b>T1189 Compromiso Hay Que Pasar por Ahí</b><br/>El usuario descarga un archivo malicioso:<br/>DriveVideoSetup-x64-0.1.0.exe.»] class act_drive_by action mal_setup[«<b>Malware</b> – <b>Ejecutable Inicial</b><br/>Archivo: DriveVideoSetup-x64-0.1.0.exe<br/>Establece persistencia y<br/>comienza la cadena de desofuscación.»] class mal_setup malware per_registry[«<b>Acción</b> – <b>T1547.014 Persistencia</b><br/>Modifica la clave de registro:<br/>HKCUSoftwareMicrosoftWindowsCurrentVersionRun»] class per_registry persistence act_deobf[«<b>Acción</b> – <b>T1140 Desofuscar/Decodificar Archivos</b><br/>Etapas complejas en Python que involucran<br/>decodificación Base85, descompresión zlib,<br/>y marshal.loads.»] class act_deobf obfuscation tool_donut[«<b>Herramienta</b> – <b>DonutLoader</b><br/>Mecanismo utilizado para ejecutar<br/>shellcode en memoria.»] class tool_donut tool mal_ykzrh[«<b>Malware</b> – <b>Ykzrh.exe</b><br/>Cargador .NET altamente protegido<br/>que utiliza virtualización.»] class mal_ykzrh malware act_packing[«<b>Acción</b> – <b>T1027.002 Empaque de Software</b><br/>Utiliza intérpretes de bytecode personalizados<br/>y virtualización para ocultar la lógica central.»] class act_packing obfuscation mal_purerat[«<b>Malware</b> – <b>PureRAT</b><br/>Funcionalidad principal del ataque<br/>ocultada mediante ofuscación.»] class mal_purerat malware act_cert_steal[«<b>Acción</b> – <b>T1649 Robar o Falsificar Certificados de Autenticación</b><br/>Genera client.crt y client.key<br/>bajo %LOCALAPPDATA%SMVEO.»] class act_cert_steal action comm_c2[«<b>Acción</b> – <b>Comunicación C2</b><br/>Comunicación autenticada por WebSocket<br/>a agent.sm-veo.com.»] class comm_c2 action %% Connections act_user_exec –>|lleva a| act_drive_by act_drive_by –>|ejecuta| mal_setup mal_setup –>|realiza| per_registry mal_setup –>|inicia| act_deobf act_deobf –>|lleva a| tool_donut tool_donut –>|despliega| mal_ykzrh mal_ykzrh –>|utiliza| act_packing act_packing –>|oculte| mal_purerat mal_purerat –>|realiza| act_cert_steal act_cert_steal –>|facilita| comm_c2

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Verificación Previa al Vuelo de Telemetría y Línea de Base debe haber pasado.

Motivo: 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 las TTPs identificadas y aspirar a generar la telemetría exacta esperada por la lógica de detección. Los ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.

  • Narrativa y Comandos del Ataque: El adversario ha desplegado con éxito una variante de PureRAT. Para mantener el control, el malware estableció un canal persistente de Comando y Control (C2). En lugar de sondeo HTTP estándar, utiliza una conexión WebSocket autenticada para eludir los proxies web tradicionales que podrían no inspeccionar flujos WebSocket de larga duración. El objetivo del atacante es establecer un túnel estable y de baja latencia hacia agent.sm-veo.com en el puerto 8443. Esta simulación usará un script de PowerShell para imitar este comportamiento de red iniciando una conexión a la URI maliciosa.

  • Script de Prueba de Regresión:

    # Simulación de variante PureRAT C2 a través de WebSocket
    # Objetivo: Activar la regla de detección mediante el dominio de destino o URL.
    
    $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws"
    $targetDomain = "agent.sm-veo.com"
    
    Write-Host "[+] Iniciando simulación de C2 PureRAT..." -ForegroundColor Cyan
    
    try {
        Write-Host "[+] Intentando establecer conexión WebSocket a $targetUrl"
        # Usando un cliente WebSocket de .NET para simular el comportamiento específico del protocolo
        $ws = New-Object System.Net.WebSockets.ClientWebSocket
        $uri = New-Object System.Uri($targetUrl)
        $ct = New-Object System.Threading.CancellationTokenSource
    
        # No necesitamos un apretón de manos exitoso para que la telemetría de red se active,
        # solo el intento de conectarse al destino especificado.
        $task = $ws.ConnectAsync($uri, $ct.Token)
    
        # Esperar brevemente para que el intento de conexión genere telemetría
        Start-Sleep -Seconds 5
        Write-Host "[!] Intento de conexión completado. Verifique SIEM para la telemetría." -ForegroundColor Green
    }
    catch {
        Write-Host "[!] Conexión fallida (Esperado si el dominio está sumidero / no es real), pero la telemetría debería haberse generado." -ForegroundColor Yellow
    }
    finally {
        if ($ws) { $ws.Dispose() }
    }
  • Comandos de Limpieza:

    # No se modificaron archivos persistentes o claves de registro por este script de simulación específico.
    # Si se simuló persistencia (T1547.001), use lo siguiente:
    # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update'
    Write-Host "[+] Limpieza completa. Sin artefactos dejados por simulación de red." -ForegroundColor Cyan