mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 13:43:24 -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}}
|
||||
|
||||
## Información Básica
|
||||
|
||||
**Azure Container Instances (ACI)** es un servicio de contenedores sin servidor que te permite ejecutar contenedores individuales rápidamente sin gestionar ninguna infraestructura subyacente. **Azure Container Apps (ACA)** amplía esto al ofrecer un entorno completamente gestionado para ejecutar microservicios y aplicaciones web con características como escalado automático basado en eventos, integración Dapr incorporada y soporte para escenarios de orquestación complejos. **Container App Jobs** son una característica especializada dentro de ACA diseñada para ejecutar tareas de corta duración, por lotes o programadas que se ejecutan por un período finito y luego finalizan.
|
||||
|
||||
Diferencias:
|
||||
- ACI es ideal para **cargas de trabajo de contenedores simples** y autónomas donde se necesita una orquestación mínima.
|
||||
- ACA es más adecuada para construir microservicios escalables e interconectados con características avanzadas como escalado automático y descubrimiento de servicios.
|
||||
- Container App Jobs se centran en **tareas únicas o programadas**, proporcionando una forma simplificada de ejecutar trabajos en segundo plano o por lotes dentro del entorno ACA.
|
||||
|
||||
### Configuraciones
|
||||
|
||||
Opciones especiales para **ACI**:
|
||||
- En cuanto a la red, es posible seleccionar una de estas 3 opciones:
|
||||
- **Pública** (predeterminado)
|
||||
- **Privada** (solo accesible desde la VNet)
|
||||
- **Ninguna** (sin acceso a la red)
|
||||
|
||||
Opciones especiales para **ACA**:
|
||||
- Es posible **restringir el tráfico** al contenedor al entorno de la aplicación de contenedor o dejarlo público.
|
||||
- Es posible usar un **proveedor de identidad externo** (Microsoft, Facebook, Google y Twitter) para la autenticación.
|
||||
- Es posible **almacenar secretos de la aplicación** (en texto claro la aplicación o como enlaces a un vault asignando un MI con acceso sobre él).
|
||||
- Es posible tener **revisiones y réplicas de la aplicación**.
|
||||
- Es posible desplegar desde un **código fuente o artefacto específico** en lugar de usar un contenedor. Para el código fuente, se debe dar acceso a GitHub. Para artefactos, es posible subirlo después de crear la aplicación.
|
||||
|
||||
Opciones especiales para **jobs**:
|
||||
- El tipo de activador puede ser **manual, programado o basado en eventos** (como la llegada de un mensaje en una cola).
|
||||
|
||||
Opciones comunes:
|
||||
- Para crear un contenedor, es posible usar una imagen pública, una imagen de contenedor de un Azure Container Registry o un repositorio externo, lo que podría **requerir configurar una contraseña** para acceder a él.
|
||||
- Esto significa que la configuración del contenedor podría contener información sensible.
|
||||
- También es posible configurar configuraciones comunes de docker como:
|
||||
- **Variables de entorno** (verificar información sensible)
|
||||
- **Volúmenes** (incluso de Azure Files)
|
||||
- **Puertos** a exponer
|
||||
- **Límites de CPU y memoria**
|
||||
- **Política de reinicio**
|
||||
- **Ejecutar como privilegiado**
|
||||
- Sobrescribir la **línea de comandos del contenedor para ejecutar y argumentos** (también se puede modificar en contenedores existentes)
|
||||
- ...
|
||||
|
||||
## Enumeración
|
||||
|
||||
> [!WARNING]
|
||||
> Al enumerar, podrías revelar configuraciones sensibles como **variables de entorno**, **detalles de red** o **identidades gestionadas**.
|
||||
```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>
|
||||
```
|
||||
## Escalación de Privilegios y Post Explotación
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user