SOC Prime Bias: Medio

09 Apr 2026 15:30 UTC

ClickFix a MaaS: Dentro de un RAT Modular de Windows y su Panel de Control

Author Photo
SOC Prime Team linkedin icon Seguir
ClickFix a MaaS: Dentro de un RAT Modular de Windows y su Panel de Control
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Netskope Threat Labs observó una campaña de ClickFix entregando un RAT personalizado para Windows construido en Node.js a través de instaladores MSI maliciosos. La carga útil mantiene módulos clave en memoria y utiliza transmisión gRPC a través de Tor para C2. Un error de OPSEC expuso el protocolo del panel de administración, apuntando a un modelo de malware como servicio con seguimiento de monederos. La persistencia se establece a través de un valor de Run a nivel de usuario en HKCU.

Investigación

Los investigadores capturaron el MSI, decodificaron el bootstrap de PowerShell y rastrearon la carga dinámica de módulos Node.js. Extrajeron y descifraron el blob de configuración para recuperar una dirección C2 .onion. Un archivo admin.proto filtrado reveló funciones de MaaS como la gestión multi-operador y el monitoreo de monederos, y los analistas notaron un watchdog auto-regenerador más el uso de Tor para tráfico anonimizado.

Mitigación

Bloquee la ejecución de MSI no firmados de fuentes no confiables y monitoree HKCU…Run para nuevas entradas sospechosas. Detecte PowerShell que descargue cargas útiles de MSI desde dominios como cloud-verificate.com. Alerta en conhost.exe o node.exe lanzados con argumentos ocultos y en tor.exe apareciendo en endpoints que no lo requieran.

Respuesta

Aísle los hosts afectados, recolecte memoria para análisis de módulos en memoria y elimine la persistencia de HKCU Run. Revise %LOCALAPPDATA%LogicOptimizer para buscar artefactos de preparación y cualquier actividad programada de tor.exe, luego bloquee el endpoint .onion y los dominios/IPs relacionados. Cace a nivel empresarial artefactos del mismo instalador y cadenas de procesos.

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Comprobación de Telémetría y Línea de Base Pre-vuelo 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 DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta que espera la lógica de detección.

  • Narrativa del Ataque y Comandos:

    1. Objetivo: El atacante quiere iniciar una carga útil maliciosa de Node.js (bootstrap.js) sin levantar sospechas.
    2. Método: Usar un binario de Windows firmado (conhost.exe) como un proxy para lanzar node.exe en modo sin cabeza, pasando el script bootstrap como argumento.
    3. Pasos:
      • Colocar un bootstrap.js malicioso en un directorio de escritura (por ejemplo, %TEMP%).
      • Invocar conhost.exe con la cadena de argumento exacta que la regla observa.
      • El comando se ejecuta bajo el contexto del usuario actual, simulando un proceso legítimo de generación.
    # 1. Colocar bootstrap.js malicioso (contenido inofensivo simulado para prueba)
    $bootstrapPath = "$env:TEMPbootstrap.js"
    Set-Content -Path $bootstrapPath -Value "// placeholder de bootstrap malicioso"
    
    # 2. Ejecutar conhost.exe para generar node.exe con las banderas requeridas
    $conhost = "$env:windirsystem32conhost.exe"
    $args = '--headless "node.exe" "bootstrap.js"'
    Start-Process -FilePath $conhost -ArgumentList $args -WorkingDirectory $env:TEMP
  • Script de Prueba de Regresión:

    # -------------------------------------------------
    # Prueba de Regresión: Desencadenar Conhost → Bootstrap Node
    # -------------------------------------------------
    # Asegúrese de que Sysmon esté ejecutando y registrando eventos ProcessCreate.
    
    # Colocar un script de bootstrap ficticio
    $bootstrap = "$env:TEMPbootstrap.js"
    Set-Content -Path $bootstrap -Value "// contenido de prueba de bootstrap"
    
    # Definir la línea de comando exacta que la regla de detección busca
    $conhostPath = "$env:windirsystem32conhost.exe"
    $cmdLine = '--headless "node.exe" "bootstrap.js"'
    
    # Lanzar conhost con los argumentos de apariencia maliciosa
    Start-Process -FilePath $conhostPath -ArgumentList $cmdLine -WorkingDirectory $env:TEMP
    
    Write-Host "Simulación completada – verificar SIEM para la alerta."
  • Comandos de Limpieza:

    # Detener cualquier proceso node o conhost restante lanzado por la prueba
    Get-Process -Name node, conhost -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Eliminar el script de bootstrap temporal
    Remove-Item -Path "$env:TEMPbootstrap.js" -Force -ErrorAction SilentlyContinue
    
    Write-Host "Limpieza finalizada."