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..23fbc8653 --- /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}} + +## Osnovne informacije + +**Azure Container Instances (ACI)** je serverless usluga kontejnera koja vam omogućava da brzo pokrenete pojedinačne kontejnere bez upravljanja bilo kojom infrastrukturom. **Azure Container Apps (ACA)** proširuje ovo nudeći potpuno upravljano okruženje za pokretanje mikroservisa i web aplikacija sa funkcijama kao što su automatsko skaliranje zasnovano na događajima, ugrađena Dapr integracija i podrška za složene orkestracione scenarije. **Container App Jobs** su specijalizovana funkcija unutar ACA dizajnirana za pokretanje kratkotrajnih, serijskih ili zakazanih zadataka koji se izvršavaju tokom ograničenog vremena i zatim izlaze. + +Razlike: +- ACI je idealan za **jednostavne**, samostalne radne opterećenja kontejnera gde je potrebna minimalna orkestracija. +- ACA je najbolje prilagođena za izgradnju skalabilnih, međusobno povezanih mikroservisa sa naprednim funkcijama kao što su automatsko skaliranje i otkrivanje usluga. +- Container App Jobs se fokusiraju na **jednokratne ili zakazane zadatke**, pružajući pojednostavljen način za pokretanje pozadinskih ili serijskih poslova unutar ACA okruženja. + +### Konfiguracije + +Specijalne opcije za **ACI**: +- U vezi sa mrežom, moguće je odabrati jednu od ovih 3 opcije: +- **Javna** (podrazumevano) +- **Privatna** (pristup samo sa VNet-a) +- **Nema** (nema pristupa mreži) + +Specijalne opcije za **ACA**: +- Moguće je **ograničiti saobraćaj** do kontejnera na okruženje kontejner aplikacije ili ga ostaviti javnim. +- Moguće je koristiti **spoljašnjeg provajdera identiteta** (Microsoft, Facebook, Google i Twitter) za autentifikaciju. +- Moguće je **čuvati tajne aplikacije** (u čistom tekstu ili kao linkove ka trezoru dodeljujući MI sa pristupom). +- Moguće je imati **revizije i replike aplikacije**. +- Moguće je implementirati iz specifičnog **izvora koda ili artefakta** umesto korišćenja kontejnera. Za izvorni kod, mora se omogućiti pristup Gihubu. Za artefakte, moguće je učitati ih nakon kreiranja aplikacije. + +Specijalne opcije za **poslove**: +- Tip okidača može biti **ručni, zakazani ili zasnovan na događaju** (kao što je dolazak poruke u red). + +Zajedničke opcije: +- Da biste kreirali kontejner, moguće je koristiti javnu sliku, sliku kontejnera iz Azure Container Registry ili spoljašnje skladište, što može **zahtevati konfiguraciju lozinke** za pristup. +- To znači da konfiguracija kontejnera može sadržati osetljive informacije. +- Takođe je moguće konfigurirati uobičajene docker postavke kao što su: +- **Promenljive okruženja** (proverite za osetljive informacije) +- **Volumeni** (čak i iz Azure Files) +- **Portovi** za izlaganje +- **CPU i memorijski limiti** +- **Politika ponovnog pokretanja** +- **Pokreni kao privilegovan** +- Prepisati **komandnu liniju kontejnera za pokretanje i argumente** (može se modifikovati i u postojećim kontejnerima) +- ... + +## Enumeracija + +> [!WARNING] +> Kada enumerišete, možete otkriti osetljive konfiguracije kao što su **promenljive okruženja**, **mrežni detalji** ili **upravljani identiteti**. +```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 +``` +## Eskalacija privilegija i post eksploatacija + +{{#ref}} +../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}}