Analizando SHEET#CREEP: El Malware Regresa con Nueva Ofuscación de Configuración
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Una operación de espionaje activa conocida como SHEETCREEP depende de un troyano de acceso remoto en C# que utiliza la API de Google Sheets para comando y control. Los atacantes entregan el malware a través de un señuelo de phishing en formato ISO con tema diplomático, después de lo cual el RAT establece persistencia y ejecuta comandos a través de un espacio de ejecución de PowerShell dentro del proceso. Muestras recientes muestran que los operadores han fortalecido el malware introduciendo ofuscación basada en XOR para los datos de configuración.
Investigación
El equipo de investigación de amenazas de Securonix descubrió la campaña extrayendo credenciales de cuentas de servicio de Google Cloud incrustadas en el binario del RAT. Después de autenticar en la hoja de cálculo de comando y control en vivo, los investigadores identificaron 91 pestañas de víctimas activas, incluidas sandbox, entornos de investigación y una víctima de alta confianza ubicada en Pakistán. Su análisis también mostró que la protección de configuración del malware había evolucionado mediante un enfoque de ofuscación actualizado.
Mitigación
Las organizaciones deben evitar abrir adjuntos no solicitados, especialmente archivos ISO que contienen archivos de acceso directo LNK. Los defensores deben monitorear el %LOCALAPPDATA%MicrosoftVault directorio en busca de ejecutables sospechosos y revisar las tareas programadas en busca de entradas engañosas o inesperadas. Una visibilidad fuerte en el endpoint a través de herramientas como Sysmon y AMSI también puede ayudar a detectar la actividad de PowerShell dentro del proceso relacionado con este malware.
Respuesta
Si se observa tráfico HTTPS inusual a los servicios de la API de Google desde procesos no basados en navegador, el sistema afectado debe aislarse inmediatamente. Los equipos de seguridad deben inspeccionar las tareas programadas para artículos no autorizados como WindowsVaultSyncService. También se debe realizar una revisión forense de %LOCALAPPDATA%MicrosoftVault para identificar binarios ocultos o atribuidos al sistema asociados con la intrusión.
graph TB %% Sección de definición de clases classDef initial_access fill:#f96,stroke:#333,stroke-width:2px classDef execution fill:#3498db,stroke:#333,stroke-width:2px classDef persistence fill:#2ecc71,stroke:#333,stroke-width:2px classDef evasion fill:#9b59b6,stroke:#333,stroke-width:2px classDef command_control fill:#e74c3c,stroke:#333,stroke-width:2px classDef malware fill:#ecf0f1,stroke:#333,stroke-width:2px %% Nodos de acceso inicial node_iso[«<b>Archivo</b>: UAE-India_Strategic_Partnership_Week.iso<br/><b>Acción</b>: Montaje de ISO<br/><b>Contexto</b>: Tema diplomático utilizado para ingeniería social»] class node_iso initial_access node_lnk[«<b>Archivo</b>: Acceso directo LNK malicioso<br/><b>Técnica</b>: T1027.012 – Archivos o información ofuscados: Suplantación del icono LNK<br/><b>Descripción</b>: Archivo LNK disfrazado con un icono PDF para engañar al usuario»] class node_lnk initial_access %% Nodos de ejecución y dropper node_user_exec[«<b>Acción</b>: T1204.002 – Ejecución del usuario: Archivo malicioso<br/><b>Descripción</b>: La víctima interactúa con el archivo LNK malicioso»] class node_user_exec execution node_dropper[«<b>Malware</b>: Dropper C#<br/><b>Archivo</b>: Document_11052026-03578240540350-93.exe<br/><b>Función</b>: Extrae un PDF señuelo y deposita el payload RAT»] class node_dropper execution %% Nodos de persistencia y evasión node_rat[«<b>Malware</b>: SHEETCREEP RAT<br/><b>Proceso</b>: vaultsvc.exe<br/><b>Ubicación</b>: %LOCALAPPDATA%\\Microsoft\\Vault\\vaultsvc.exe»] class node_rat malware node_attr_evasion[«<b>Acción</b>: T1027.008 – Archivos o información ofuscados: Payloads eliminados<br/><b>Descripción</b>: Configuración de atributos del archivo RAT como Oculto y Sistema»] class node_attr_evasion evasion node_persistence[«<b>Acción</b>: T1137 – Inicio automático de aplicaciones Office<br/><b>Método</b>: Tarea programada mediante API COM<br/><b>Nombre de tarea</b>: WindowsVaultSyncService»] class node_persistence persistence node_melt[«<b>Acción</b>: T1070.004 – Eliminación de indicadores: Eliminación de archivos<br/><b>Descripción</b>: Rutina melt elimina el dropper y lo reemplaza con un PDF legítimo»] class node_melt evasion %% Nodos C2 y evasión avanzada node_c2_api[«<b>Técnica</b>: T1102.002 – Servicio Web: Comunicación bidireccional<br/><b>Canal</b>: Google Sheets API<br/><b>Autenticación</b>: Cuenta de servicio GCP y clave RSA-2048»] class node_c2_api command_control node_xor_cfg[«<b>Técnica</b>: T1573.002 – Canal cifrado<br/><b>Descripción</b>: Configuración cifrada mediante XOR usando la clave ‘discrete’ para el ID de Spreadsheet»] class node_xor_cfg command_control node_powershell_evasion[«<b>Técnica</b>: T1036.011 – Mascaramiento: Sobrescritura de argumentos del proceso<br/><b>Descripción</b>: Ejecución de comandos mediante un espacio de ejecución PowerShell en proceso para evadir EDR»] class node_powershell_evasion evasion %% Flujo de conexión node_iso –>|contiene| node_lnk node_lnk –>|activa| node_user_exec node_user_exec –>|ejecuta| node_dropper node_dropper –>|deposita| node_rat node_dropper –>|aplica_atributos| node_attr_evasion node_dropper –>|establece| node_persistence node_dropper –>|realiza| node_melt node_rat –>|se_comunica_mediante| node_c2_api node_rat –>|utiliza| node_xor_cfg node_rat –>|ejecuta_comandos_mediante| node_powershell_evasion
Flujo de Ataque
Detecciones
Posible Uso de Elección para Retrasar Ejecución (vía cmdline)
Ver
Imagen de Disco Óptico VHDMP Fue Montada (vía VHDMP)
Ver
Tarea Programada Sospechosa (vía auditoría)
Ver
Actividad Posible de Utilidad de Comando y Control de Google (vía proxy)
Ver
IOCs (HashSha256) para detectar: Analizando SHEET#CREEP: SHEETCREEP está de vuelta con diferente ofuscación de configuración
Ver
IOCs (SourceIP) para detectar: Analizando SHEET#CREEP: SHEETCREEP está de vuelta con diferente ofuscación de configuración
Ver
IOCs (DestinationIP) para detectar: Analizando SHEET#CREEP: SHEETCREEP está de vuelta con diferente ofuscación de configuración
Ver
Detección de Comunicación C2 de Sheet#CREEP vía Google Sheets API [Firewall]
Ver
Detectar Uso de Mutex de Malware SHEET#CREEP [Windows Sysmon]
Ver
Detección de Patrones de Persistencia y Ejecución de SHEETCREEP [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerequisito: La Comprobación de Vuelo del Telémetro y Línea Base debe haber pasado.
Racional: 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 los TTP identificados y tienen como objetivo generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.
-
Narrativa de Ataque y Comandos: El adversario pretende establecer persistencia y ejecutar un troyano de acceso remoto (RAT) utilizando la técnica SHEETCREEP. Primero, simulan la ejecución inicial mediante un archivo LNK malicioso que llama a
cmd.exepara iniciar un ejecutable sospechoso específico. A continuación, establecen persistencia creando una tarea programada llamadaWindowsVaultSyncServicecon una descripción engañosa para mezclarse con las actualizaciones del sistema. Finalmente, despliegan la carga útilvaultsvc.exeen elC:Users<User>AppDataLocalMicrosoftVaultdirectorio y lo ejecutan para activar la parte final de la lógica de detección. -
Script de Prueba de Regresión:
# Script de Simulación SHEETCREEP # Nota: Este script debe ejecutarse con privilegios de Administrador para crear tareas programadas. $targetDir = "$env:LOCALAPPDATAMicrosoftVault" $payloadName = "vaultsvc.exe" $payloadPath = "$targetDir$payloadName" $taskName = "WindowsVaultSyncService" $taskDesc = "Windows Edge Core Update Task Machine Discord Update" Write-Host "[+] Inicio de Simulación SHEETCREEP..." -ForegroundColor Cyan # 1. Simular Selección 1: Ejecución CMD con cadena específica Write-Host "[+] Simulando Selección 1: Patrón de comando CMD..." -ForegroundColor Yellow Start-Process cmd.exe -ArgumentList '/c start "" "Document_11052026-03578240540350-93.exe"' -WindowStyle Hidden # 2. Simular Selección 2: Creación de Tarea Programada Write-Host "[+] Simulando Selección 2: Creación de Tarea Programada..." -ForegroundColor Yellow $action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo Persistencia Establecida" $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskName -Description $taskDesc -Force # 3. Simular Selección 3: Colocación y ejecución de la carga útil Write-Host "[+] Simulando Selección 3: Despliegue y ejecución de carga útil..." -ForegroundColor Yellow if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force | Out-Null } # Crear un archivo binario ficticio para imitar el RAT New-Item -Path $payloadPath -ItemType File -Force | Out-Null # Ejecutar la carga útil ficticia Start-Process -FilePath $payloadPath -WindowStyle Hidden -ErrorAction SilentlyContinue Write-Host "[+] Comandos de simulación enviados. Verificar SIEM para alertas." -ForegroundColor Green -
Comandos de Limpieza:
# Limpiar Simulación SHEETCREEP $targetDir = "$env:LOCALAPPDATAMicrosoftVault" $payloadPath = "$targetDirvaultsvc.exe" $taskName = "WindowsVaultSyncService" Write-Host "[+] Limpiando artefactos de simulación..." -ForegroundColor Cyan # Eliminar Tarea Programada Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue # Eliminar Carga Útil y Directorio if (Test-Path $payloadPath) { Remove-Item $payloadPath -Force } if (Test-Path $targetDir) { Remove-Item $targetDir -Recurse -Force } Write-Host "[+] Limpieza completa." -ForegroundColor Green