Az - Container Instances

Reading time: 5 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

기본 정보

**Azure Container Instances (ACI)**는 기본 인프라를 관리하지 않고도 개별 컨테이너를 신속하게 실행할 수 있는 서버리스 컨테이너 서비스입니다. **Azure Container Apps (ACA)**는 이벤트 기반 자동 확장, 내장 Dapr 통합 및 복잡한 오케스트레이션 시나리오 지원과 같은 기능을 갖춘 마이크로서비스 및 웹 앱을 실행하기 위한 완전 관리형 환경을 제공합니다. Container App Jobs는 유한한 기간 동안 실행되고 종료되는 단기, 배치 또는 예약 작업을 실행하기 위해 ACA 내에서 설계된 특수 기능입니다.

차이점:

  • ACI는 최소한의 오케스트레이션이 필요한 단순한 독립형 컨테이너 워크로드에 적합합니다.
  • ACA는 자동 확장 및 서비스 검색과 같은 고급 기능을 갖춘 확장 가능하고 상호 연결된 마이크로서비스를 구축하는 데 가장 적합합니다.
  • Container App Jobs는 일회성 또는 예약된 작업에 중점을 두어 ACA 환경 내에서 백그라운드 또는 배치 작업을 실행하는 간소화된 방법을 제공합니다.

구성

ACI에 대한 특별 옵션:

  • 네트워킹과 관련하여 다음 3가지 옵션 중 하나를 선택할 수 있습니다:
  • 공용 (기본값)
  • 사설 (VNet에서만 접근 가능)
  • 없음 (네트워크 접근 없음)

ACA에 대한 특별 옵션:

  • 컨테이너에 대한 트래픽을 제한하거나 공용으로 남길 수 있습니다.
  • 인증을 위해 외부 ID 공급자(Microsoft, Facebook, Google, Twitter)를 사용할 수 있습니다.
  • 앱 비밀을 저장할 수 있습니다 (앱의 일반 텍스트 또는 MI에 대한 접근 권한을 부여하여 금고에 대한 링크로).
  • 앱의 수정 및 복제본을 가질 수 있습니다.
  • 컨테이너를 사용하지 않고 특정 소스 코드 또는 아티팩트에서 배포할 수 있습니다. 소스 코드의 경우 GitHub에 대한 접근 권한이 부여되어야 합니다. 아티팩트의 경우 앱을 생성한 후 업로드할 수 있습니다.

작업에 대한 특별 옵션:

  • 트리거 유형은 수동, 예약 또는 이벤트 기반(예: 큐에 메시지가 도착하는 경우)일 수 있습니다.

공통 옵션:

  • 컨테이너를 생성하기 위해 공용 이미지, Azure Container Registry의 컨테이너 이미지 또는 외부 리포지토리를 사용할 수 있으며, 이 경우 접근을 위한 비밀번호를 구성해야 할 수 있습니다.
  • 이는 컨테이너의 구성이 민감한 정보를 포함할 수 있음을 의미합니다.
  • 또한 다음과 같은 일반 도커 설정을 구성할 수 있습니다:
  • 환경 변수 (민감한 정보 확인)
  • 볼륨 (Azure Files에서조차)
  • 노출할 포트
  • CPU 및 메모리 한도
  • 재시작 정책
  • 특권으로 실행
  • 컨테이너의 명령줄 및 인수 덮어쓰기 (기존 컨테이너에서도 수정 가능)
  • ...

열거

warning

열거할 때 환경 변수, 네트워크 세부정보 또는 관리 ID와 같은 민감한 구성을 노출할 수 있습니다.

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>

권한 상승 및 포스트 익스플로잇

Az - Container Instances, Apps & Jobs Privesc

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기