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

This commit is contained in:
Translator
2025-02-12 13:50:45 +00:00
parent 98dfa1bc78
commit affb333ca3
4 changed files with 33 additions and 33 deletions

View File

@@ -1,8 +1,8 @@
# Az - Automation Accounts
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Osnovne informacije
## Osnovne Informacije
Azure Automation Accounts su usluge zasnovane na oblaku u Microsoft Azure koje pomažu u **automatizaciji zadataka** kao što su upravljanje resursima, konfiguracija i ažuriranja širom Azure i lokalnih okruženja. Pružaju **Runbooks** (skripte za automatizaciju koje se izvršavaju), **rasporede** i **hibridne radne grupe** za pokretanje automatizovanih **poslova**, omogućavajući infrastrukturu kao kod (IaC) i automatizaciju procesa za poboljšanu efikasnost i doslednost u upravljanju resursima u oblaku.
@@ -36,7 +36,7 @@ Postoje 3 glavna načina za izvršavanje Runbook-a:
- **Webhook-ovi**: Ovo su **HTTP krajnje tačke** koje se mogu koristiti za **pokretanje** Runbook-a iz **spoljnih usluga**. Imajte na umu da URL webhook-a **nije vidljiv** nakon kreiranja.
- **Ručno pokretanje**: Možete **ručno pokrenuti** Runbook iz Azure Portala i iz CLI-a.
### Kontrola izvora
### Kontrola Izvora
Omogućava uvoz Runbook-a iz **Github, Azure Devops (Git) i Azure Devops (TFVC)**. Moguće je naznačiti da se objave Runbook-i iz repozitorijuma u Azure Automation nalog i takođe je moguće naznačiti da se **sinhronizuju promene iz repozitorijuma** u Azure Automation nalog.
@@ -44,9 +44,9 @@ Kada je sinhronizacija omogućena, u **Github repozitorijumu se kreira webhook**
Imajte na umu da ovi webhook-ovi **neće biti vidljivi** prilikom listanja webhook-ova u povezanim runbook-ima sa Github repozitorijumom. Takođe, imajte na umu da **nije moguće promeniti URL repozitorijuma** kontrole izvora nakon što je kreiran.
Da bi konfigurisana kontrola izvora radila, **Azure Automation Account** treba da ima upravljanu identitet (sistemsku ili korisničku) sa **`Contributor`** ulogom. Štaviše, da bi se dodelila korisnička upravljana identitet Automation Account-u, potrebno je naznačiti ID klijenta korisničkog MI u promenljivoj **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
Da bi konfigurisana kontrola izvora radila, **Azure Automation Account** treba da ima upravljanu identitet (sistemsku ili korisničku) sa **`Contributor`** ulogom. Štaviše, da bi se dodelila korisnička upravljana identitetu Automatizovanom nalogu, potrebno je naznačiti ID klijenta korisničkog MI u promenljivoj **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
### Okruženja za izvršavanje
### Okruženja za Izvršavanje
Kada kreirate Runbook, moguće je odabrati okruženje za izvršavanje. Po defaultu, sledeća okruženja za izvršavanje su dostupna:
@@ -59,9 +59,9 @@ Kada kreirate Runbook, moguće je odabrati okruženje za izvršavanje. Po defaul
Međutim, takođe je moguće **kreirati svoja okruženja**, koristeći jedno od ovih kao osnovu. U slučaju Pythona, moguće je učitati `.whl` pakete u okruženje koje će se koristiti. U slučaju PowerShell-a, moguće je učitati `.zip` pakete sa modulima koji će biti prisutni u izvršavanju.
### Hibridne radne grupe
### Hibridne Radne Grupe
U Azure Automation, podrazumevano okruženje za izvršavanje za runbook-e je **Azure Sandbox**, platforma zasnovana na oblaku kojom upravlja Azure, pogodna za zadatke koji uključuju Azure resurse. Međutim, ovaj sandbox ima ograničenja, kao što su ograničen pristup lokalnim resursima i ograničenja u vremenu izvršavanja i korišćenju resursa. Da bi se prevazišla ova ograničenja, koriste se Hibridne radne grupe. Hibridna radna grupa se sastoji od **jednog ili više Hibridnih Runbook radnika instaliranih na vašim mašinama**, bilo na lokaciji, u drugim okruženjima u oblaku ili Azure VM-ovima. Ova postavka omogućava runbook-ima da se izvršavaju direktno na ovim mašinama, pružajući direktan pristup lokalnim resursima, mogućnost izvršavanja dužih i resursno intenzivnijih zadataka, i fleksibilnost za interakciju sa okruženjima izvan neposrednog dometa Azure-a.
U Azure Automation, podrazumevano okruženje za izvršavanje za runbook-e je **Azure Sandbox**, platforma zasnovana na oblaku kojom upravlja Azure, pogodna za zadatke koji uključuju Azure resurse. Međutim, ovaj sandbox ima ograničenja, kao što su ograničen pristup lokalnim resursima i ograničenja u vremenu izvršavanja i korišćenju resursa. Da bi se prevazišla ova ograničenja, koriste se Hibridne Radne Grupe. Hibridna Radna Grupa se sastoji od **jednog ili više Hibridnih Runbook Radnika instaliranih na vašim mašinama**, bilo na lokaciji, u drugim okruženjima u oblaku ili Azure VM-ovima. Ova postavka omogućava runbook-ima da se izvršavaju direktno na ovim mašinama, pružajući direktan pristup lokalnim resursima, mogućnost izvršavanja dužih i resursno intenzivnijih zadataka, i fleksibilnost za interakciju sa okruženjima izvan neposrednog dometa Azure-a.
Kada se kreira hibridna radna grupa, potrebno je naznačiti **akreditive** koji će se koristiti. Postoje 2 opcije:
@@ -75,14 +75,14 @@ Dakle, ako možete odabrati da pokrenete **Runbook** u **Hibridnom Radniku**, iz
> [!TIP]
> Zapamtite da **servis za metapodatke** ima drugačiji URL (**`http://169.254.169.254`**) od servisa sa kojeg se dobija token upravljanih identiteta automatizovanog naloga (**`IDENTITY_ENDPOINT`**).
### Konfiguracija stanja (SC)
### Konfiguracija Stanja (SC)
>[!WARNING]
> [!WARNING]
> Kao što je navedeno u [dokumentaciji](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), Azure Automation State Configuration će biti povučena 30. septembra 2027. i zamenjena sa [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
Automatizovani nalozi takođe podržavaju **Konfiguraciju stanja (SC)**, što je funkcija koja pomaže u **konfigurisanju** i **održavanju** **stanja** vaših VM-ova. Moguće je **kreirati** i **primeniti** DSC konfiguracije na **Windows** i **Linux** mašinama.
Automatizovani Nalozi takođe podržavaju **Konfiguraciju Stanja (SC)**, što je funkcija koja pomaže u **konfigurisanju** i **održavanju** **stanja** vaših VM-ova. Moguće je **kreirati** i **primeniti** DSC konfiguracije na **Windows** i **Linux** mašinama.
Iz perspektive napadača ovo je bilo zanimljivo jer je omogućilo **izvršavanje arbitrarnih PS kodova u svim konfiguriranim VM-ovima**, omogućavajući eskalaciju privilegija na upravljane identitete ovih VM-ova, potencijalno prelazeći na nove mreže... Takođe, konfiguracije su mogle sadržati **osetljive informacije**.
Iz perspektive napadača ovo je bilo zanimljivo jer je omogućilo **izvršavanje arbitrarnih PS kodova u svim konfiguriranim VM-ovima**, omogućavajući eskalaciju privilegija na upravljane identitete ovih VM-ova, potencijalno prelazeći na nove mreže... Takođe, konfiguracije bi mogle sadržati **osetljive informacije**.
## Enumeracija
```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,12 +1,12 @@
# Az - Container Instances
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Osnovne informacije
Azure Container Instances (ACI) pružaju **serverless, on-demand način** za pokretanje **kontejnera** u Azure oblaku. Možete **implementirati** jedan ili više kontejnera u grupi sa **skalabilnim računarstvom**, **mogućnostima umrežavanja** i fleksibilnošću da se povežete sa **drugim Azure uslugama** (kao što su Storage, Virtual Networks ili Container Registries).
Azure Container Instances (ACI) pružaju **serverless, on-demand način** za pokretanje **kontejnera** u Azure oblaku. Možete **deplojovati** jedan ili više kontejnera u grupi sa **skalabilnim računarstvom**, **mogućnostima umrežavanja** i fleksibilnošću da se povežete sa **drugim Azure uslugama** (kao što su Storage, Virtual Networks ili Container Registries).
Budući da su to **ephemeral** radni opterećenja, ne morate upravljati osnovnom VM infrastrukturom — Azure to obavlja umesto vas. Međutim, iz **ofanzivne bezbednosne perspektive**, ključno je razumeti kako **dozvole**, **identiteti**, **konfiguracije mreže** i **logovi** mogu otkriti površine napada i potencijalne pogrešne konfiguracije.
Pošto su to **ephemeral** radni opterećenja, ne morate upravljati osnovnom VM infrastrukturom — Azure to obavlja umesto vas. Međutim, iz **ofanzivne bezbednosne perspektive**, ključno je razumeti kako **dozvole**, **identiteti**, **konfiguracije mreže** i **logovi** mogu otkriti površine napada i potencijalne pogrešne konfiguracije.
### Konfiguracije

View File

@@ -1,6 +1,6 @@
# Az - Container Registry
{{#include ../../../../banners/hacktricks-training.md}}
{{#include ../../../banners/hacktricks-training.md}}
## Osnovne informacije
@@ -20,19 +20,19 @@ Ovo su **različite dozvole** [prema dokumentaciji](https://learn.microsoft.com/
Takođe postoje neke **ugrađene uloge** koje se mogu dodeliti, a moguće je i kreirati **prilagođene uloge**.
![](</images/registry_roles.png>)
![](/images/registry_roles.png)
### Autentifikacija
> [!WARNING]
> Veoma je važno da, čak i ako naziv registracije sadrži neka velika slova, uvek koristite **mala slova** za prijavu, push i pull slika.
> Veoma je važno da, čak i ako ime registracije sadrži neka velika slova, uvek koristite **mala slova** za prijavu, push i pull slika.
Postoje 4 načina za autentifikaciju na ACR:
- **Sa Entra ID**: Ovo je **podrazumevani** način autentifikacije na ACR. Koristi **`az acr login`** komandu za autentifikaciju na ACR. Ova komanda će **čuvati akreditive** u **`~/.docker/config.json`** datoteci. Štaviše, ako pokrećete ovu komandu iz okruženja bez pristupa docker socket-u, kao u **cloud shell**, moguće je koristiti **`--expose-token`** flag za dobijanje **tokena** za autentifikaciju na ACR. Zatim, da biste se autentifikovali, treba da koristite kao korisničko ime `00000000-0000-0000-0000-000000000000` kao: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
- **Sa administratorskim nalogom**: Administratorski korisnik je podrazumevano onemogućen, ali može biti omogućen i tada će biti moguće pristupiti registru sa **korisničkim imenom** i **lozinkom** administratorskog naloga sa punim dozvolama za registar. Ovo je još uvek podržano jer neke Azure usluge to koriste. Imajte na umu da su za ovog korisnika kreirane **2 lozinke** i obe su važeće. Možete ga omogućiti sa `az acr update -n <acrName> --admin-enabled true`. Imajte na umu da je korisničko ime obično naziv registracije (a ne `admin`).
- **Sa tokenom**: Moguće je kreirati **token** sa **specifičnom `scope map`** (dozvole) za pristup registru. Zatim, moguće je koristiti ovo ime tokena kao korisničko ime i neku od generisanih lozinki za autentifikaciju na registar sa `docker login -u <registry-name> -p <password> aregistry-url>`
- **Sa Service Principal**: Moguće je kreirati **service principal** i dodeliti ulogu kao **`AcrPull`** za povlačenje slika. Zatim, biće moguće **prijaviti se u registar** koristeći SP appId kao korisničko ime i generisanu tajnu kao lozinku.
- **Sa Entra ID**: Ovo je **podrazumevani** način autentifikacije na ACR. Koristi **`az acr login`** komandu za autentifikaciju na ACR. Ova komanda će **sačuvati akreditive** u **`~/.docker/config.json`** datoteci. Štaviše, ako pokrećete ovu komandu iz okruženja bez pristupa docker socket-u, kao u **cloud shell**, moguće je koristiti **`--expose-token`** flag za dobijanje **tokena** za autentifikaciju na ACR. Zatim, da biste se autentifikovali, treba da koristite kao korisničko ime `00000000-0000-0000-0000-000000000000` kao: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
- **Sa administratorskim nalogom**: Administratorski korisnik je podrazumevano onemogućen, ali može biti omogućen i tada će biti moguće pristupiti registru sa **korisničkim imenom** i **lozinkom** administratorskog naloga sa punim dozvolama za registraciju. Ovo je još uvek podržano jer neke Azure usluge to koriste. Imajte na umu da su za ovog korisnika kreirane **2 lozinke** i obe su važeće. Možete ga omogućiti sa `az acr update -n <acrName> --admin-enabled true`. Imajte na umu da je korisničko ime obično ime registracije (a ne `admin`).
- **Sa tokenom**: Moguće je kreirati **token** sa **specifičnom `scope map`** (dozvole) za pristup registru. Zatim, moguće je koristiti ovo ime tokena kao korisničko ime i neku od generisanih lozinki za autentifikaciju na registru sa `docker login -u <registry-name> -p <password> aregistry-url>`
- **Sa Service Principal**: Moguće je kreirati **service principal** i dodeliti ulogu kao **`AcrPull`** za povlačenje slika. Zatim, biće moguće **prijaviti se na registraciju** koristeći SP appId kao korisničko ime i generisanu tajnu kao lozinku.
Primer skripte iz [dokumentacije](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) za generisanje SP sa pristupom nad registracijom:
```bash
@@ -61,27 +61,27 @@ Samo **Premium SKU** podržava **privatne krajnje tačke**. Ostali samo podržav
Ovo vam omogućava da **skenirate slike** u registru na **ranjivosti**.
### Soft-delete
### Soft-deletion
Funkcija **soft-delete** vam omogućava da **opravite obrisani registar** unutar naznačenog broja dana. Ova funkcija je **onemogućena po defaultu**.
### Webhook-ovi
Moguće je **kreirati webhook-ove** unutar registara. U ovom webhook-u potrebno je navesti URL gde će **zahtev biti poslat svaki put kada se izvrši push ili delete akcija**. Štaviše, Webhook-ovi mogu označiti opseg kako bi označili repozitorijume (slike) koji će biti pogođeni. Na primer, 'foo:*' znači događaje pod repozitorijumom 'foo'.
Moguće je **kreirati webhook-ove** unutar registara. U ovom webhook-u potrebno je navesti URL gde će **zahtev biti poslat svaki put kada se izvrši push ili delete akcija**. Štaviše, Webhook-ovi mogu označiti opseg kako bi ukazali na repozitorijume (slike) koji će biti pogođeni. Na primer, 'foo:\*' znači događaje pod repozitorijumom 'foo'.
Sa stanovišta napadača, zanimljivo je proveriti ovo **pre nego što se izvrši bilo kakva akcija** u registru, i privremeno ga ukloniti ako je potrebno, kako bi se izbeglo otkrivanje.
Iz perspektive napadača, zanimljivo je proveriti ovo **pre nego što se izvrši bilo kakva akcija** u registru, i privremeno ga ukloniti ako je potrebno, kako bi se izbeglo otkrivanje.
### Povezani registri
Ovo u suštini omogućava **ogledanje slika** iz jednog registra u drugi, obično smešten u lokalnoj mreži.
Ovo u suštini omogućava **ogledanje slika** iz jednog registra u drugi, obično smešten u lokalnom okruženju.
Ima 2 moda: **ReadOnly** i **ReadWrite**. U prvom, slike se samo **preuzimaju** iz izvornog registra, a u drugom, slike se takođe mogu **postaviti** u izvorni registar.
Ima 2 moda: **ReadOnly** i **ReadWrite**. U prvom, slike se samo **preuzimaju** iz izvornog registra, a u drugom, slike se takođe mogu **gurnuti** u izvorni registar.
Kako bi klijenti pristupili registru iz Azure, **token** se generiše kada se koristi povezani registar.
Da bi klijenti pristupili registru iz Azure, generiše se **token** kada se koristi povezani registar.
### Izvršenja i zadaci
Izvršenja i zadaci omogućavaju izvršavanje akcija vezanih za kontejnere u Azure koje ste obično morali raditi lokalno ili u CI/CD pipeline-u. Na primer, možete **izgraditi, postaviti i pokrenuti slike u registru**.
Izvršenja i zadaci omogućavaju izvršavanje akcija vezanih za kontejnere u Azure koje ste obično morali raditi lokalno ili u CI/CD pipeline-u. Na primer, možete **izgraditi, gurnuti i pokrenuti slike u registru**.
Najlakši način za izgradnju i pokretanje kontejnera je korišćenje redovnog izvršenja:
```bash
@@ -94,7 +94,7 @@ az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world
```
Međutim, to će pokrenuti izvršenja koja nisu previše zanimljiva iz perspektive napadača jer nemaju nijednu upravljanu identitet.
Međutim, **tasks** mogu imati **sistemsku i korisničku upravljanu identitet** pridruženu njima. Ovi zadaci su korisni za **escalate privileges** u kontejneru. U odeljku o eskalaciji privilegija moguće je videti kako koristiti zadatke za eskalaciju privilegija.
Međutim, **tasks** mogu imati **system and user managed identity** pridružene njima. Ovi zadaci su korisni za **escalate privileges** u kontejneru. U odeljku o eskalaciji privilegija moguće je videti kako koristiti zadatke za eskalaciju privilegija.
### Cache
@@ -154,4 +154,4 @@ az acr cache show --name <cache-name> --registry <registry-name>
- [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}}

View File

@@ -471,12 +471,12 @@ window.search = window.search || {};
showResults(true);
}
fetch(path_to_root + 'searchindex.json')
fetch('https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.json')
.then(response => response.json())
.then(json => init(json))
.catch(error => { // Try to load searchindex.js if fetch failed
var script = document.createElement('script');
script.src = path_to_root + 'searchindex.js';
script.src = 'https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.js';
script.onload = () => init(window.search);
document.head.appendChild(script);
});