Az - Container Instances

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

基本信息

Azure Container Instances (ACI) 是一种无服务器容器服务,允许您快速运行单个容器,而无需管理任何底层基础设施。 Azure Container Apps (ACA) 通过提供一个完全托管的环境来扩展这一点,以运行微服务和 Web 应用,具有事件驱动的自动扩展、内置 Dapr 集成和对复杂编排场景的支持等功能。 Container App Jobs 是 ACA 中的一个专门功能,旨在运行短暂的、批处理的或计划的任务,这些任务在有限的时间内执行,然后退出。

区别:

  • ACI 适合 简单、独立的容器工作负载,所需的编排最少。
  • ACA 最适合构建可扩展的、互联的微服务,具有自动扩展和服务发现等高级功能。
  • Container App Jobs 专注于 一次性或计划任务,提供了一种简化的方式在 ACA 环境中运行后台或批处理作业。

配置

ACI 的特殊选项:

  • 关于网络,可以选择以下 3 个选项之一:
  • 公共(默认)
  • 私有(仅可从 VNet 访问)
  • (无网络访问)

ACA 的特殊选项:

  • 可以 限制流量 到容器应用环境或保持其公开。
  • 可以使用 外部身份提供者(Microsoft、Facebook、Google 和 Twitter)进行身份验证。
  • 可以 存储应用机密(以明文形式存储应用或作为指向保管库的链接,分配具有访问权限的 MI)。
  • 可以拥有 应用的修订和副本
  • 可以从特定的 源代码或工件 部署,而不是使用容器。对于源代码,必须提供对 GitHub 的访问权限。对于工件,可以在创建应用后上传。

作业 的特殊选项:

  • 触发类型可以是 手动、计划或基于事件(例如,消息到达队列时)。

常见选项:

  • 为了创建容器,可以使用公共镜像、来自 Azure 容器注册表的容器镜像或外部存储库,这可能 需要配置密码 以访问它。
  • 这意味着容器的配置可能包含敏感信息。
  • 还可以配置常见的 Docker 设置,例如:
  • 环境变量(检查敏感信息)
  • (甚至来自 Azure Files)
  • 要暴露的端口
  • CPU 和内存限制
  • 重启策略
  • 以特权身份运行
  • 覆盖容器的 命令行和参数(也可以在现有容器中修改)

枚举

Warning

在枚举时,您可能会泄露敏感配置,例如 环境变量网络详细信息托管身份

# 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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks