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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
**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와 같은 민감한 구성을 노출할 수 있습니다.
# 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.