SOC Prime Bias: Alto

12 Dec 2025 14:56 UTC

CyberVolk Resurge: Nuevas Características y Fallos de VolkLocker

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
CyberVolk Resurge: Nuevas Características y Fallos de VolkLocker
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El artículo cubre el resurgimiento del colectivo hacktivista pro-ruso CyberVolk y su nueva familia de ransomware denominada VolkLocker. Este ransomware basado en Golang apunta a sistemas Windows y Linux y utiliza Telegram para comando y control. Usa una clave maestra AES-256-GCM codificada, que también se guarda en texto plano en el directorio %TEMP%, creando efectivamente un atajo de descifrado no intencionado. VolkLocker también altera configuraciones del registro, desactiva controles de seguridad e intenta acciones destructivas contra el sistema una vez que expira un temporizador incorporado.

Investigación

Los investigadores examinaron la muestra de VolkLocker y observaron que se distribuye sin ofuscación de código, en cambio recomiendan el uso de UPX para empaquetar. El ransomware realiza verificaciones del entorno, enumera unidades disponibles, cifra datos usando una clave maestra estática y almacena esa clave en un archivo de respaldo oculto. La persistencia se mantiene replicando el ejecutable en múltiples rutas y aplicando cambios en el registro. Los tokens de bot de Telegram y una dirección de Bitcoin son elementos de configuración obligatorios para una operación exitosa.

Mitigación

Los defensores deben monitorear los cambios documentados en el registro, la creación del archivo de respaldo de la clave en texto plano y múltiples copias del mismo ejecutable apareciendo en ubicaciones de inicio. Bloquear el tráfico saliente hacia dominios relacionados con Telegram y marcar binarios empaquetados con UPX puede ayudar a limitar el riesgo. Mantener copias de seguridad regulares offline o inmutables y prevenir la eliminación automática de copias de sombra de volumen también es aconsejable.

Respuesta

Después de la detección, aísle inmediatamente el endpoint comprometido, recupere el archivo de respaldo de la clave de texto plano de %TEMP% y utilice la clave maestra conocida para el descifrado de archivos. Erradique todas las instancias del ejecutable VolkLocker, restaure los valores de registro alterados y reinicie cualquier solución de seguridad deshabilitada. Realice una revisión forense del tráfico de control y comando basado en Telegram y continúe monitoreando el uso indebido subsecuente del token de bot expuesto.

Flujo de ataque

Ejecución de simulación

Prerrequisito: Se debe haber pasado la verificación previa de Telemetría & Baseline.

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 los TTP identificados y deben generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a diagnósticos erróneos.

  • Narrativa de ataque y comandos:

    1. Objetivo:Obtener privilegios de SISTEMA en una estación de trabajo de usuario estándar mientras se evaden las herramientas de seguridad.
    2. Paso 1 – Bypass de UAC:El atacante lanza ms-settings.exe con una línea de comandos que obliga al proceso a llamar a NtRaiseHardError, una API no documentada conocida que puede activar un mensaje de elevación de UAC que puede ser aceptado automáticamente en ciertas configuraciones erróneas.
    3. Paso 2 – Disrupción de defensas: Inmediatamente después de la elevación, la misma línea de comandos invoca taskkill.exe para terminar herramientas de análisis conocidas (procmon.exeprocesshacker.exe, etc.) que podrían estar monitoreando procesos privilegiados.
    4. Telemetría resultante: Un único evento de creación de proceso donde Image = ms-settings.exe y CommandLine contiene ambos taskkill.exe y NtRaiseHardError, satisfaciendo la selección.
    # Comando malicioso combinado – diseñado para parecer argumentos de ms-settings.exe
    $maliciousCmd = '"C:WindowsSystem32ms-settings.exe" "taskkill.exe /F /IM procmon.exe" "NtRaiseHardError"'
    Start-Process -FilePath "$env:SystemRootsystem32ms-settings.exe" -ArgumentList $maliciousCmd
  • Script de prueba de regresión: El siguiente script de PowerShell reproduce exactamente el ataque y se puede reutilizar para pruebas de regresión automatizadas.

    <#
    .SYNOPSIS
     Simula la técnica de cyber-Volk para eludir UAC con ms-settings + terminación de herramientas de análisis.
    .DESCRIPCIÓN
     Lanza ms-settings.exe con una lista de argumentos elaborada que incluye taskkill.exe y NtRaiseHardError.
     Genera la telemetría de creación de procesos específica requerida para activar la regla de detección de Sigma.
    .NOTAS
     Ejecutar con una cuenta de usuario normal. Asegúrese de que el entorno objetivo tenga habilitado el registro de creación de procesos.
    #>
    
    # Parámetros (ajustar si es necesario)
    $msSettings = "$env:SystemRootsystem32ms-settings.exe"
    $analysisTools = @("procmon.exe","processhacker.exe","ida64.exe")
    $killCmd = "taskkill.exe /F /IM " + ($analysisTools -join " /IM ")
    $hardError = "NtRaiseHardError"
    
    # Construir la cadena de argumentos maliciosa
    $argList = @($killCmd, $hardError) -join " "
    
    Write-Host "Lanzando ms-settings.exe con argumentos maliciosos..."
    Start-Process -FilePath $msSettings -ArgumentList $argList
    
    Write-Host "Comando ejecutado:"
    Write-Host "`"$msSettings`" $argList"
  • Comandos de limpieza: Después de la verificación, termine cualquier ms-settings.exe procesos persistentes y restablezca el estado normal del sistema.

    # Detener cualquier proceso ms-settings que aún pueda estar en ejecución
    Get-Process -Name "ms-settings" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Opcional: Verificar que no se mataron accidentalmente herramientas de análisis
    foreach ($tool in @("procmon","processhacker","ida64")) {
     if (Get-Process -Name $tool -ErrorAction SilentlyContinue) {
     Write-Host "$tool todavía está en ejecución."
     } else {
     Write-Host "$tool fue terminado (esperado para la prueba)."
     }
    }