Az - Container Instances

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

Azure Container Instances (ACI), temel altyapıyı yönetmeden bireysel konteynerleri hızlı bir şekilde çalıştırmanıza olanak tanıyan sunucusuz bir konteyner hizmetidir. Azure Container Apps (ACA), olay odaklı otomatik ölçeklendirme, yerleşik Dapr entegrasyonu ve karmaşık orkestrasyon senaryoları desteği gibi özelliklerle mikro hizmetler ve web uygulamaları çalıştırmak için tamamen yönetilen bir ortam sunarak bunu genişletir. Container App Jobs, belirli bir süre boyunca çalışan ve ardından çıkan kısa ömürlü, toplu veya planlı görevleri çalıştırmak için tasarlanmış ACA içindeki özel bir özelliktir.

Farklar:

  • ACI, minimum orkestrasyon gerektiren basit, bağımsız konteyner iş yükleri için idealdir.
  • ACA, otomatik ölçeklendirme ve hizmet keşfi gibi gelişmiş özelliklere sahip ölçeklenebilir, birbirine bağlı mikro hizmetler oluşturmak için en uygun olanıdır.
  • Container App Jobs, arka plan veya toplu işleri ACA ortamında çalıştırmak için düzenli bir yol sağlayarak tek seferlik veya planlı görevler üzerine odaklanır.

Yapılandırmalar

ACI için özel seçenekler:

  • Ağ ile ilgili olarak bu 3 seçenekten birini seçmek mümkündür:
  • Halka açık (varsayılan)
  • Özel (sadece VNet’ten erişilebilir)
  • Yok (ağ erişimi yok)

ACA için özel seçenekler:

  • Konteynerin trafiğini konteyner uygulama ortamına kısıtlamak veya halka açık bırakmak mümkündür.
  • Kimlik doğrulama için bir harici kimlik sağlayıcı (Microsoft, Facebook, Google ve Twitter) kullanmak mümkündür.
  • Uygulama gizli anahtarlarını (açık metin olarak veya bir MI ile erişim atayarak bir kasaya bağlantılar olarak) saklamak mümkündür.
  • Uygulamanın revizyonları ve kopyaları olabilir.
  • Bir konteyner kullanmak yerine belirli bir kaynak kodu veya artefakt üzerinden dağıtım yapmak mümkündür. Kaynak kodu için GitHub’a erişim verilmelidir. Artefaktlar için, uygulama oluşturulduktan sonra yüklenmesi mümkündür.

Görevler için özel seçenekler:

  • Tetikleme türü manuel, planlı veya olay tabanlı (bir kuyruğa mesaj gelmesi gibi) olabilir.

Ortak seçenekler:

  • Bir konteyner oluşturmak için halka açık bir görüntü, bir Azure Container Registry’den konteyner görüntüsü veya bir harici depo kullanmak mümkündür; bu, erişim için bir şifre yapılandırmayı gerektirebilir.
  • Bu, konteynerin yapılandırmasının hassas bilgiler içerebileceği anlamına gelir.
  • Ayrıca, aşağıdaki gibi yaygın docker ayarlarını yapılandırmak da mümkündür:
  • Çevre değişkenleri (hassas bilgiler için kontrol edin)
  • Hacimler (Azure Files’dan bile)
  • Açık portlar
  • CPU ve bellek sınırları
  • Yeniden başlatma politikası
  • Yetkili olarak çalıştır
  • Konteynerlerin çalıştırılacak komut satırını ve argümanlarını geçersiz kılmak (mevcut konteynerlerde de değiştirilebilir)

Sayım

Warning

Sayım yaparken, çevre değişkenleri, ağ detayları veya yönetilen kimlikler gibi hassas yapılandırmaları açığa çıkarabilirsiniz.

# 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>

Yetki Yükseltme & Sonrası İstismar

Az - Container Instances, Apps & Jobs Privesc

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin