Translated ['src/pentesting-cloud/azure-security/az-services/az-automati

This commit is contained in:
Translator
2025-02-12 13:50:40 +00:00
parent 1c69411d6c
commit 0fe3c49c3f
4 changed files with 36 additions and 36 deletions

View File

@@ -1,14 +1,14 @@
# Az - Automatiseringsrekeninge
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Basiese Inligting
Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomatieseer** soos hulpbronbestuur, konfigurasie en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibrid werkersgroepe** om outomatiserings **take** uit te voer, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomatieseer** soos hulpbronbestuur, konfigurasie, en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibrid werkersgroepe** om outomatiserings **take** uit te voer, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
### Instellings
- **Geloofsbriewe**: Die wagwoord is slegs beskikbaar binne 'n runbook binne die automatiseringsrekening, dit word gebruik om **gebruikersname en wagwoorde veilig te stoor**.
- **Geloofsbriewe**: Die wagwoord is slegs binne 'n runbook binne die automatiseringsrekening toeganklik, dit word gebruik om **gebruikersname en wagwoorde veilig te stoor**.
- **Veranderlikes**: Gebruik om **konfigurasie data** te stoor wat in runbooks gebruik kan word. Dit kan ook sensitiewe inligting soos API sleutels wees. As die veranderlike **versleuteld gestoor** is, is dit slegs beskikbaar binne 'n runbook binne die automatiseringsrekening.
- **Sertifikate**: Gebruik om **sertifikate** te stoor wat in runbooks gebruik kan word.
- **Verbindings**: Gebruik om **verbindinginligting** na eksterne dienste te stoor. Dit kan **sensitiewe inligting** bevat.
@@ -16,9 +16,9 @@ Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat
### Runbooks & Take
'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan in PowerShell, Python, of grafiese redigeerders geskryf word. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatiseer.
'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan in PowerShell, Python, of grafiese redigeerders geskryf word. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatisseer.
In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (soos geloofsbriewe) bevat.
In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (soos geloofsbriewe) voorkom.
'n **Taak is 'n instansie van 'n Runbook-uitvoering**. Wanneer jy 'n Runbook uitvoer, word 'n Taak geskep om daardie uitvoering te volg. Elke taak sluit in:
@@ -26,7 +26,7 @@ In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (
- **Uitset**: Die resultaat van die Runbook-uitvoering.
- **Begin- en Eindtyd**: Wanneer die taak begin en voltooi is.
'n Taak bevat die **uitset** van die **Runbook**-uitvoering. As jy die **take** kan **lees**, doen dit, aangesien hulle die **uitset** van die uitvoering bevat (potensieel **sensitiewe inligting**).
'n Taak bevat die **uitset** van die **Runbook**-uitvoering. As jy die **take** kan **lees**, doen dit aangesien hulle die **uitset** van die uitvoering bevat (potensieel **sensitiewe inligting**).
### Skedules & Webhooks
@@ -42,13 +42,13 @@ Dit laat toe om Runbooks van **Github, Azure Devops (Git) en Azure Devops (TFVC)
Wanneer die sinkronisasie geaktiveer is, word in die **Github-repo 'n webhook geskep** om die sinkronisasie te aktiveer elke keer as 'n push-gebeurtenis plaasvind. Voorbeeld van 'n webhook-URL: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
Let daarop dat hierdie webhooks **nie sigbaar** sal wees wanneer webhooks in die geassosieerde runbooks na die Github-repo gelys word nie. Let ook daarop dat dit **nie moontlik is om die repo-URL** van 'n bronbeheer te verander nadat dit geskep is nie.
Let daarop dat hierdie webhooks **nie sigbaar sal wees** wanneer webhooks in die geassosieerde runbooks na die Github-repo gelys word nie. Let ook daarop dat dit **nie moontlik is om die repo-URL** van 'n bronbeheer te verander sodra dit geskep is nie.
Ten einde vir die geconfigureerde bronbeheer om te werk, moet die **Azure Automatiseringsrekening** 'n bestuurde identiteit (stelsel of gebruiker) met die **`Contributor`** rol hê. Boonop, om 'n gebruiker bestuurde identiteit aan die Automatiseringsrekening toe te ken, is dit nodig om die kliënt-ID van die gebruiker MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** aan te dui.
### Tydslope
### Tydsone Omgewings
Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope te kies. Standaard is die volgende tydslope beskikbaar:
Wanneer 'n Runbook geskep word, is dit moontlik om die tydsone omgewing te kies. Standaard is die volgende tydsone omgewings beskikbaar:
- **Powershell 5.1**
- **Powershell 7.1**
@@ -57,7 +57,7 @@ Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope te kies. Standaa
- **Python 3.8**
- **Python 2.7**
Dit is egter ook moontlik om **jou eie omgewings te skep**, met een van hierdie as 'n basis. In die geval van python, is dit moontlik om `.whl` pakkette na die omgewing op te laai wat gebruik sal word. In die geval van PowerShell, is dit moontlik om `.zip` pakkette met die modules op te laai wat in die tydslope moet wees.
Dit is egter ook moontlik om **jou eie omgewings te skep**, met een van hierdie as 'n basis. In die geval van python, is dit moontlik om `.whl` pakkette na die omgewing op te laai wat gebruik sal word. In die geval van PowerShell, is dit moontlik om `.zip` pakkette met die modules op te laai wat in die tydsone moet wees.
### Hibrid Werkersgroepe
@@ -66,9 +66,9 @@ In Azure Automatisering is die standaard uitvoeringsomgewing vir runbooks die **
Wanneer 'n hibrid werkersgroep geskep word, is dit nodig om die **geloofsbriewe** aan te dui wat gebruik moet word. Daar is 2 opsies:
- **Standaard geloofsbriewe**: Jy hoef nie die geloofsbriewe te verskaf nie en die runbooks sal binne die VM's as **Stelsel** uitgevoer word.
- **Spesifieke geloofsbriewe**: Jy moet die naam van die geloofsbriewe objek binne die automatiseringsrekening verskaf, wat gebruik sal word om die **runbooks binne die VM's** uit te voer. Daarom, in hierdie geval, kan dit moontlik wees om **geldige geloofsbriewe** vir die VM's te **steel**.
- **Spesifieke geloofsbriewe**: Jy moet die naam van die geloofsbriewe objek binne die automatiseringsrekening verskaf, wat gebruik sal word om die **runbooks binne die VM's** uit te voer. Daarom kan dit in hierdie geval moontlik wees om **geldige geloofsbriewe** vir die VM's te **steel**.
Daarom, as jy kan kies om 'n **Runbook** in 'n **Hibrid Werker** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (lekker pivot tegniek).
Daarom, as jy kan kies om 'n **Runbook** in 'n **Hibrid Werker** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (nuttige pivot tegniek).
Boonop, as die hibrid werker in Azure met ander Bestuurde Identiteite aangeheg is, sal die runbook toegang hê tot die **bestuurde identiteit van die runbook en al die bestuurde identiteite van die VM vanaf die metadata diens**.
@@ -77,12 +77,12 @@ Boonop, as die hibrid werker in Azure met ander Bestuurde Identiteite aangeheg i
### Toestand Konfigurasie (SC)
>[!WARNING]
> [!WARNING]
> Soos aangedui in [die dokumentasie](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), sal Azure Automatisering Toestand Konfigurasie op 30 September 2027 afgeskaf word en vervang word deur [Azure Masjien Konfigurasie](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
Automatiseringsrekeninge ondersteun ook **Toestand Konfigurasie (SC)**, wat 'n kenmerk is wat help om die **toestand** van jou VM's te **konfigureer** en **onderhou**. Dit is moontlik om **te skep** en **toe te pas** DSC konfigurasies op **Windows** en **Linux** masjiene.
Van 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS kode in al die geconfigureerde VM's uit te voer**, wat dit moontlik maak om voorregte na die bestuurde identiteite van hierdie VM's te verhoog, wat potensieel na nuwe netwerke kan pivot... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
Van 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS kode in al die geconfigureerde VM's uit te voer**, wat dit moontlik maak om voorregte na die bestuurde identiteite van hierdie VM's te verhoog, potensieel om na nuwe netwerke te pivot... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
## Opname
```bash
@@ -238,4 +238,4 @@ Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -R
- [https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview)
- [https://github.com/rootsecdev/Azure-Red-Team#runbook-automation](https://github.com/rootsecdev/Azure-Red-Team#runbook-automation)
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,16 +1,16 @@
# Az - Container Instances
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Basiese Inligting
Azure Container Instances (ACI) bied 'n **serverless, on-demand manier** om **containers** in die Azure wolk te draai. Jy kan **ontplooi** enkel of meerdere containers in 'n groep met **schaalbare rekenaar**, **netwerk opsies**, en die buigsaamheid om te verbind met **ander Azure dienste** (soos Stoor, Virtuele Netwerke, of Container Registries).
Azure Container Instances (ACI) bied 'n **serverless, on-demand manier** om **houers** in die Azure wolk te draai. Jy kan **ontplooi** enkel of meerdere houers in 'n groep met **schaalbare rekenaarkrag**, **netwerk opsies**, en die buigsaamheid om te verbind met **ander Azure dienste** (soos Stoor, Virtuele Netwerke, of Houer Registrasies).
Aangesien dit **ephemeral** werklading is, hoef jy nie die onderliggende VM-infrastruktuur te bestuur nie — Azure hanteer dit vir jou. egter, vanuit 'n **offensiewe sekuriteits perspektief**, is dit noodsaaklik om te verstaan hoe **toestemmings**, **identiteite**, **netwerk konfigurasies**, en **logs** aanvalsoppervlakke en potensiële misconfigurasies kan onthul.
Aangesien dit **ephemerale** werkladinge is, hoef jy nie die onderliggende VM-infrastruktuur te bestuur nie — Azure hanteer dit vir jou. egter, vanuit 'n **aanvallende sekuriteits perspektief**, is dit van kardinale belang om te verstaan hoe **toestemmings**, **identiteite**, **netwerk konfigurasies**, en **logs** aanvalsoppervlakke en potensiële misconfigurasies kan onthul.
### Konfigurasies
- Om 'n container te skep, is dit moontlik om 'n publieke beeld, 'n container beeld van 'n Azure Container Registry of 'n eksterne repository te gebruik, wat dalk **vereis om 'n wagwoord te konfigureer** om toegang te verkry.
- Om 'n houer te skep, is dit moontlik om 'n publieke beeld, 'n houerbeeld van 'n Azure Container Registry of 'n eksterne repository te gebruik, wat dalk **vereis om 'n wagwoord te konfigureer** om toegang te verkry.
- Wat netwerk betref, kan dit ook 'n **publieke IP** hê of **privaat eindpunte** wees.
- Dit is ook moontlik om algemene docker instellings te konfigureer soos:
- **Omgewing veranderlikes**
@@ -18,14 +18,14 @@ Aangesien dit **ephemeral** werklading is, hoef jy nie die onderliggende VM-infr
- **Poorte**
- **CPU en geheue beperkings**
- **Herstart beleid**
- **Dra as bevoorreg**
- **Opdraglyn om te draai**
- **Loop as bevoorreg**
- **Opdraglyn om te loop**
- ...
## Enumerasie
> [!WARNING]
> Wanneer jy ACI evalueer, kan jy sensitiewe konfigurasies onthul soos **omgewing veranderlikes**, **netwerk besonderhede**, of **bestuurde identiteite**. Wees versigtig met die log of vertoon daarvan.
> Wanneer jy ACI evalueer, kan jy sensitiewe konfigurasies onthul soos **omgewing veranderlikes**, **netwerk besonderhede**, of **bestuurde identiteite**. Wees versigtig met die registrasie of vertoon daarvan.
```bash
# List all container instances in the subscription
az container list

View File

@@ -1,10 +1,10 @@
# Az - Container Registry
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Basiese Inligting
Azure Container Registry (ACR) is 'n veilige, private registrasie wat jou toelaat om **hou, bestuur en toegang te verkry tot houerbeelde in die Azure wolk**. Dit integreer naatloos met verskeie Azure dienste, wat geoutomatiseerde bou- en ontplooiing werkvloei op skaal bied. Met funksies soos geo-replika en kwesbaarheidsskandering, help ACR om ondernemingsgraad sekuriteit en nakoming vir gecontaineriseerde toepassings te verseker.
Azure Container Registry (ACR) is 'n veilige, private registrasie wat jou toelaat om **hou, bestuur en toegang te verkry tot houerbeelde in die Azure wolk**. Dit integreer naatloos met verskeie Azure dienste, wat geoutomatiseerde bou- en ontplooiing werkvloei op skaal bied. Met funksies soos geo-replikaasies en kwesbaarheidsskandering, help ACR om ondernemingsgraad sekuriteit en nakoming vir gecontaineriseerde toepassings te verseker.
### Toestemmings
@@ -20,7 +20,7 @@ Dit is die **verskillende toestemmings** [volgens die dokumentasie](https://lear
Daar is ook 'n paar **ingeboude rolle** wat toegeken kan word, en dit is ook moontlik om **pasgemaakte rolle** te skep.
![](</images/registry_roles.png>)
![](/images/registry_roles.png)
### Verifikasie
@@ -30,7 +30,7 @@ Daar is ook 'n paar **ingeboude rolle** wat toegeken kan word, en dit is ook moo
Daar is 4 maniere om aan 'n ACR te verifieer:
- **Met Entra ID**: Dit is die **standaard** manier om aan 'n ACR te verifieer. Dit gebruik die **`az acr login`** opdrag om aan die ACR te verifieer. Hierdie opdrag sal **die geloofsbriewe** in die **`~/.docker/config.json`** lêer stoor. Boonop, as jy hierdie opdrag vanaf 'n omgewing sonder toegang tot 'n docker socket soos in 'n **cloud shell** uitvoer, is dit moontlik om die **`--expose-token`** vlag te gebruik om die **token** te verkry om aan die ACR te verifieer. Dan, om te verifieer moet jy as gebruikersnaam `00000000-0000-0000-0000-000000000000` gebruik soos: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
- **Met 'n admin rekening**: Die admin gebruiker is standaard gedeaktiveer, maar dit kan geaktiveer word en dan sal dit moontlik wees om toegang tot die registrasie te verkry met die **gebruikersnaam** en **wagwoord** van die admin rekening met volle toestemmings tot die registrasie. Dit word steeds ondersteun omdat sommige Azure dienste dit gebruik. Let daarop dat **2 wagwoorde** vir hierdie gebruiker geskep word en albei geldig is. Jy kan dit aktiveer met `az acr update -n <acrName> --admin-enabled true`. Let daarop dat die gebruikersnaam gewoonlik die registrasienaam is (en nie `admin`).
- **Met 'n admin rekening**: Die admin gebruiker is standaard gedeaktiveer, maar dit kan geaktiveer word en dan sal dit moontlik wees om toegang tot die registrasie te verkry met die **gebruikersnaam** en **wagwoord** van die admin rekening met volle toestemmings tot die registrasie. Dit word steeds ondersteun omdat sommige Azure dienste dit gebruik. Let daarop dat **2 wagwoorde** vir hierdie gebruiker geskep word en albei geldig is. Jy kan dit aktiveer met `az acr update -n <acrName> --admin-enabled true`. Let daarop dat die gebruikersnaam gewoonlik die registrasienaam is (en nie `admin` nie).
- **Met 'n token**: Dit is moontlik om 'n **token** met 'n **spesifieke `scope map`** (toestemmings) te skep om toegang tot die registrasie te verkry. Dan, is dit moontlik om hierdie tokennaam as gebruikersnaam en sommige van die gegenereerde wagwoord te gebruik om aan die registrasie te verifieer met `docker login -u <registry-name> -p <password> aregistry-url>`
- **Met 'n Dienshoof**: Dit is moontlik om 'n **dienshoof** te skep en 'n rol soos **`AcrPull`** toe te ken om beelde te trek. Dan sal dit moontlik wees om **in te log op die registrasie** met die SP appId as gebruikersnaam en 'n gegenereerde geheim as wagwoord.
@@ -67,7 +67,7 @@ Die **sagte-verwydering** kenmerk stel jou in staat om 'n **verwyderde registras
### Webhooks
Dit is moontlik om **webhooks** binne registrasies te **skep**. In hierdie webhook is dit nodig om die URL te spesifiseer waar 'n **versoek gestuur sal word wanneer 'n push of verwyder aksie uitgevoer word**. Boonop kan Webhooks 'n omvang aandui om die repositories (beelde) aan te dui wat geraak sal word. Byvoorbeeld, 'foo:*' beteken gebeurtenisse onder die repository 'foo'.
Dit is moontlik om **webhooks** binne registrasies te **skep**. In hierdie webhook is dit nodig om die URL te spesifiseer waar 'n **versoek gestuur sal word wanneer 'n push of verwyder aksie uitgevoer word**. Boonop kan Webhooks 'n omvang aandui om die repositories (beelde) aan te dui wat geraak sal word. Byvoorbeeld, 'foo:\*' beteken gebeurtenisse onder die repository 'foo'.
Van 'n aanvaller se perspektief is dit interessant om dit te kontroleer **voor enige aksie** in die registrasie uitgevoer word, en dit tydelik te verwyder indien nodig, om te voorkom dat jy opgespoor word.
@@ -81,9 +81,9 @@ Ten einde kliënte toe te laat om toegang tot die registrasie vanaf Azure te ver
### Lopies & Take
Lopies & Take stel jou in staat om aksies wat verband hou met Azure houers uit te voer wat jy tipies lokaal of in 'n CI/CD-pyplyn nodig gehad het om te doen. Byvoorbeeld, jy kan **bou, stoot, en loop beelde in die registrasie**.
Lopies & Take stel jou in staat om in Azure houer-verwante aksies uit te voer wat jy tipies lokaal of in 'n CI/CD-pyplyn nodig gehad het om te doen. Byvoorbeeld, jy kan **bou, stoot, en loop beelde in die registrasie**.
Die maklikste manier om 'n houer te bou en te loop is om 'n gewone Loop te gebruik:
Die maklikste manier om 'n houer te bou en te loop, is om 'n gewone Loop te gebruik:
```bash
# Build
echo "FROM mcr.microsoft.com/hello-world" > Dockerfile
@@ -92,15 +92,15 @@ az acr build --image sample/hello-world:v1 --registry mycontainerregistry008 --f
# Run
az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world:v1' /dev/null
```
However, dit sal lopies aktiveer wat nie baie interessant is vanuit 'n aanvaller se perspektief nie, want hulle het geen bestuurde identiteit aan hulle geheg nie.
However, dit sal lopies aktiveer wat nie baie interessant is vanuit 'n aanvaller se perspektief nie, omdat hulle geen bestuurde identiteit aan hulle het nie.
However, **tasks** kan 'n **system and user managed identity** aan hulle hê. Hierdie take is diegene wat nuttig is om **privileges te eskaleer** in die houer. In die afdeling oor privileges eskalasie is dit moontlik om te sien hoe om take te gebruik om privileges te eskaleer.
However, **tasks** kan 'n **system and user managed identity** aan hulle hê. Hierdie take is diegene wat nuttig is om **privileges te eskaleer** in die houer. In die privileges eskalering afdeling is dit moontlik om te sien hoe om take te gebruik om privileges te eskaleer.
### Cache
Die cache-funksie laat toe om **images van 'n eksterne repository af te laai** en die nuwe weergawes in die registrasie te stoor. Dit vereis dat daar 'n paar **credentials geconfigureer** moet word deur die credentials uit 'n Azure Vault te kies.
Dit is baie interessant vanuit 'n aanvaller se perspektief omdat dit toelaat om te **pivot na 'n eksterne platform** as die aanvaller genoeg regte het om toegang tot die credentials te verkry, **images van 'n eksterne repository af te laai** en 'n cache te configureer kan ook as 'n **persistence mechanism** gebruik word.
Dit is baie interessant vanuit 'n aanvaller se perspektief omdat dit toelaat om te **pivot na 'n eksterne platform** as die aanvaller genoeg regte het om toegang tot die credentials te verkry, **images van 'n eksterne repository af te laai** en die konfigurasie van 'n cache kan ook as 'n **persistence mechanism** gebruik word.
## Enumeration
@@ -149,9 +149,9 @@ az acr cache show --name <cache-name> --registry <registry-name>
../az-privilege-escalation/az-automation-accounts-privesc.md
{{#endref}}
## Verwysings
## References
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli)
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager)
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}