mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-27 23:34:32 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-automati
This commit is contained in:
@@ -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}}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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**.
|
||||
|
||||

|
||||

|
||||
|
||||
### 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}}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user