Az - Container Instances

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Основна інформація

Azure Container Instances (ACI) - це безсерверний контейнерний сервіс, який дозволяє швидко запускати окремі контейнери без управління будь-якою підлягаючою інфраструктурою. Azure Container Apps (ACA) розширює це, пропонуючи повністю кероване середовище для запуску мікросервісів та веб-додатків з такими функціями, як автоматичне масштабування на основі подій, вбудована інтеграція Dapr та підтримка складних сценаріїв оркестрації. Container App Jobs - це спеціалізована функція в ACA, призначена для виконання короткочасних, пакетних або запланованих завдань, які виконуються протягом обмеженого часу, а потім завершуються.

Відмінності:

  • ACI ідеально підходить для простих, автономних контейнерних навантажень, де потрібно мінімальне оркестрування.
  • ACA найкраще підходить для створення масштабованих, взаємопов'язаних мікросервісів з розширеними функціями, такими як автоматичне масштабування та виявлення сервісів.
  • Container App Jobs зосереджуються на разових або запланованих завданнях, забезпечуючи спрощений спосіб виконання фонових або пакетних завдань у середовищі ACA.

Конфігурації

Спеціальні опції для ACI:

  • Щодо мережі, можна вибрати один з цих 3 варіантів:
  • Public (за замовчуванням)
  • Private (доступний лише з VNet)
  • None (без мережевого доступу)

Спеціальні опції для ACA:

  • Можна обмежити трафік до контейнера в середовищі контейнерного додатку або залишити його публічним.
  • Можна використовувати зовнішнього постачальника ідентичності (Microsoft, Facebook, Google та Twitter) для аутентифікації.
  • Можна зберігати секрети додатку (в чистому тексті або як посилання на сховище, призначаючи MI з доступом до нього).
  • Можна мати версії та репліки додатку.
  • Можна розгортати з конкретного джерела коду або артефакту замість використання контейнера. Для джерела коду потрібно надати доступ до GitHub. Для артефактів можна завантажити їх після створення додатку.

Спеціальні опції для завдань:

  • Тип тригера може бути ручним, запланованим або на основі подій (наприклад, при надходженні повідомлення в чергу).

Загальні опції:

  • Для створення контейнера можна використовувати публічний образ, образ контейнера з Azure Container Registry або зовнішнього репозиторію, що може вимагати налаштування пароля для доступу до нього.
  • Це означає, що конфігурація контейнера може містити чутливу інформацію.
  • Також можна налаштувати загальні налаштування docker, такі як:
  • Змінні середовища (перевірте на чутливу інформацію)
  • Томи (навіть з Azure Files)
  • Порти для відкриття
  • Обмеження CPU та пам'яті
  • Політика перезапуску
  • Запуск з привілейованими правами
  • Перезаписати командний рядок контейнерів для виконання та аргументи (може бути змінено також у існуючих контейнерах)
  • ...

Перерахування

warning

Під час перерахування ви можете виявити чутливі конфігурації, такі як змінні середовища, мережеві деталі або керовані ідентичності.

bash
# ACI
## 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 "/bin/sh" # Get a shell

## Get yaml configuration of the container group
az container export  --name <container-name> --resource-group <res-group> --file </path/local/file.yml>

# ACA
## List all container apps in the subscription
az containerapp list

## Show detailed information about a specific container app
az containerapp show --name <app-name> --resource-group <res-group>

## List app environments
az containerapp env list --resource-group <res-group>

## Fetch logs from a container app
az containerapp logs show --name <app-name> --resource-group <res-group>

## Get configured secrets
az containerapp secret list --name <app-name> --resource-group <res-group>
### Get value
az containerapp secret show --name <app-name> --resource-group <res-group> --secret-name <secret-name>

## Get authentication options
az containerapp auth  show --name <app-name> --resource-group <res-group>

## Get a shell
az containerapp exec --name <app-name> --resource-group <res-group> --command "sh"

## Get debugging shell
az containerapp debug --name <app-name> --resource-group <res-group>

# Jobs
## List all container apps jobs in a resource group
az containerapp job list --resource-group <res-group>

## Show detailed information about a specific container app job
az containerapp job show --name <job-name> --resource-group <res-group>

## Fetch logs from a container app job
az containerapp job logs show --name <job-name> --resource-group <res-group>

## Fetch executions from a container app job
az containerapp job execution list --name <job-name> --resource-group <res-group>
az containerapp job execution show --name <job-name> --resource-group <res-group> --job-execution-name <job-execution>

## Start a job execution (for manual jobs)
az containerapp job start --name <job-name> --resource-group <res-group>

Підвищення Привілеїв та Після Експлуатації

Az - Container Instances, Apps & Jobs Privesc

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks