SOC Prime Bias: Crítico

12 Jan 2026 14:55 UTC

El giro de MuddyWater a Rust: Dentro del implante RustyWater

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
El giro de MuddyWater a Rust: Dentro del implante RustyWater
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

MuddyWater lanzó una campaña de spear-phishing dirigida a organizaciones diplomáticas, marítimas, financieras y de telecomunicaciones en todo el Medio Oriente. Los atacantes utilizaron documentos de Word armados con macros incrustadas para desplegar RustyWater, un implante basado en Rust. Una vez instalado, el malware persiste a través de una clave de registro Run, se comunica con el comando y control a través de HTTP e inyecta código en explorer.exe para mimetizarse con la actividad normal del usuario. El implante incorpora salvaguardas contra análisis y admite funcionalidades modulares post-compromiso para extender el control del atacante.

Investigación

El equipo TRIAD de CloudSEK analizó el documento malicioso, recuperó la carga codificada en hex y identificó el ejecutable de Rust reddit.exe. La inspección estática mostró el uso de la biblioteca reqwest para C2 basado en HTTP, un mecanismo de Controlador de Excepciones Vectorizadas para anti-depuración y persistencia a través de la ruta de registro CurrentUser Run. Las pruebas dinámicas confirmaron la inyección de procesos en explorer.exe y el comportamiento C2 asincrónico con tiempos de respuesta aleatorios. La investigación recopiló indicadores clave, incluidos hashes, artefactos de registro y los dominios maliciosos utilizados para las comunicaciones.

Mitigación

Vigilad las modificaciones sospechosas a HKCUSoftwareMicrosoftWindowsCurrentVersionRun, especialmente las entradas que apuntan a binarios almacenados en ProgramData. Detectad cadenas de ejecución impulsadas por macros donde Office inicia cmd.exe vía WScript.Shell. Añad detectores de red para patrones de tráfico HTTP consistentes con JSON → Base64 → codificación XOR y para balizamiento con jitter aleatorio. Fortaleced los controles de correo electrónico para bloquear o poner en cuarentena adjuntos de Word habilitados con macros de remitentes desconocidos o no confiables.

Respuesta

Si se detecta actividad de RustyWater, aislade el extremo y adquiere una imagen de memoria para apoyar la forensia enfocada en la inyección. Elimina la persistencia maliciosa de la clave Run y borra cualquier archivo depositado en ProgramData. Bloquea los dominios e IPs C2 identificados en los controles de perímetro. Ampliad la caza para identificar actividades relacionadas con macros e inyecciones de explorer.exe en todo el entorno para asegurar un confinamiento completo.

Flujo de ataque

Ejecución de Simulación

Prerequisito: El control previo de Telemetría y Línea Base debe haber pasado.

Justificación: 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 reflejan directamente los TTPs identificados y tienen como objetivo generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa de Ataque y Comandos:
    Un operador APT recibe un correo de spear-phishing con un adjunto de Office habilitado con macro maliciosa. Al abrirlo, la macro deposita dos archivos de carga—Cybersecurity.doc and CertificationKit.ini—en el directorio ProgramData para ocultarlos en una ubicación confiable por muchas aplicaciones. La macro utiliza PowerShell para escribir los archivos, lo que desencadena eventos de creación de archivos Sysmon que la regla de detección monitorea.

  • Guion de Prueba de Regresión:

    # -------------------------------------------------
    # Simulación de colocación de archivos de MuddyWater APT (Windows)
    # -------------------------------------------------
    $progData = $Env:ProgramData
    
    # Definir contenido de carga (datos ficticios para pruebas)
    $docContent = "Este es un documento de ciberseguridad simulado para pruebas de detección."
    $iniContent = "[Settings]`nKey=Value`n"
    
    # Crear Cybersecurity.doc
    $docPath = Join-Path -Path $progData -ChildPath "Cybersecurity.doc"
    $docContent | Out-File -FilePath $docPath -Encoding UTF8
    
    # Crear CertificationKit.ini
    $iniPath = Join-Path -Path $progData -ChildPath "CertificationKit.ini"
    $iniContent | Out-File -FilePath $iniPath -Encoding UTF8
    
    Write-Host "Archivos de simulación de MuddyWater creados:"
    Write-Host "`t$docPath"
    Write-Host "`t$iniPath"
    # -------------------------------------------------
  • Comandos de Limpieza:

    # Eliminar artefactos de simulación
    Remove-Item -Path "$Env:ProgramDataCybersecurity.doc" -ErrorAction SilentlyContinue
    Remove-Item -Path "$Env:ProgramDataCertificationKit.ini" -ErrorAction SilentlyContinue
    Write-Host "Archivos de simulación eliminados."