Az - Container Instances

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

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 <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>

Eskalacija privilegija i post eksploatacija

Az - Container Instances, Apps & Jobs Privesc

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks