Az - Container Instances

Reading time: 6 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 का समर्थन करें

Basic Information

Azure Container Instances (ACI) एक सर्वरलेस कंटेनर सेवा है जो आपको बिना किसी अंतर्निहित बुनियादी ढांचे का प्रबंधन किए व्यक्तिगत कंटेनरों को तेजी से चलाने की अनुमति देती है। Azure Container Apps (ACA) इसे बढ़ाता है, जो माइक्रोसर्विसेज और वेब ऐप्स को चलाने के लिए एक पूरी तरह से प्रबंधित वातावरण प्रदान करता है, जिसमें इवेंट-ड्रिवन ऑटोस्केलिंग, अंतर्निहित Dapr एकीकरण, और जटिल ऑर्केस्ट्रेशन परिदृश्यों के लिए समर्थन जैसी सुविधाएँ शामिल हैं। Container App Jobs ACA के भीतर एक विशेष विशेषता है जो सीमित अवधि के लिए निष्पादित होने वाले अल्पकालिक, बैच, या अनुसूचित कार्यों को चलाने के लिए डिज़ाइन की गई है और फिर बाहर निकल जाती है।

Differences:

  • ACI सरल, स्वतंत्र कंटेनर कार्यभार के लिए आदर्श है जहाँ न्यूनतम ऑर्केस्ट्रेशन की आवश्यकता होती है।
  • ACA स्केलेबल, आपस में जुड़े माइक्रोसर्विसेज बनाने के लिए सबसे उपयुक्त है जिसमें ऑटोस्केलिंग और सेवा खोज जैसी उन्नत सुविधाएँ शामिल हैं।
  • Container App Jobs एक बार या अनुसूचित कार्यों पर ध्यान केंद्रित करते हैं, जो ACA वातावरण के भीतर बैकग्राउंड या बैच कार्यों को चलाने का एक सुव्यवस्थित तरीका प्रदान करते हैं।

Configurations

ACI के लिए विशेष विकल्प:

  • नेटवर्किंग के संबंध में, इनमें से 3 विकल्पों में से एक का चयन करना संभव है:
  • Public (डिफ़ॉल्ट)
  • Private (केवल VNet से सुलभ)
  • None (कोई नेटवर्क एक्सेस नहीं)

ACA के लिए विशेष विकल्प:

  • कंटेनर के लिए ट्रैफ़िक को कंटेनर ऐप वातावरण तक सीमित करना या इसे सार्वजनिक छोड़ना संभव है।
  • प्रमाणीकरण के लिए बाहरी पहचान प्रदाता (Microsoft, Facebook, Google, और Twitter) का उपयोग करना संभव है।
  • App secrets को स्टोर करना संभव है (स्पष्ट पाठ में ऐप या एक वॉल्ट के लिए लिंक के रूप में, जिस पर MI के साथ एक्सेस दिया गया हो)।
  • ऐप के संशोधन और प्रतिकृतियाँ होना संभव है।
  • एक विशिष्ट स्रोत कोड या आर्टिफैक्ट से तैनात करना संभव है, इसके बजाय कंटेनर का उपयोग करने के। स्रोत कोड के लिए, GitHub तक पहुंच दी जानी चाहिए। आर्टिफैक्ट के लिए, ऐप बनाने के बाद इसे अपलोड करना संभव है।

Jobs के लिए विशेष विकल्प:

  • ट्रिगर प्रकार मैनुअल, अनुसूचित या इवेंट-आधारित (जैसे किसी कतार में संदेश का आना) हो सकता है।

Common options:

  • एक कंटेनर बनाने के लिए, एक सार्वजनिक छवि, Azure Container Registry से एक कंटेनर छवि या एक बाहरी रिपॉजिटरी का उपयोग करना संभव है, जिसे एक्सेस करने के लिए पासवर्ड कॉन्फ़िगर करने की आवश्यकता हो सकती है
  • इसका मतलब है कि कंटेनर की कॉन्फ़िगरेशन में संवेदनशील जानकारी हो सकती है।
  • सामान्य डॉकर सेटिंग्स को कॉन्फ़िगर करना भी संभव है जैसे:
  • Environment variables (संवेदनशील जानकारी की जांच करें)
  • Volumes (Azure Files से भी)
  • Ports को उजागर करना
  • CPU और मेमोरी सीमाएँ
  • Restart policy
  • Run as privileged
  • कंटेनरों के कमांड लाइन को ओवरराइट करना और तर्क (मौजूदा कंटेनरों में भी संशोधित किया जा सकता है)
  • ...

Enumeration

warning

जब एन्यूमरेट करते हैं, तो आप संवेदनशील कॉन्फ़िगरेशन जैसे environment variables, network details, या managed identities को प्रकट कर सकते हैं।

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 का समर्थन करें