Exécution de Commandes sur une VM Azure via une Extension Salt Minion Tiers
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un attaquant avec Microsoft.Compute/virtualMachines/extensions/write les autorisations peut abuser des extensions tierces légitimes pour exécuter du code arbitraire sur les machines virtuelles Azure. En déployant l’extension Salt Minion et en la connectant à un Salt Master malveillant, l’attaquant peut pousser des états malveillants vers des systèmes ciblés et obtenir un accès root ou au niveau SYSTÈME. Cette technique permet une exécution de commandes furtive qui peut se fondre dans l’automatisation administrative normale.
Enquête
Le rapport présente une attaque de preuve de concept dans laquelle un Salt Master malveillant est configuré pour contrôler des machines virtuelles Azure. L’enquête montre comment l’extension Salt Minion est déployée via l’Azure CLI et configurée pour communiquer sur les ports 4505 et 4506. Les chercheurs exécutent ensuite un état Salt malveillant qui utilise curl pour exfiltrer des jetons d’identité gérés vers un service d’interaction hors bande.
Atténuation
Les organisations doivent restreindre strictement les rôles incluant les autorisations d’écriture d’extension, y compris Propriétaire, Contributeur et Contributeur à la Machine Virtuelle. Appliquer le principe du moindre privilège est essentiel pour empêcher le déploiement d’extensions non autorisées. Les équipes de sécurité doivent également surveiller les journaux d’activité Azure pour détecter des opérations d’écriture d’extensions de machine virtuelle suspectes et des installations inattendues d’extensions tierces.
Réponse
Si cette activité est détectée, les équipes de sécurité doivent immédiatement révoquer les autorisations de l’identité responsable du déploiement de l’extension. Consultez les journaux d’activité Azure pour déterminer l’adresse IP source, la machine virtuelle affectée et la configuration de l’extension. Effectuez une analyse judiciaire des points de terminaison sur le système compromis pour évaluer l’exécution des commandes, identifier les informations d’identification volées et détecter toute persistance non autorisée.
Flux d’attaque
Détections
Python lance des processus suspects (via process_creation)
Voir
Commande et Contrôle Suspect par Requête vers un Domaine d’Interactions Hors Bande (via dns)
Voir
Exécution de Commande sur Azure VM (via azureactivity)
Voir
IOC (SourceIP) pour détecter : Exécution de Commande sur Azure VM utilisant des Extensions Tierces – Salt Minion
Voir
IOC (DestinationIP) pour détecter : Exécution de Commande sur Azure VM utilisant des Extensions Tierces – Salt Minion
Voir
Détecter le Déploiement Non Autorisé d’Extensions VM Malveillantes dans Azure [Journaux d’Activité Azure]
Voir
Exécution de Simulation
Pré-requis : La Vérification Préalable de Télémétrie & Baseline doit être réussie.
Raison : 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 TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection. Les exemples abstraits ou non liés entraîneront un mauvais diagnostic.
-
Narration d’Attaque & Commandes : L’adversaire a obtenu des autorisations suffisantes au sein du locataire Azure (par exemple, via un Principal de Service compromis ou un Compte Utilisateur avec des rôles ‘Contributeur à la Machine Virtuelle’). Pour établir une tête de pont et exécuter des commandes directement sur une machine virtuelle cible sans accès SSH/RDP traditionnel, l’adversaire choisit de déployer une « Extension de Script Personnalisé ». Cette technique est extrêmement efficace pour contourner les contrôles réseau basés sur les points de terminaison. L’adversaire exécutera une commande Azure CLI pour ‘écrire’ une nouvelle extension sur la VM cible. Cette action déclenchera l’opération
MICROSOFT.COMPUTE/VIRTUALMACHINES/EXTENSIONS/WRITEdans les journaux d’activité Azure, qui est la télémétrie exacte que notre règle de détection est conçue pour suivre. -
Script de Test de Régression :
# Simulation : Déploiement d'une fausse extension pour déclencher la logique de détection 'EXTENSIONS/WRITE' # Remplacez les variables par les valeurs de votre environnement de test réel RESOURCE_GROUP="TestRG" VM_NAME="TestVM" EXTENSION_NAME="MaliciousSaltMinionSim" echo "Démarrage de la simulation : Déploiement de l'extension $EXTENSION_NAME sur $VM_NAME..." az vm extension set --resource-group $RESOURCE_GROUP --vm-name $VM_NAME --name $EXTENSION_NAME --publisher Microsoft.Azure.Extensions --settings '{"commandToExecute": "echo "Simulation Successful" > /tmp/pwned.txt"}' echo "Commande de simulation envoyée. Vérifiez les journaux d'activité Azure pour MICROSOFT.COMPUTE/VIRTUALMACHINES/EXTENSIONS/WRITE" -
Commandes de Nettoyage :
# Nettoyage : Supprimer l'extension malveillante simulée pour rétablir l'état initial de l'environnement RESOURCE_GROUP="TestRG" VM_NAME="TestVM" EXTENSION_NAME="MaliciousSaltMinionSim" echo "Nettoyage en cours : Suppression de l'extension $EXTENSION_NAME..." az vm extension delete --resource-group $RESOURCE_GROUP --vm-name $VM_NAME --name $EXTENSION_NAME echo "Nettoyage terminé."