From 76d82043175c9fe0abed8ab578a8d5629a073e83 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 25 Feb 2025 22:31:00 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-containe --- .../az-container-instances-apps-jobs.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md new file mode 100644 index 000000000..364249112 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md @@ -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 --resource-group + +## Fetch logs from a container +az container logs --name --resource-group + +## Execute a command in a running container and get the output +az container exec --name --resource-group --exec-command "/bin/sh" # Get a shell + +## Get yaml configuration of the container group +az container export --name --resource-group --file + +# ACA +## List all container apps in the subscription +az containerapp list + +## Show detailed information about a specific container app +az containerapp show --name --resource-group + +## List app environments +az containerapp env list --resource-group + +## Fetch logs from a container app +az containerapp logs show --name --resource-group + +## Get configured secrets +az containerapp secret list --name --resource-group +### Get value +az containerapp secret show --name --resource-group --secret-name + +## Get authentication options +az containerapp auth show --name --resource-group + +## Get a shell +az containerapp exec --name --resource-group --command "sh" + +## Get debugging shell +az containerapp debug --name --resource-group + +# Jobs +## List all container apps jobs in a resource group +az containerapp job list --resource-group + +## Show detailed information about a specific container app job +az containerapp job show --name --resource-group + +## Fetch logs from a container app job +az containerapp job logs show --name --resource-group + +## Fetch executions from a container app job +az containerapp job execution list --name --resource-group +az containerapp job execution show --name --resource-group --job-execution-name + +## Start a job execution (for manual jobs) +az containerapp job start --name --resource-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}}