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 f2126b326..5fc0df9a2 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 @@ -10,9 +10,81 @@ Za više informacija proverite: ../az-services/az-servicebus-enum.md {{#endref}} -### Slanje poruka. Akcija: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` ILI `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action -Možete preuzeti `PrimaryConnectionString`, koji deluje kao akreditiv za Service Bus namespace. Sa ovom konekcionom stringom, možete se potpuno autentifikovati kao Service Bus namespace, omogućavajući vam da šaljete poruke bilo kojoj redu ili temi i potencijalno interagujete sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgavati zlonamerne podatke u tok poruka. +Ove dozvole vam omogućavaju da dobijete ili regenerišete ključeve za lokalna pravila autorizacije unutar Service Bus imenskog prostora. Korišćenjem ovih ključeva moguće je autentifikovati se kao Service Bus imenski prostor, omogućavajući vam da šaljete poruke u bilo koju red ili temu, primate poruke iz bilo koje red ili pretplate, ili potencijalno interagujete sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili injektovati zlonamerne podatke u tok poruka. + +Imajte na umu da po defaultu **`RootManageSharedAccessKey` pravilo ima potpunu kontrolu** nad Service Bus imenskim prostorom i koristi se od strane `az` cli, međutim, mogu postojati i druga pravila sa drugim vrednostima ključeva. +```bash +# List keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey] + +# Regenerate keys +az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +``` +### Microsoft.ServiceBus/namespaces/AuthorizationRules/write + +Sa ovom dozvolom je moguće **napraviti novo pravilo autorizacije** sa svim dozvolama i sopstvenim ključevima sa: +```bash +az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send +``` +>[!WARNING] +>Ova komanda ne odgovara sa ključevima, tako da ih morate dobiti prethodnim komandama (i dozvolama) kako biste eskalirali privilegije. + +Pored toga, sa tom komandom (i `Microsoft.ServiceBus/namespaces/authorizationRules/read`) ako izvršite ovu akciju putem Azure CLI, moguće je ažurirati postojeće pravilo autorizacije i dati mu više dozvola (u slučaju da su nedostajale) sledećom komandom: +```bash +az servicebus namespace authorization-rule update \ +--resource-group \ +--namespace-name \ +--name RootManageSharedAccessKey \ +--rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action + +Specifične teme i redovi unutar Service Bus imenskog prostora mogu imati svoja pravila autorizacije, koja se mogu koristiti za kontrolu pristupa entitetu. Imajući ove dozvole, možete **pribaviti ili regenerisati ključeve za ova lokalna pravila autorizacije**, omogućavajući vam da se autentifikujete kao entitet i potencijalno šaljete ili primate poruke, upravljate pretplatama ili komunicirate sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. +```bash +# List keys (topics) +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name + +# Regenerate keys (topics) +az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --topic-name --name + +# List keys (queues) +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Regenerate keys (queues) +az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --queue-name --name +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write + +Sa ovom dozvolom je moguće **napraviti novo pravilo autorizacije** sa svim dozvolama i sopstvenim ključevima sa: +```bash +# In a topic +az servicebus topic authorization-rule create --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule create --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +>[!WARNING] +>Ova komanda ne odgovara sa ključevima, tako da ih morate dobiti prethodnim komandama (i dozvolama) kako biste eskalirali privilegije. + +Pored toga, sa tom komandom (i `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) ako izvršite ovu akciju putem Azure CLI, moguće je ažurirati postojeće pravilo autorizacije i dati mu više dozvola (u slučaju da su nedostajale) sledećom komandom: +```bash +# In a topic +az servicebus topic authorization-rule update --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule update --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used) + +Sa ovim dozvolama **napadač može ponovo omogućiti "lokalnu autentifikaciju"** sledećom komandom i stoga će svi ključevi iz deljenih politika raditi. +```bash +az servicebus namespace update --disable-local-auth false -n --resource-group +``` +### Pošaljite poruke sa ključevima (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) + +Možete preuzeti `PrimaryConnectionString`, koji deluje kao akreditiv za Service Bus namespace. Sa ovom konekcionom stringom, možete se potpuno autentifikovati kao Service Bus namespace, omogućavajući vam da šaljete poruke u bilo koju red ili temu i potencijalno komunicirate sa sistemom na načine koji bi mogli ometati operacije, predstavljati validne korisnike ili ubrizgati zlonamerne podatke u tok poruka. ```python #You need to install the following libraries #pip install azure-servicebus @@ -81,9 +153,9 @@ print("Messages Sent") print("----------------------------") ``` -### Prijem poruka. Akcija: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` ILI `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Prijem sa ključevima (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR 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 ometajući obradu poruka i radne tokove 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 exfiltraciju podataka ili ometajući obradu poruka i radne tokove aplikacija. ```python #You need to install the following libraries #pip install azure-servicebus @@ -127,16 +199,6 @@ asyncio.run(receive_and_process_messages()) print("Message Receiving Completed") print("----------------------------") ``` -### `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 zaobilaženje kontrole pristupa zasnovane na rolama (RBAC). -```bash -az servicebus namespace authorization-rule update \ ---resource-group \ ---namespace-name \ ---name RootManageSharedAccessKey \ ---rights Manage Listen Send -``` ## Reference - https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues 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 5c5a2c3b7..5a50ed87a 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 @@ -4,7 +4,7 @@ ## Service Bus -Azure Service Bus je usluga **poruka** zasnovana na oblaku koja omogućava pouzdanu **komunikaciju između različitih delova aplikacije ili odvojenih aplikacija**. Deluje kao siguran posrednik, osiguravajući da poruke budu sigurno isporučene, čak i ako pošiljalac i primalac ne rade istovremeno. Razdvajanjem sistema, omogućava aplikacijama da rade nezavisno dok i dalje razmenjuju podatke ili uputstva. Posebno je korisna za scenarije koji zahtevaju ravnotežu opterećenja među više radnika, pouzdanu isporuku poruka ili složenu koordinaciju, kao što je obrada zadataka u redosledu ili sigurno upravljanje pristupom. +Azure Service Bus je usluga **poruka** zasnovana na oblaku koja je dizajnirana da omogući pouzdanu **komunikaciju između različitih delova aplikacije ili odvojenih aplikacija**. Deluje kao siguran posrednik, osiguravajući da poruke budu sigurno isporučene, čak i ako pošiljalac i primalac ne rade istovremeno. Razdvajanjem sistema, omogućava aplikacijama da rade nezavisno dok i dalje razmenjuju podatke ili uputstva. Posebno je korisna za scenarije koji zahtevaju ravnotežu opterećenja među više radnika, pouzdanu isporuku poruka ili složenu koordinaciju, kao što je obrada zadataka u redosledu ili sigurno upravljanje pristupom. ### Ključni koncepti @@ -25,7 +25,7 @@ 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**: Zapisuje neisporučive poruke za pregled. -- **Zakazano isporučivanje**: Odlaže obradu poruka za buduće zadatke. +- **Zakazana isporuka**: 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. @@ -35,13 +35,13 @@ Neke napredne funkcije su: ### Pravilo autorizacije / SAS politika -SAS politike definišu dozvole pristupa za entitete Azure Service Bus imenskog prostora (najvažnija), redove i teme. Svaka politika ima sledeće komponente: +SAS politike definišu dozvole za pristup entitetima Azure Service Bus imenskog prostora (najvažnija), redovima i temama. Svaka politika ima sledeće komponente: - **Dozvole**: Potvrdni okviri za određivanje nivoa pristupa: - Upravljanje: Daje potpunu kontrolu nad entitetom, uključujući upravljanje konfiguracijom i dozvolama. - Slanje: Omogućava slanje poruka entitetu. - Slušanje: Omogućava primanje poruka od entiteta. -- **Primarni i sekundarni ključevi**: To su kriptografski ključevi koji se koriste za generisanje sigurnih tokena za autentifikaciju pristupa. +- **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-a (ARM) do politike za programatsku identifikaciju. @@ -54,18 +54,6 @@ sku, pravilo autorizacije, {{#tabs }} {{#tab name="az cli" }} ```bash -# Queue Enumeration -az servicebus queue list --resource-group --namespace-name -az servicebus queue show --resource-group --namespace-name --name - -# Topic Enumeration -az servicebus topic list --resource-group --namespace-name -az servicebus topic show --resource-group --namespace-name --name - -# Susbscription Enumeration -az servicebus topic subscription list --resource-group --namespace-name --topic-name -az servicebus topic subscription show --resource-group --namespace-name --topic-name --name - # Namespace Enumeration az servicebus namespace list az servicebus namespace network-rule-set list --resource-group --namespace-name @@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group --namespace-name --queue-name az servicebus topic authorization-rule list --resource-group --namespace-name --topic-name az servicebus namespace authorization-rule keys list --resource-group --namespace-name --name + +# Get keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Queue Enumeration +az servicebus queue list --resource-group --namespace-name +az servicebus queue show --resource-group --namespace-name --name + +# Topic Enumeration +az servicebus topic list --resource-group --namespace-name +az servicebus topic show --resource-group --namespace-name --name + +# Susbscription Enumeration +az servicebus topic subscription list --resource-group --namespace-name --topic-name +az servicebus topic subscription show --resource-group --namespace-name --topic-name --name ``` {{#endtab }} @@ -134,7 +139,7 @@ Get-AzServiceBusTopic -ResourceGroupName -NamespaceName