mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07: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}}
|
||||
|
||||
## 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 <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>
|
||||
```
|
||||
## Eskalacja Uprawnień i Po Eksploatacji
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user