mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 03:16:37 -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}}
|
||||
|
||||
## Informações Básicas
|
||||
|
||||
**Azure Container Instances (ACI)** é um serviço de contêiner sem servidor que permite executar contêineres individuais rapidamente sem gerenciar qualquer infraestrutura subjacente. **Azure Container Apps (ACA)** estende isso oferecendo um ambiente totalmente gerenciado para executar microsserviços e aplicativos da web com recursos como escalonamento automático baseado em eventos, integração Dapr embutida e suporte para cenários de orquestração complexos. **Container App Jobs** são um recurso especializado dentro do ACA projetado para executar tarefas de curta duração, em lote ou agendadas que são executadas por um período finito e, em seguida, saem.
|
||||
|
||||
Diferenças:
|
||||
- ACI é ideal para cargas de trabalho de contêiner **simples** e autônomas, onde uma orquestração mínima é necessária.
|
||||
- ACA é mais adequado para construir microsserviços escaláveis e interconectados com recursos avançados como escalonamento automático e descoberta de serviços.
|
||||
- Container App Jobs se concentram em **tarefas únicas ou agendadas**, proporcionando uma maneira simplificada de executar trabalhos em segundo plano ou em lote dentro do ambiente ACA.
|
||||
|
||||
### Configurações
|
||||
|
||||
Opções especiais para **ACI**:
|
||||
- Em relação à rede, é possível selecionar uma dessas 3 opções:
|
||||
- **Público** (padrão)
|
||||
- **Privado** (acessível apenas a partir da VNet)
|
||||
- **Nenhum** (sem acesso à rede)
|
||||
|
||||
Opções especiais para **ACA**:
|
||||
- É possível **restringir o tráfego** para o contêiner ao ambiente do aplicativo de contêiner ou deixá-lo público.
|
||||
- É possível usar um **provedor de identidade externo** (Microsoft, Facebook, Google e Twitter) para autenticação.
|
||||
- É possível **armazenar segredos do App** (em texto claro no aplicativo ou como links para um cofre atribuindo um MI com acesso a ele).
|
||||
- É possível ter **revisões e réplicas do aplicativo**.
|
||||
- É possível implantar a partir de um **código-fonte ou artefato específico** em vez de usar um contêiner. Para o código-fonte, deve-se conceder acesso ao GitHub. Para artefatos, é possível fazer o upload após criar o aplicativo.
|
||||
|
||||
Opções especiais para **jobs**:
|
||||
- O tipo de gatilho pode ser **manual, agendado ou baseado em eventos** (como uma mensagem chegando em uma fila).
|
||||
|
||||
Opções comuns:
|
||||
- Para criar um contêiner, é possível usar uma imagem pública, uma imagem de contêiner de um Azure Container Registry ou um repositório externo, que pode **exigir a configuração de uma senha** para acessá-lo.
|
||||
- Isso significa que a configuração do contêiner pode conter informações sensíveis.
|
||||
- Também é possível configurar configurações comuns do docker, como:
|
||||
- **Variáveis de ambiente** (verifique informações sensíveis)
|
||||
- **Volumes** (mesmo de Azure Files)
|
||||
- **Portas** a expor
|
||||
- **Limites de CPU e memória**
|
||||
- **Política de reinício**
|
||||
- **Executar como privilegiado**
|
||||
- Sobrescrever a **linha de comando do contêiner para executar e argumentos** (pode ser modificado em contêineres existentes também)
|
||||
- ...
|
||||
|
||||
## Enumeração
|
||||
|
||||
> [!WARNING]
|
||||
> Ao enumerar, você pode revelar configurações sensíveis, como **variáveis de ambiente**, **detalhes da rede** ou **identidades gerenciadas**.
|
||||
```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>
|
||||
```
|
||||
## Escalação de Privilégios & Pós-Exploração
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user