# Az - Container Instances

{{#include ../../../banners/hacktricks-training.md}}

## Informations de base

Azure Container Instances (ACI) fournissent un **mode sans serveur, à la demande** pour exécuter des **conteneurs** dans le cloud Azure. Vous pouvez **déployer** un ou plusieurs conteneurs dans un groupe avec un **calcul évolutif**, des **options de mise en réseau**, et la flexibilité de se connecter à **d'autres services Azure** (comme Storage, Virtual Networks, ou Container Registries).

Étant donné qu'ils sont des charges de travail **éphémères**, vous n'avez pas besoin de gérer l'infrastructure VM sous-jacente — Azure s'en occupe pour vous. Cependant, d'un point de vue de **sécurité offensive**, il est crucial de comprendre comment les **permissions**, les **identités**, les **configurations réseau**, et les **logs** peuvent révéler des surfaces d'attaque et des configurations potentielles incorrectes.

### Configurations

- Pour créer un conteneur, il est possible d'utiliser une image publique, une image de conteneur d'un Azure Container Registry ou d'un dépôt externe, ce qui pourrait **nécessiter de configurer un mot de passe** pour y accéder.
- En ce qui concerne la mise en réseau, cela peut également avoir une **IP publique** ou être des **points de terminaison privés**.
- Il est également possible de configurer des paramètres docker courants tels que :
- **Variables d'environnement**
- **Volumes** (même à partir d'Azure Files)
- **Ports**
- **Limites de CPU et de mémoire**
- **Politique de redémarrage**
- **Exécuter en tant que privilégié**
- **Ligne de commande à exécuter**
- ...

## Énumération

> [!WARNING]
> Lors de l'énumération des ACI, vous pouvez révéler des configurations sensibles telles que des **variables d'environnement**, des **détails réseau**, ou des **identités gérées**. Soyez prudent avec les logs ou leur affichage.
```bash
# 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 "ls"

# Get yaml configuration of the container group
az container export  --name <container-name> --resource-group <res-group>
```

