diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md new file mode 100644 index 000000000..809ad0952 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md @@ -0,0 +1,116 @@ +# Az - Container Instances + +{{#include ../../../banners/hacktricks-training.md}} + +## Основна інформація + +**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 --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 "/bin/sh" # Get a shell + +## Get yaml configuration of the container group +az container export --name --resource-group --file + +# ACA +## List all container apps in the subscription +az containerapp list + +## Show detailed information about a specific container app +az containerapp show --name --resource-group + +## List app environments +az containerapp env list --resource-group + +## Fetch logs from a container app +az containerapp logs show --name --resource-group + +## Get configured secrets +az containerapp secret list --name --resource-group +### Get value +az containerapp secret show --name --resource-group --secret-name + +## Get authentication options +az containerapp auth show --name --resource-group + +## Get a shell +az containerapp exec --name --resource-group --command "sh" + +## Get debugging shell +az containerapp debug --name --resource-group + +# Jobs +## List all container apps jobs in a resource group +az containerapp job list --resource-group + +## Show detailed information about a specific container app job +az containerapp job show --name --resource-group + +## Fetch logs from a container app job +az containerapp job logs show --name --resource-group + +## Fetch executions from a container app job +az containerapp job execution list --name --resource-group +az containerapp job execution show --name --resource-group --job-execution-name + +## Start a job execution (for manual jobs) +az containerapp job start --name --resource-group +``` +## Підвищення Привілеїв та Після Експлуатації + +{{#ref}} +../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}}