Az - Container Instances

Reading time: 5 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Grundinformationen

Azure Container Instances (ACI) ist ein serverloser Container-Dienst, der es Ihnen ermöglicht, einzelne Container schnell auszuführen, ohne die zugrunde liegende Infrastruktur verwalten zu müssen. Azure Container Apps (ACA) erweitert dies, indem es eine vollständig verwaltete Umgebung für das Ausführen von Mikrodiensten und Webanwendungen mit Funktionen wie ereignisgesteuertem Autoscaling, integrierter Dapr-Integration und Unterstützung für komplexe Orchestrierungsszenarien bietet. Container App Jobs sind eine spezialisierte Funktion innerhalb von ACA, die für das Ausführen von kurzlebigen, Batch- oder geplanten Aufgaben konzipiert ist, die für einen bestimmten Zeitraum ausgeführt werden und dann beendet werden.

Unterschiede:

  • ACI ist ideal für einfache, eigenständige Container-Workloads, bei denen minimale Orchestrierung erforderlich ist.
  • ACA eignet sich am besten für den Aufbau skalierbarer, miteinander verbundener Mikrodienste mit erweiterten Funktionen wie Autoscaling und Dienstentdeckung.
  • Container App Jobs konzentrieren sich auf einmalige oder geplante Aufgaben und bieten eine vereinfachte Möglichkeit, Hintergrund- oder Batch-Jobs innerhalb der ACA-Umgebung auszuführen.

Konfigurationen

Besondere Optionen für ACI:

  • In Bezug auf das Netzwerk ist es möglich, eine dieser 3 Optionen auszuwählen:
  • Öffentlich (Standard)
  • Privat (nur vom VNet aus zugänglich)
  • Keine (kein Netzwerkzugang)

Besondere Optionen für ACA:

  • Es ist möglich, den Verkehr zum Container auf die Container-App-Umgebung zu beschränken oder ihn öffentlich zu lassen.
  • Es ist möglich, einen externen Identitätsanbieter (Microsoft, Facebook, Google und Twitter) für die Authentifizierung zu verwenden.
  • Es ist möglich, App-Geheimnisse (im Klartext oder als Links zu einem Tresor, dem ein MI mit Zugriff zugewiesen ist) zu speichern.
  • Es ist möglich, Revisionen und Replikate der App zu haben.
  • Es ist möglich, aus einem bestimmten Quellcode oder Artefakt zu deployen, anstatt einen Container zu verwenden. Für den Quellcode muss der Zugriff auf GitHub gewährt werden. Für Artefakte ist es möglich, diese nach der Erstellung der App hochzuladen.

Besondere Optionen für Jobs:

  • Der Auslösertyp kann manuell, geplant oder ereignisbasiert sein (wie das Eintreffen einer Nachricht in einer Warteschlange).

Gemeinsame Optionen:

  • Um einen Container zu erstellen, ist es möglich, ein öffentliches Image, ein Container-Image aus einem Azure Container Registry oder ein externes Repository zu verwenden, was möglicherweise eine Passwortkonfiguration zum Zugriff erfordert.
  • Das bedeutet, dass die Konfiguration des Containers sensible Informationen enthalten könnte.
  • Es ist auch möglich, gängige Docker-Einstellungen zu konfigurieren, wie:
  • Umgebungsvariablen (auf sensible Informationen überprüfen)
  • Volumes (auch von Azure Files)
  • Ports zum Freigeben
  • CPU- und Speicherkapazitätsgrenzen
  • Neustartpolitik
  • Als privilegiert ausführen
  • Befehlszeilen für Container überschreiben und Argumente (kann auch in bestehenden Containern geändert werden)
  • ...

Aufzählung

warning

Bei der Aufzählung könnten Sie sensible Konfigurationen wie Umgebungsvariablen, Netzwerkdetails oder verwaltete Identitäten offenbaren.

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>

Privilegienerhöhung & Nachausnutzung

Az - Container Instances, Apps & Jobs Privesc

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks