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..970664d14 --- /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}} + +## Podstawowe informacje + +**Azure Container Instances (ACI)** to bezserwerowa usługa kontenerowa, która pozwala na szybkie uruchamianie pojedynczych kontenerów bez zarządzania jakąkolwiek infrastrukturą. **Azure Container Apps (ACA)** rozszerza to, oferując w pełni zarządzane środowisko do uruchamiania mikroserwisów i aplikacji internetowych z funkcjami takimi jak automatyczne skalowanie oparte na zdarzeniach, wbudowana integracja Dapr oraz wsparcie dla złożonych scenariuszy orkiestracji. **Container App Jobs** to specjalizowana funkcja w ACA zaprojektowana do uruchamiania krótkotrwałych, wsadowych lub zaplanowanych zadań, które wykonują się przez określony czas, a następnie kończą. + +Różnice: +- ACI jest idealne dla **prosty**, samodzielnych obciążeń kontenerowych, gdzie potrzebna jest minimalna orkiestracja. +- ACA najlepiej nadaje się do budowania skalowalnych, połączonych mikroserwisów z zaawansowanymi funkcjami, takimi jak automatyczne skalowanie i odkrywanie usług. +- Container App Jobs koncentrują się na **jednorazowych lub zaplanowanych zadaniach**, zapewniając uproszczony sposób uruchamiania zadań w tle lub wsadowych w środowisku ACA. + +### Konfiguracje + +Specjalne opcje dla **ACI**: +- W odniesieniu do sieci możliwe jest wybranie jednej z tych 3 opcji: +- **Publiczny** (domyślny) +- **Prywatny** (dostępny tylko z VNet) +- **Brak** (brak dostępu do sieci) + +Specjalne opcje dla **ACA**: +- Możliwe jest **ograniczenie ruchu** do kontenera do środowiska aplikacji kontenerowej lub pozostawienie go publicznym. +- Możliwe jest użycie **zewnętrznego dostawcy tożsamości** (Microsoft, Facebook, Google i Twitter) do uwierzytelniania. +- Możliwe jest **przechowywanie sekretów aplikacji** (w postaci jawnej lub jako linki do skarbca przypisując MI z dostępem do niego). +- Możliwe jest posiadanie **rewizji i replik aplikacji**. +- Możliwe jest wdrożenie z konkretnego **kodu źródłowego lub artefaktu** zamiast używania kontenera. W przypadku kodu źródłowego należy zapewnić dostęp do GitHub. W przypadku artefaktów możliwe jest ich przesłanie po utworzeniu aplikacji. + +Specjalne opcje dla **zadań**: +- Typ wyzwalacza może być **ręczny, zaplanowany lub oparty na zdarzeniach** (np. przybycie wiadomości do kolejki). + +Wspólne opcje: +- Aby utworzyć kontener, można użyć publicznego obrazu, obrazu kontenera z Azure Container Registry lub zewnętrznego repozytorium, co może **wymagać skonfigurowania hasła** do uzyskania dostępu. +- Oznacza to, że konfiguracja kontenera może zawierać wrażliwe informacje. +- Możliwe jest również skonfigurowanie wspólnych ustawień dockera, takich jak: +- **Zmienne środowiskowe** (sprawdź pod kątem wrażliwych informacji) +- **Wolumeny** (nawet z Azure Files) +- **Porty** do wystawienia +- **Limity CPU i pamięci** +- **Polityka ponownego uruchamiania** +- **Uruchom jako uprzywilejowany** +- Nadpisz **wiersz poleceń kontenera do uruchomienia i argumenty** (można modyfikować również w istniejących kontenerach) +- ... + +## Enumeracja + +> [!WARNING] +> Podczas enumeracji możesz ujawnić wrażliwe konfiguracje, takie jak **zmienne środowiskowe**, **szczegóły sieci** lub **zarządzane tożsamości**. +```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 +``` +## Eskalacja Uprawnień i Po Eksploatacji + +{{#ref}} +../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}}