Az - Container Instances
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Informations de base
Azure Container Instances (ACI) est un service de conteneurs sans serveur qui vous permet d'exécuter des conteneurs individuels rapidement sans gérer d'infrastructure sous-jacente. Azure Container Apps (ACA) étend cela en offrant un environnement entièrement géré pour exécuter des microservices et des applications web avec des fonctionnalités telles que l'autoscaling basé sur des événements, l'intégration Dapr intégrée et le support pour des scénarios d'orchestration complexes. Container App Jobs est une fonctionnalité spécialisée au sein d'ACA conçue pour exécuter des tâches de courte durée, par lots ou programmées qui s'exécutent pendant une période finie puis se terminent.
Différences :
- ACI est idéal pour des charges de travail de conteneurs simples et autonomes où une orchestration minimale est nécessaire.
- ACA est mieux adapté pour construire des microservices évolutifs et interconnectés avec des fonctionnalités avancées telles que l'autoscaling et la découverte de services.
- Container App Jobs se concentre sur des tâches ponctuelles ou programmées, offrant un moyen simplifié d'exécuter des travaux en arrière-plan ou par lots au sein de l'environnement ACA.
Configurations
Options spéciales pour ACI :
- En ce qui concerne le réseau, il est possible de sélectionner l'une de ces 3 options :
- Public (par défaut)
- Privé (accessible uniquement depuis le VNet)
- Aucun (aucun accès réseau)
Options spéciales pour ACA :
- Il est possible de restreindre le trafic vers le conteneur à l'environnement de l'application conteneur ou de le laisser public.
- Il est possible d'utiliser un fournisseur d'identité externe (Microsoft, Facebook, Google et Twitter) pour l'authentification.
- Il est possible de stocker les secrets de l'application (en texte clair dans l'application ou sous forme de liens vers un coffre-fort en assignant un MI avec accès).
- Il est possible d'avoir des révisions et des répliques de l'application.
- Il est possible de déployer à partir d'un code source ou d'un artefact spécifique au lieu d'utiliser un conteneur. Pour le code source, un accès à GitHub doit être accordé. Pour les artefacts, il est possible de les télécharger après avoir créé l'application.
Options spéciales pour jobs :
- Le type de déclencheur peut être manuel, programmé ou basé sur des événements (comme un message arrivant dans une file d'attente).
Options communes :
- Pour créer un conteneur, il est possible d'utiliser une image publique, une image de conteneur d'un registre de conteneurs Azure ou un dépôt externe, ce qui pourrait nécessiter de configurer un mot de passe pour y accéder.
- Cela signifie que la configuration du conteneur pourrait contenir des informations sensibles.
- Il est également possible de configurer des paramètres docker communs tels que :
- Variables d'environnement (vérifiez les informations sensibles)
- Volumes (même à partir d'Azure Files)
- Ports à exposer
- Limites de CPU et de mémoire
- Politique de redémarrage
- Exécuter en tant que privilégié
- Écraser la ligne de commande des conteneurs à exécuter et les arguments (peut également être modifié dans des conteneurs existants)
- ...
Énumération
warning
Lors de l'énumération, vous pourriez révéler des configurations sensibles telles que des variables d'environnement, des détails réseau ou des identités gérées.
# 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>
Escalade de privilèges et post-exploitation
Az - Container Instances, Apps & Jobs Privesc
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.