CrowdStrike Enquête sur l’Obfuscation des Commandes Shell sur VMware ESXi
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les adversaires ciblent de plus en plus les hyperviseurs VMware ESX avec une obfuscation sophistiquée des commandes shell conçue pour échapper à la détection. Les acteurs malveillants utilisent des techniques allant du codage hexadécimal basique aux chiffrements cryptographiques avancés et aux caractères Unicode invisibles injectés dans le shell BusyBox. Ces méthodes permettent aux attaquants d’exécuter des commandes malveillantes, notamment la désactivation des syslogs ou le chiffrement des machines virtuelles, tout en minimisant les traces lisibles dans les journaux shell standards.
Enquête
Les chercheurs de CrowdStrike ont évalué systématiquement 21 techniques différentes d’obfuscation dans un environnement ESX 7.0.3 contrôlé. Ils ont regroupé ces méthodes en six catégories : les séquences d’échappement, la génération de caractères, l’injection Unicode, le codage cryptographique, les charges utiles à clé d’infrastructure et les systèmes de codage alternatifs. La recherche a confirmé que ces techniques peuvent contourner la détection traditionnelle basée sur les mots-clés en exploitant les différences entre la façon dont les commandes sont analysées et exécutées.
Atténuation
Les équipes de sécurité doivent aller au-delà de la simple détection par mots-clés et adopter des règles de corrélation basées sur des expressions régulières qui identifient les schémas syntaxiques généralement associés à l’obfuscation. Les plateformes SIEM avancées telles que CrowdStrike Falcon Next-Gen SIEM peuvent aider à détecter ces comportements dans la télémétrie du shell ESX. Maintenir une base de référence fiable de l’activité administrative normale est également essentiel pour identifier les exécutions shell anormales.
Réponse
Si l’exécution de commandes obfusquées est détectée, les intervenants doivent isoler immédiatement l’hôte ESX affecté pour limiter les mouvements latéraux ou le chiffrement des VM. Les journaux shell doivent être analysés pour détecter les motifs d’obfuscation connus afin de reconstituer les commandes réellement exécutées. Les intervenants doivent également enquêter sur la persistance à travers des tâches planifiées ou des configurations système modifiées et vérifier l’intégrité du système de fichiers VMFS.
Flux d’attaque
Détections
Énumération possible du système ESXCLI [Windows] (via cmdline)
Proof of Value
Tentative possible d’énumération ou de modification du fichier de configuration SSHd (via cmdline)
Proof of Value
Énumération possible du système ESXCLI [Linux] (via cmdline)
Proof of Value
Rechargement suspect du service syslog ESXCLI [Linux] (via cmdline)
Proof of Value
Détection de commande obfusquée sur VMware ESX [Création de processus Linux]
Proof of Value
Exécution de simulation
Prérequis : Le contrôle pré-vol de la télémétrie et de la ligne de base doit avoir été passé.
Justification : 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 la narration doivent refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narration d’attaque et commandes : L’adversaire a obtenu un accès shell à un hôte VMware ESX. Pour éviter la détection par les outils de sécurité recherchant le mot-clé
esxcli, l’attaquant utilise uneawkcommande pour générer la chaîneesxclien utilisant des valeurs décimales ASCII puis la passe àsystem(). Cette technique est utilisée pour effectuer des changements de configuration (par exemple, réinitialiser les hôtes de log) tout en restant invisible pour les filtres simples de correspondance de motifs. -
Script de test de régression : Ce script exécute l’un des charges utiles spécifiques définis dans la logique de détection pour vérifier si la règle se déclenche.
#!/bin/bash # Script de simulation pour déclencher la règle 'Détection de commande obfusquée sur VMware ESX'. echo "[+] Début de la simulation : Exécution de commande obfusquée" # Payload 1 : Utilisation de printf dans un sous-shell pour cacher 'esxcli' echo "[+] Exécution du Payload 1 (obfuscation printf)..." $(printf "x65x73x78x63x6cx69") system syslog config get # Payload 2 : Utilisation de awk pour reconstruire 'esxcli' via des codes décimaux ASCII echo "[+] Exécution du Payload 2 (reconstruction ASCII awk)..." awk 'BEGIN{printf "%c%c%c%c%c%c",101,115,120,99,108,105} system " syslog config get"' echo "[+] Simulation complète. Vérifiez SIEM pour les alertes." -
Commandes de nettoyage : Puisque ces commandes sont conçues pour être non-destructives (en utilisant
getorconfig get), un nettoyage minimal est requis. Cependant, pour s’assurer qu’aucun changement persistant n’a été effectué si unesetcommande a été utilisée :# Aucune action destructrice n'a été entreprise dans cette simulation. # Si une commande 'set' a été utilisée, revenez à la configuration originale. echo "[+] Nettoyage : Aucun changement n'a été apporté à la configuration du système."