mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 15:05:44 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-containe
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Az - Container Instances
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## 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
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user