mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
+77
-15
@@ -10,9 +10,81 @@ Aby uzyskać więcej informacji, sprawdź:
|
||||
../az-services/az-servicebus-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Wysyłanie wiadomości. Akcja: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` LUB `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
|
||||
|
||||
Możesz uzyskać `PrimaryConnectionString`, który działa jako poświadczenie dla przestrzeni nazw Service Bus. Z tym ciągiem połączenia możesz w pełni uwierzytelnić się jako przestrzeń nazw Service Bus, co umożliwia wysyłanie wiadomości do dowolnej kolejki lub tematu oraz potencjalne interakcje z systemem w sposób, który może zakłócić operacje, podszywać się pod ważnych użytkowników lub wstrzykiwać złośliwe dane do przepływu wiadomości.
|
||||
Te uprawnienia pozwalają na uzyskanie lub regenerację kluczy dla lokalnych reguł autoryzacji w obrębie przestrzeni nazw Service Bus. Używając tych kluczy, możliwe jest uwierzytelnienie się jako przestrzeń nazw Service Bus, co umożliwia wysyłanie wiadomości do dowolnej kolejki lub tematu, odbieranie wiadomości z dowolnej kolejki lub subskrypcji, lub potencjalnie interakcję z systemem w sposób, który może zakłócić operacje, podszywać się pod ważnych użytkowników lub wstrzykiwać złośliwe dane do przepływu wiadomości.
|
||||
|
||||
Należy zauważyć, że domyślnie reguła **`RootManageSharedAccessKey` ma pełną kontrolę** nad przestrzenią nazw Service Bus i jest używana przez `az` cli, jednak mogą istnieć inne reguły z innymi wartościami kluczy.
|
||||
```bash
|
||||
# List keys
|
||||
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey]
|
||||
|
||||
# Regenerate keys
|
||||
az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/AuthorizationRules/write
|
||||
|
||||
Dzięki temu uprawnieniu można **utworzyć nową regułę autoryzacji** ze wszystkimi uprawnieniami i własnymi kluczami za pomocą:
|
||||
```bash
|
||||
az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send
|
||||
```
|
||||
>[!WARNING]
|
||||
>To polecenie nie zwraca kluczy, więc musisz je uzyskać za pomocą poprzednich poleceń (i uprawnień), aby podnieść uprawnienia.
|
||||
|
||||
Ponadto, za pomocą tego polecenia (i `Microsoft.ServiceBus/namespaces/authorizationRules/read`), jeśli wykonasz tę akcję za pomocą Azure CLI, możliwe jest zaktualizowanie istniejącej reguły autoryzacji i nadanie jej większych uprawnień (w przypadku, gdy ich brakowało) za pomocą następującego polecenia:
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
|
||||
|
||||
Specyficzne tematy i kolejki w obrębie przestrzeni nazw Service Bus mogą mieć własne zasady autoryzacji, które mogą być używane do kontrolowania dostępu do jednostki. Posiadając te uprawnienia, możesz **pobierać lub regenerować klucze dla tych lokalnych zasad autoryzacji**, co umożliwia uwierzytelnienie się jako jednostka i potencjalnie wysyłanie lub odbieranie wiadomości, zarządzanie subskrypcjami lub interakcję z systemem w sposób, który może zakłócać operacje, podszywać się pod ważnych użytkowników lub wstrzykiwać złośliwe dane do przepływu wiadomości.
|
||||
```bash
|
||||
# List keys (topics)
|
||||
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (topics)
|
||||
az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# List keys (queues)
|
||||
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
|
||||
# Regenerate keys (queues)
|
||||
az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name>
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write
|
||||
|
||||
Dzięki temu uprawnieniu można **utworzyć nową regułę autoryzacji** ze wszystkimi uprawnieniami i własnymi kluczami z:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
```
|
||||
>[!WARNING]
|
||||
>To polecenie nie zwraca kluczy, więc musisz je uzyskać za pomocą poprzednich poleceń (i uprawnień), aby podnieść uprawnienia.
|
||||
|
||||
Ponadto, za pomocą tego polecenia (i `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) jeśli wykonasz tę akcję przez Azure CLI, możliwe jest zaktualizowanie istniejącej reguły autoryzacji i nadanie jej większych uprawnień (w przypadku, gdy ich brakowało) za pomocą następującego polecenia:
|
||||
```bash
|
||||
# In a topic
|
||||
az servicebus topic authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
|
||||
# In a queue
|
||||
az servicebus queue authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
|
||||
```
|
||||
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used)
|
||||
|
||||
Z tymi uprawnieniami **atakujący może ponownie włączyć "lokalne uwierzytelnianie"** za pomocą następującego polecenia, a zatem wszystkie klucze z polityk współdzielonych będą działać.
|
||||
```bash
|
||||
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
|
||||
```
|
||||
### Wysyłanie wiadomości z kluczami (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
Możesz uzyskać `PrimaryConnectionString`, który działa jako poświadczenie dla przestrzeni nazw Service Bus. Dzięki temu ciągowi połączeń możesz w pełni uwierzytelnić się jako przestrzeń nazw Service Bus, co umożliwia wysyłanie wiadomości do dowolnej kolejki lub tematu oraz potencjalne interakcje z systemem w sposób, który może zakłócić operacje, podszywać się pod ważnych użytkowników lub wstrzykiwać złośliwe dane do przepływu wiadomości.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -81,9 +153,9 @@ print("Messages Sent")
|
||||
print("----------------------------")
|
||||
|
||||
```
|
||||
### Odbierz wiadomości. Akcja: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` LUB `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
### Odbierz za pomocą kluczy (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
|
||||
Możesz uzyskać PrimaryConnectionString, który służy jako poświadczenie dla przestrzeni nazw Service Bus. Używając tego ciągu połączenia, możesz odbierać wiadomości z dowolnej kolejki lub subskrypcji w obrębie przestrzeni nazw, co umożliwia dostęp do potencjalnie wrażliwych lub krytycznych danych, umożliwiając eksfiltrację danych lub zakłócanie przetwarzania wiadomości i przepływów pracy aplikacji.
|
||||
Możesz pobrać PrimaryConnectionString, który służy jako poświadczenie dla przestrzeni nazw Service Bus. Używając tego ciągu połączenia, możesz odbierać wiadomości z dowolnej kolejki lub subskrypcji w obrębie przestrzeni nazw, co umożliwia dostęp do potencjalnie wrażliwych lub krytycznych danych, umożliwiając eksfiltrację danych lub zakłócanie przetwarzania wiadomości i przepływów pracy aplikacji.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -127,17 +199,7 @@ asyncio.run(receive_and_process_messages())
|
||||
print("Message Receiving Completed")
|
||||
print("----------------------------")
|
||||
```
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
|
||||
Jeśli masz te uprawnienia, możesz podnieść uprawnienia, odczytując lub tworząc klucze dostępu współdzielonego. Te klucze umożliwiają pełną kontrolę nad przestrzenią nazw Service Bus, w tym zarządzanie kolejkami, tematami oraz wysyłaniem/odbieraniem wiadomości, potencjalnie omijając kontrolę dostępu opartą na rolach (RBAC).
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
--namespace-name <MyNamespace> \
|
||||
--name RootManageSharedAccessKey \
|
||||
--rights Manage Listen Send
|
||||
```
|
||||
## Odniesienia
|
||||
## References
|
||||
|
||||
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
|
||||
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api
|
||||
|
||||
@@ -10,9 +10,9 @@ Azure Service Bus to oparta na chmurze **usługa komunikacyjna**, zaprojektowana
|
||||
|
||||
1. **Kolejki:** jej celem jest przechowywanie wiadomości, aż odbiorca będzie gotowy.
|
||||
- Wiadomości są uporządkowane, opatrzone znacznikami czasu i trwale przechowywane.
|
||||
- Dostarczane w trybie pull (na żądanie).
|
||||
- Dostarczane w trybie pull (pobieranie na żądanie).
|
||||
- Wspiera komunikację punkt-punkt.
|
||||
2. **Tematy:** Publikowanie-subskrypcja wiadomości do nadawania.
|
||||
2. **Tematy:** Komunikacja publish-subscribe do nadawania.
|
||||
- Wiele niezależnych subskrypcji otrzymuje kopie wiadomości.
|
||||
- Subskrypcje mogą mieć zasady/filtry do kontrolowania dostarczania lub dodawania metadanych.
|
||||
- Wspiera komunikację wiele-do-wielu.
|
||||
@@ -22,14 +22,14 @@ Azure Service Bus to oparta na chmurze **usługa komunikacyjna**, zaprojektowana
|
||||
|
||||
Niektóre zaawansowane funkcje to:
|
||||
|
||||
- **Sesje wiadomości**: Zapewnia przetwarzanie FIFO i wspiera wzorce żądanie-odpowiedź.
|
||||
- **Automatyczne przekazywanie**: Przenosi wiadomości między kolejkami lub tematami w tej samej przestrzeni nazw.
|
||||
- **Martwe litery**: Zbiera niedostarczalne wiadomości do przeglądu.
|
||||
- **Zaplanuje dostarczanie**: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
|
||||
- **Sesje wiadomości**: Zapewnia przetwarzanie FIFO i wspiera wzorce request-response.
|
||||
- **Auto-przekazywanie**: Przenosi wiadomości między kolejkami lub tematami w tej samej przestrzeni nazw.
|
||||
- **Dead-Lettering**: Zbiera wiadomości, które nie mogą być dostarczone do przeglądu.
|
||||
- **Zaplanuj dostawę**: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
|
||||
- **Odwlekanie wiadomości**: Opóźnia pobieranie wiadomości do momentu, gdy będzie to możliwe.
|
||||
- **Transakcje**: Grupuje operacje w atomowe wykonanie.
|
||||
- **Filtry i działania**: Stosuje zasady do filtrowania lub adnotacji wiadomości.
|
||||
- **Automatyczne usuwanie w stanie bezczynności**: Usuwa kolejki po braku aktywności (min: 5 minut).
|
||||
- **Auto-usuwanie w bezczynności**: Usuwa kolejki po braku aktywności (min: 5 minut).
|
||||
- **Wykrywanie duplikatów**: Usuwa duplikaty wiadomości podczas ponownych wysyłek.
|
||||
- **Usuwanie wsadowe**: Hurtowo usuwa wygasłe lub niepotrzebne wiadomości.
|
||||
|
||||
@@ -54,18 +54,6 @@ sku, zasada autoryzacji,
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```bash
|
||||
# Queue Enumeration
|
||||
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>
|
||||
|
||||
# Topic Enumeration
|
||||
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>
|
||||
|
||||
# Susbscription Enumeration
|
||||
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
|
||||
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>
|
||||
|
||||
# Namespace Enumeration
|
||||
az servicebus namespace list
|
||||
az servicebus namespace network-rule-set list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
@@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group <MyResourceGrou
|
||||
az servicebus queue authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --queue-name <MyQueue>
|
||||
az servicebus topic authorization-rule list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
|
||||
az servicebus namespace authorization-rule keys list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyAuthRule>
|
||||
|
||||
# Get keys
|
||||
az servicebus namespace authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> [--authorization-rule-name RootManageSharedAccessKey]
|
||||
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
|
||||
az servicebus queue authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --queue-name <topic-name> --name <auth-rule-name>
|
||||
|
||||
# Queue Enumeration
|
||||
az servicebus queue list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
az servicebus queue show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyQueue>
|
||||
|
||||
# Topic Enumeration
|
||||
az servicebus topic list --resource-group <MyResourceGroup> --namespace-name <MyNamespace>
|
||||
az servicebus topic show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --name <MyTopic>
|
||||
|
||||
# Susbscription Enumeration
|
||||
az servicebus topic subscription list --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic>
|
||||
az servicebus topic subscription show --resource-group <MyResourceGroup> --namespace-name <MyNamespace> --topic-name <MyTopic> --name <MySubscription>
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user