STOCKSTAY Otro Día: La Última Adición al Aparato de Recogida de Inteligencia de Turla
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El Grupo de Inteligencia de Amenazas de Google identificó STOCKSTAY, una puerta trasera .NET de múltiples componentes utilizada por el actor de amenazas Turla, vinculado a Rusia. El malware se construye con un diseño modular que incluye un túnel, un orquestador y un componente de puerta trasera, todos comunicándose a través de WebSockets seguros. Está destinado a apoyar operaciones de ciberespionaje a largo plazo contra objetivos gubernamentales y militares.
Investigación
GTIG realizó un análisis exhaustivo del ecosistema STOCKSTAY y rastreó su desarrollo hasta diciembre de 2022. Los investigadores mapearon sus componentes modulares, examinaron su uso de clave ambiental para descifrar datos de configuración y documentaron su cambio de disfrazarse como una utilidad del mercado de valores a hacerse pasar por otras aplicaciones benignas. La investigación también reveló el uso de K1MORPHER para la ofuscación de cadenas y vínculos con la conocida herramienta KAZUAR de Turla.
Mitigación
Las organizaciones deben implementar un monitoreo fuerte para el comportamiento sospechoso de aplicaciones .NET y tráfico inusual de WebSockets a dominios desconocidos. Defenderse contra el acceso inicial a través de archivos maliciosos de RDP y fortalecer las protecciones de correo electrónico contra phishing también es crítico. Además, parchear vulnerabilidades como CVE-2025-8088 en WinRAR puede ayudar a bloquear la implementación basada en la explotación.
Respuesta
Si se detecta actividad de STOCKSTAY, aísle inmediatamente los hosts afectados para detener la comunicación de comando y control y el movimiento lateral. Realice una investigación forense detallada para determinar el alcance total de la violación, con especial atención en los cambios no autorizados en el registro y las tareas programadas recién creadas. También se deben revisar los registros de red en busca de sesiones de WebSocket de larga duración, y se deben verificar los sistemas para detectar la presencia de archivos de componentes STOCKSTAY.
"flowchart TD step_initial_access["Acceso Inicial: T1566 – Phishing (Adjuntos spearphishing como archivos RDP, MSI o RAR; Enlaces spearphishing a sitios comprometidos)"] step_execution["Ejecución: T1204.002 – Ejecución de Usuario: Archivo Malicioso (Archivos HTA, configuraciones RDP); T1574.014 – Secuestro del Flujo de Ejecución: AppDomainManager (cargas útiles .NET); T1543 – Crear o Modificar Proceso del Sistema"] rules_for_execution("<b>Nombre de Regla</b>: Comportamiento de Evasión de Defensa LOLBAS MSHTA Sospechoso mediante la Detección de Comandos Asociados (via process_creation)<br/><b>ID de Regla</b>: feb459cf-289a-41ab-9241-d8edc232c487") step_persistence["Persistencia: T1543 – Crear o Modificar Proceso del Sistema (entradas de ejecución automática); T1133 – Servicios Remotos Externos (conectividad a largo plazo)"] step_defense_evasion["Evasión de Defensa: T1036 – Suplantación (renombrando a utilidades benignas); T1027.015 – Archivos o Información Ofuscados: Compresión; T1497.001/002 – Evasión de Virtualización/Sandbox a través de WMI"] step_discovery["Descubrimiento: T1012 – Consultar Registro; T1497.001 – Evasión de Virtualización/Sandbox (recolección de información del sistema/hardware vía WMI)"] step_command_and_control["Comando y Control: T1102.002/003 – Servicio Web: Comunicación Bidireccional/Unidireccional (WebSocket vía Render); T1568 – Resolución Dinámica"] rules_for_c2("<b>Nombre de Regla</b>: Intento de Abuso de Ethereum Publicnode como Canal C2 (via dns_query)<br/><b>ID de Regla</b>: 280e86bf-fad9-4b9c-8867-e2355e3f50ba") step_collection_exfiltration["Colección y Exfiltración: T1560.002/003 – Archivar Datos Recopilados vía Biblioteca o Método Personalizado (archivos ZIP en memoria)"] step_initial_access –>|conduce_a| step_execution step_execution –>|habilita| step_persistence step_execution -.->|detectado_por| rules_for_execution step_persistence –>|conduce_a| step_defense_evasion step_defense_evasion –>|habilita| step_discovery step_discovery –>|conduce_a| step_command_and_control step_command_and_control –>|habilita| step_collection_exfiltration step_command_and_control -.->|detectado_por| rules_for_c2 "
Flujo de Ataque
Detecciones
Intento de Abuso de Ethereum Publicnode como Canal C2 (via dns_query)
Ver
Comportamiento de Evasión de Defensa LOLBAS MSHTA Sospechoso mediante la Detección de Comandos Asociados (via process_creation)
Ver
Detección de Análisis de CryptoContainer y Ofuscación K1MORPHER en el Malware STOCKSTAY de Turla [Windows Sysmon]
Ver
Detección de Comunicación C2 de STOCKSTAY WebSocket [Conexión de Red de Windows]
Ver
Detección de Actividades Maliciosas de STOCKSTAY [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerequisito: El chequeo previo de Telemetría y Línea Base debe haber pasado.
Razonamiento: 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 apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a un diagnóstico incorrecto.
-
Narrativa del Ataque y Comandos: El adversario apunta a establecer persistencia usando una herramienta que se hace pasar por un componente legítimo de actualización de Microsoft. Para evadir la detección, el atacante ha renombrado su puerta trasera STOCKSTAY a
MicrosoftUpdateOneDrive.exey la ha colocado en un directorio temporal. El objetivo es ejecutar este proceso para iniciar una shell inversa o comunicación de comando y control (C2), confiando en el nombre «legítimo» para evadir la supervisión básica del proceso. -
Script de Prueba de Regresión:
# Script de Simulación: Ejecución de Mascarada STOCKSTAY $MaliciousName = "MicrosoftUpdateOneDrive.exe" $TargetDir = "$env:TEMPStockstaySim" # 1. Crear un directorio y archivo "malicioso" simulado if (!(Test-Path $TargetDir)) { New-Item -Path $TargetDir -ItemType Directory -Force } $FakeBinary = Join-Path $TargetDir $MaliciousName # 2. Crear un ejecutable de prueba (usando un cmd.exe renombrado para fines de simulación) Copy-Item "C:WindowsSystem32cmd.exe" -Destination $FakeBinary -Force Write-Host "[+] Simulacion: Creado $FakeBinary" -ForegroundColor Cyan # 3. Ejecutar el proceso "malicioso" Write-Host "[+] Simulacion: Ejecutando $MaliciousName..." -ForegroundColor Yellow Start-Process -FilePath $FakeBinary -ArgumentList "/c echo STOCKSTAY_SIMULATION_ACTIVE" -WindowStyle Hidden Write-Host "[+] Simulacion: Ejecución del proceso activada." -ForegroundColor Green -
Comandos de Limpieza:
# Script de Limpieza $TargetDir = "$env:TEMPStockstaySim" if (Test-Path $TargetDir) { Remove-Item -Path $TargetDir -Recurse -Force Write-Host "[+] Limpieza: Eliminado el directorio de simulación $TargetDir" -ForegroundColor Green } else { Write-Host "[-] Limpieza: No se encontró el directorio de simulación." -ForegroundColor Red }