mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue
This commit is contained in:
+3
-2
@@ -425,8 +425,8 @@
|
||||
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
|
||||
- [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
|
||||
- [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
|
||||
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue-enum.md)
|
||||
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus-enum.md)
|
||||
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md)
|
||||
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md)
|
||||
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
|
||||
- [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md)
|
||||
- [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md)
|
||||
@@ -489,6 +489,7 @@
|
||||
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
|
||||
- [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md)
|
||||
- [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md)
|
||||
- [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md)
|
||||
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
|
||||
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
|
||||
- [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Az - SQL Persistence
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## SQL
|
||||
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-sql.md
|
||||
{{#endref}}
|
||||
|
||||
### Powszechne techniki utrzymywania dostępu
|
||||
|
||||
- Kompromitacja poświadczeń SQL lub utworzenie użytkownika SQL (w razie potrzeby włączenie uwierzytelniania SQL)
|
||||
- Przypisanie skompromitowanego użytkownika jako administratora Entra ID (w razie potrzeby włączenie uwierzytelniania Entra ID)
|
||||
- Backdoor w VM (jeśli używana jest VM SQL)
|
||||
- Utworzenie reguły FW w celu utrzymania dostępu do bazy danych SQL
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
|
||||
@@ -46,7 +46,7 @@ az storage message update --queue-name <queue-name> \
|
||||
```
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete`
|
||||
|
||||
To uprawnienie pozwala atakującemu na usunięcie kolejek w ramach konta magazynowego. Wykorzystując tę zdolność, atakujący może trwale usunąć kolejki i wszystkie ich powiązane wiadomości, co powoduje znaczące zakłócenia w przepływie pracy i prowadzi do krytycznej utraty danych dla aplikacji, które polegają na dotkniętych kolejkach. Ta akcja może być również użyta do sabotażu usług poprzez usunięcie istotnych komponentów systemu.
|
||||
To uprawnienie pozwala atakującemu na usunięcie kolejek w ramach konta magazynowego. Wykorzystując tę zdolność, atakujący może trwale usunąć kolejki i wszystkie ich powiązane wiadomości, co powoduje znaczne zakłócenia w przepływie pracy i prowadzi do krytycznej utraty danych dla aplikacji, które polegają na dotkniętych kolejkach. Ta akcja może być również użyta do sabotażu usług poprzez usunięcie istotnych komponentów systemu.
|
||||
```bash
|
||||
az storage queue delete --name <queue-name> --account-name <storage-account>
|
||||
```
|
||||
@@ -58,7 +58,7 @@ az storage message clear --queue-name <queue-name> --account-name <storage-accou
|
||||
```
|
||||
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
|
||||
|
||||
To uprawnienie pozwala atakującemu na tworzenie lub modyfikowanie kolejek i ich właściwości w ramach konta magazynu. Może być używane do tworzenia nieautoryzowanych kolejek, modyfikowania metadanych lub zmiany list kontroli dostępu (ACL), aby przyznać lub ograniczyć dostęp. Ta zdolność może zakłócić przepływy pracy, wstrzyknąć złośliwe dane, wykradać wrażliwe informacje lub manipulować ustawieniami kolejek, aby umożliwić dalsze ataki.
|
||||
To uprawnienie pozwala atakującemu na tworzenie lub modyfikowanie kolejek i ich właściwości w ramach konta magazynowego. Może być używane do tworzenia nieautoryzowanych kolejek, modyfikowania metadanych lub zmiany list kontroli dostępu (ACL), aby przyznać lub ograniczyć dostęp. Ta zdolność może zakłócać przepływy pracy, wstrzykiwać złośliwe dane, eksfiltrując wrażliwe informacje lub manipulować ustawieniami kolejek, aby umożliwić dalsze ataki.
|
||||
```bash
|
||||
az storage queue create --name <new-queue-name> --account-name <storage-account>
|
||||
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-servicebus-enum.md
|
||||
../az-services/az-servicebus.md
|
||||
{{#endref}}
|
||||
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/Delete`
|
||||
@@ -24,7 +24,7 @@ az servicebus topic delete --resource-group <ResourceGroupName> --namespace-name
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/queues/Delete`
|
||||
|
||||
Atakujący z tym uprawnieniem może usunąć kolejkę Azure Service Bus. Ta akcja usuwa kolejkę oraz wszystkie wiadomości w niej, co może prowadzić do utraty krytycznych danych i zakłócenia systemów oraz przepływów pracy zależnych od kolejki.
|
||||
Atakujący z tym uprawnieniem może usunąć kolejkę Azure Service Bus. Ta akcja usuwa kolejkę oraz wszystkie wiadomości w niej, co może prowadzić do utraty krytycznych danych i zakłócenia systemów oraz procesów zależnych od kolejki.
|
||||
```bash
|
||||
az servicebus queue delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
```
|
||||
@@ -36,7 +36,7 @@ az servicebus topic subscription delete --resource-group <ResourceGroupName> --n
|
||||
```
|
||||
### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
|
||||
|
||||
Napastnik z uprawnieniami do tworzenia lub modyfikowania kolejek Azure Service Bus (aby zmodyfikować kolejkę, będziesz również potrzebować akcji: `Microsoft.ServiceBus/namespaces/queues/read`) może to wykorzystać do przechwytywania danych, zakłócania przepływów pracy lub umożliwienia nieautoryzowanego dostępu. Mogą zmieniać krytyczne konfiguracje, takie jak przekazywanie wiadomości do złośliwych punktów końcowych, dostosowywanie TTL wiadomości w celu niewłaściwego przechowywania lub usuwania danych, lub włączanie dead-lettering w celu zakłócania obsługi błędów. Dodatkowo mogą manipulować rozmiarami kolejek, czasami blokady lub statusami, aby zakłócać funkcjonalność usługi lub unikać wykrycia, co czyni to istotnym ryzykiem po eksploatacji.
|
||||
Atakujący z uprawnieniami do tworzenia lub modyfikowania kolejek Azure Service Bus (aby zmodyfikować kolejkę, będziesz również potrzebować akcji: `Microsoft.ServiceBus/namespaces/queues/read`) może to wykorzystać do przechwytywania danych, zakłócania przepływów pracy lub umożliwienia nieautoryzowanego dostępu. Mogą zmieniać krytyczne konfiguracje, takie jak przekazywanie wiadomości do złośliwych punktów końcowych, dostosowywanie TTL wiadomości w celu niewłaściwego przechowywania lub usuwania danych, lub włączanie dead-lettering w celu zakłócania obsługi błędów. Dodatkowo mogą manipulować rozmiarami kolejek, czasami blokady lub statusami, aby zakłócać funkcjonalność usługi lub unikać wykrycia, co czyni to istotnym ryzykiem po eksploatacji.
|
||||
```bash
|
||||
az servicebus queue create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
az servicebus queue update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-queue-enum.md
|
||||
../az-services/az-queue.md
|
||||
{{#endref}}
|
||||
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
|
||||
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
|
||||
```
|
||||
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
|
||||
|
||||
To uprawnienie pozwala atakującemu na dodawanie nowych wiadomości lub aktualizowanie istniejących w Azure Storage Queue. Korzystając z tego, mogą wprowadzać szkodliwe treści lub zmieniać istniejące wiadomości, co może wprowadzać w błąd aplikacje lub powodować niepożądane zachowania w systemach, które polegają na kolejce.
|
||||
To uprawnienie pozwala atakującemu na dodawanie nowych wiadomości lub aktualizowanie istniejących w Azure Storage Queue. Używając tego, mogą wprowadzać szkodliwe treści lub zmieniać istniejące wiadomości, co może wprowadzać w błąd aplikacje lub powodować niepożądane zachowania w systemach, które polegają na kolejce.
|
||||
```bash
|
||||
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
|
||||
|
||||
|
||||
+14
-9
@@ -7,12 +7,12 @@
|
||||
Aby uzyskać więcej informacji, sprawdź:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-servicebus-enum.md
|
||||
../az-services/az-servicebus.md
|
||||
{{#endref}}
|
||||
|
||||
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
|
||||
|
||||
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.
|
||||
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 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.
|
||||
|
||||
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
|
||||
@@ -31,7 +31,7 @@ az servicebus namespace authorization-rule create --authorization-rule-name "myR
|
||||
>[!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ę 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:
|
||||
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> \
|
||||
@@ -57,7 +57,7 @@ az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey
|
||||
```
|
||||
### 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:
|
||||
Dzięki temu uprawnieniu możliwe jest **utworzenie nowej reguły 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
|
||||
@@ -68,7 +68,7 @@ az servicebus queue authorization-rule create --resource-group <res-group> --nam
|
||||
>[!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:
|
||||
Ponadto, za pomocą tego polecenia (i `Microsoft.ServiceBus/namespaces/[queues|topics]/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
|
||||
# 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
|
||||
@@ -82,13 +82,14 @@ Z tymi uprawnieniami **atakujący może ponownie włączyć "lokalne uwierzyteln
|
||||
```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)
|
||||
### Wysyłanie wiadomości z kluczami (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/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. Ta metoda działa, jeśli `--disable-local-auth` jest ustawione na false.
|
||||
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. Ta metoda działa, jeśli `--disable-local-auth` jest ustawione na false (więc lokalne uwierzytelnianie jest włączone).
|
||||
```python
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
# pip install azure-servicebus
|
||||
|
||||
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
|
||||
TOPIC_OR_QUEUE_NAME = "<TOPIC_OR_QUEUE_NAME>"
|
||||
@@ -129,12 +130,13 @@ az rest --method post \
|
||||
--body "<MESSAGE_BODY>"
|
||||
|
||||
```
|
||||
### Odbierz za pomocą kluczy (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
|
||||
### Receive with keys (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
|
||||
|
||||
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. Ta metoda działa, jeśli `--disable-local-auth` jest ustawione na false.
|
||||
```python
|
||||
import asyncio
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
# pip install azure-servicebus
|
||||
|
||||
CONN_STR = "<PrimaryConnectionString>"
|
||||
QUEUE = "<QUEUE_NAME>"
|
||||
@@ -224,13 +226,15 @@ import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
from azure.servicebus import ServiceBusMessage
|
||||
# pip install azure-servicebus
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net" # Your namespace
|
||||
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
|
||||
QUEUE_OR_TOPIC = "<QUEUE_OR_TOPIC>" # Your queue name
|
||||
|
||||
async def run():
|
||||
credential = DefaultAzureCredential()
|
||||
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
|
||||
#async with client.get_topic_sender(topic_name=TOPIC) as sender: # Use this to send the message to a topic
|
||||
async with client.get_queue_sender(queue_name=QUEUE) as sender:
|
||||
await sender.send_messages(ServiceBusMessage("Single Message"))
|
||||
print("Sent a single message")
|
||||
@@ -246,6 +250,7 @@ Możesz użyć tych uprawnień do odbierania wiadomości, nawet jeśli `--disabl
|
||||
import asyncio
|
||||
from azure.identity.aio import DefaultAzureCredential
|
||||
from azure.servicebus.aio import ServiceBusClient
|
||||
# pip install azure-servicebus
|
||||
|
||||
NS = "<namespace>.servicebus.windows.net"
|
||||
QUEUE = "<QUEUE>"
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
Azure Queue Storage to usługa w chmurze Azure firmy Microsoft zaprojektowana do kolejkowania wiadomości między komponentami aplikacji, **umożliwiająca asynchroniczną komunikację i odseparowanie**. Umożliwia przechowywanie nieograniczonej liczby wiadomości, z których każda ma rozmiar do 64 KB, i obsługuje operacje takie jak tworzenie i usuwanie kolejek, dodawanie, pobieranie, aktualizowanie i usuwanie wiadomości, a także zarządzanie metadanymi i politykami dostępu. Chociaż zazwyczaj przetwarza wiadomości w sposób first-in-first-out (FIFO), ścisłe FIFO nie jest gwarantowane.
|
||||
Azure Queue Storage to usługa w chmurze Azure firmy Microsoft zaprojektowana do kolejkowania wiadomości między komponentami aplikacji, **umożliwiająca asynchroniczną komunikację i odseparowanie**. Umożliwia przechowywanie nieograniczonej liczby wiadomości, z których każda ma rozmiar do 64 KB, i obsługuje operacje takie jak tworzenie i usuwanie kolejek, dodawanie, pobieranie, aktualizowanie i usuwanie wiadomości, a także zarządzanie metadanymi i politykami dostępu. Chociaż zazwyczaj przetwarza wiadomości w sposób FIFO (first-in-first-out), ścisłe FIFO nie jest gwarantowane.
|
||||
|
||||
### Enumeracja
|
||||
|
||||
+20
-20
@@ -14,7 +14,7 @@ Azure Service Bus to oparta na chmurze **usługa komunikacyjna**, zaprojektowana
|
||||
- Dostarczane w trybie pull (na żądanie) do jednego konsumenta.
|
||||
- Może być skonfigurowana tak, aby po udostępnieniu wiadomości była automatycznie usuwana lub w trybie „Peek lock”, gdzie konsument musi potwierdzić, że może zostać usunięta. W przeciwnym razie wiadomość wróci do kolejki.
|
||||
- Obsługuje komunikację punkt-punkt.
|
||||
3. **Topics:** Komunikacja typu publish-subscribe do nadawania.
|
||||
3. **Topics:** Komunikacja publish-subscribe do nadawania.
|
||||
- Wiele niezależnych subskrypcji otrzymuje kopie wiadomości.
|
||||
- Każda subskrypcja jest jak kolejka wewnątrz tematu.
|
||||
- Subskrypcje mogą mieć zasady/filtry do kontrolowania dostarczania lub dodawania metadanych.
|
||||
@@ -27,35 +27,35 @@ https://<namespace>.servicebus.windows.net:443/
|
||||
|
||||
Niektóre zaawansowane funkcje to:
|
||||
|
||||
- **Message Sessions**: Zapewnia przetwarzanie FIFO i wspiera wzorce request-response.
|
||||
- **Auto-Forwarding**: Przenosi wiadomości między kolejkami lub tematami w tej samej przestrzeni nazw.
|
||||
- **Dead-Lettering**: Zbiera wiadomości, które nie mogły być dostarczone do przeglądu.
|
||||
- **Scheduled Delivery**: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
|
||||
- **Message Deferral**: Odkłada pobieranie wiadomości do momentu, gdy będzie to możliwe.
|
||||
- **Transactions**: Grupuje operacje w atomowe wykonanie.
|
||||
- **Filters & Actions**: Stosuje zasady do filtrowania lub adnotacji wiadomości.
|
||||
- **Auto-Delete on Idle**: Usuwa kolejki po okresie bezczynności (min: 5 minut).
|
||||
- **Duplicate Detection**: Usuwa duplikaty wiadomości podczas ponownych wysyłek.
|
||||
- **Batch Deletion**: Masowo usuwa wygasłe lub niepotrzebne wiadomości.
|
||||
- **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.
|
||||
- **Dead-Lettering**: Zbiera wiadomości, które nie mogą być dostarczone do przeglądu.
|
||||
- **Zaplanuje dostawę**: Opóźnia przetwarzanie wiadomości na przyszłe zadania.
|
||||
- **Odwlekanie wiadomości**: Odkłada pobieranie wiadomości do momentu, gdy będzie to możliwe.
|
||||
- **Transakcje**: Grupuje operacje w atomowe wykonanie.
|
||||
- **Filtry i akcje**: Stosuje zasady do filtrowania lub adnotacji wiadomości.
|
||||
- **Automatyczne usuwanie po bezczynności**: Usuwa kolejki po braku aktywności (min: 5 minut).
|
||||
- **Wykrywanie duplikatów**: Usuwa duplikaty wiadomości podczas ponownych wysyłek.
|
||||
- **Usuwanie wsadowe**: Masowo usuwa wygasłe lub niepotrzebne wiadomości.
|
||||
|
||||
### Uwierzytelnianie lokalne
|
||||
|
||||
Parametr **`--disable-local-auth`** z az cli jest używany do kontrolowania, czy **uwierzytelnianie lokalne** (pozwalające na użycie kluczy Shared Access Signature (SAS)) jest włączone dla Twojej przestrzeni nazw Service Bus.
|
||||
Parametr **`--disable-local-auth`** z az cli służy do kontrolowania, czy **uwierzytelnianie lokalne** (pozwalające na użycie kluczy Shared Access Signature (SAS)) jest włączone dla Twojej przestrzeni nazw Service Bus.
|
||||
|
||||
- Gdy disable jest ustawione na **true**: Uwierzytelnianie lokalne przy użyciu kluczy SAS jest wyłączone, a uwierzytelnianie Entra ID jest dozwolone.
|
||||
- Gdy disable jest ustawione na **false (domyślnie)**: Zarówno uwierzytelnianie lokalne SAS, jak i uwierzytelnianie Entra ID są dostępne, a Ty możesz używać ciągów połączeń z kluczami SAS do uzyskiwania dostępu do zasobów Service Bus.
|
||||
|
||||
### Reguła autoryzacji / Polityka SAS
|
||||
|
||||
Polityki SAS definiują uprawnienia dostępu do jednostek przestrzeni nazw Azure Service Bus (najważniejsza), kolejek i tematów. Każda polityka ma następujące komponenty:
|
||||
Polityki SAS definiują uprawnienia dostępu do jednostek Azure Service Bus w przestrzeni nazw (najważniejsza), kolejek i tematów. Każda polityka ma następujące komponenty:
|
||||
|
||||
- **Permissions**: Pola wyboru do określenia poziomów dostępu:
|
||||
- Manage: Przyznaje pełną kontrolę nad jednostką, w tym zarządzanie konfiguracją i uprawnieniami.
|
||||
- Send: Pozwala na wysyłanie wiadomości do jednostki.
|
||||
- Listen: Pozwala na odbieranie wiadomości z jednostki.
|
||||
- **Primary and Secondary Keys**: To klucze kryptograficzne używane do generowania bezpiecznych tokenów do uwierzytelniania dostępu.
|
||||
- **Primary and Secondary Connection Strings**: Wstępnie skonfigurowane ciągi połączeń, które zawierają punkt końcowy i klucz do łatwego użycia w aplikacjach.
|
||||
- **SAS Policy ARM ID**: Ścieżka Azure Resource Manager (ARM) do polityki w celu identyfikacji programowej.
|
||||
- **Uprawnienia**: Pola wyboru do określenia poziomów dostępu:
|
||||
- Zarządzaj: Przyznaje pełną kontrolę nad jednostką, w tym zarządzanie konfiguracją i uprawnieniami.
|
||||
- Wyślij: Pozwala na wysyłanie wiadomości do jednostki.
|
||||
- Słuchaj: Pozwala na odbieranie wiadomości z jednostki.
|
||||
- **Klucze główne i pomocnicze**: To klucze kryptograficzne używane do generowania bezpiecznych tokenów do uwierzytelniania dostępu.
|
||||
- **Ciągi połączeń główne i pomocnicze**: Wstępnie skonfigurowane ciągi połączeń, które zawierają punkt końcowy i klucz do łatwego użycia w aplikacjach.
|
||||
- **ID polityki SAS ARM**: Ścieżka Azure Resource Manager (ARM) do polityki w celu identyfikacji programowej.
|
||||
|
||||
Ważne jest, aby zauważyć, że przestrzeń nazw ma jedną politykę SAS, która wpływa na każdą jednostkę w jej obrębie, podczas gdy kolejki i tematy mogą mieć swoje własne indywidualne polityki SAS dla bardziej szczegółowej kontroli.
|
||||
|
||||
@@ -36,7 +36,7 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
|
||||
- Jak zawsze, domyślnie używany jest zarządzany klucz Azure, ale można również użyć klucza szyfrowania zarządzanego przez klienta (CMEK).
|
||||
**Zarządzane tożsamości:**
|
||||
|
||||
- Możliwe jest przypisanie zarządzanych tożsamości systemowych i użytkowników.
|
||||
- Możliwe jest przypisanie systemowych i użytkownikowych zarządzanych tożsamości.
|
||||
- Używane do uzyskiwania dostępu do klucza szyfrowania (jeśli używany jest CMEK) i innych usług z baz danych.
|
||||
- Jeśli przypisano więcej niż jedną UMI, możliwe jest wskazanie domyślnej do użycia.
|
||||
- Możliwe jest skonfigurowanie tożsamości klienta federacyjnego do dostępu między tenantami.
|
||||
@@ -54,7 +54,7 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
|
||||
|
||||
## Azure SQL Database
|
||||
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma bazy danych jako usługa (PaaS)**, która zapewnia skalowalne i bezpieczne rozwiązania baz danych relacyjnych. Zbudowana jest na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma bazy danych jako usługa (PaaS)**, która zapewnia skalowalne i bezpieczne rozwiązania relacyjnych baz danych. Zbudowana jest na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
|
||||
Aby utworzyć bazę danych SQL, należy wskazać serwer SQL, na którym będzie hostowana.
|
||||
|
||||
@@ -68,26 +68,26 @@ Aby utworzyć bazę danych SQL, należy wskazać serwer SQL, na którym będzie
|
||||
- Szyfrowanie
|
||||
- Kopie zapasowe
|
||||
- …
|
||||
- **Nadmiarowość danych:** Opcje to lokalna, strefowa, geograficzna lub geograficznie strefowa nadmiarowość.
|
||||
- **Redundancja danych:** Opcje to lokalna, strefowa, geograficzna lub geograficzno-strefowa.
|
||||
- **Księga:** Kryptograficznie weryfikuje integralność danych, zapewniając, że wszelkie manipulacje są wykrywane. Przydatne dla finansów, medycyny i każdej organizacji zarządzającej wrażliwymi danymi.
|
||||
|
||||
Baza danych SQL może być częścią **elastycznego zbioru**. Elastyczne zbiory to opłacalne rozwiązanie do zarządzania wieloma bazami danych poprzez dzielenie konfigurowalnych zasobów obliczeniowych (eDTUs) i pamięci masowej między nimi, z ceną opartą wyłącznie na przydzielonych zasobach, a nie na liczbie baz danych.
|
||||
|
||||
#### Azure SQL Bezpieczeństwo na poziomie kolumn (Maskowanie) i bezpieczeństwo na poziomie wierszy
|
||||
#### Azure SQL Column Level Security (Maskowanie) & Row Level Security
|
||||
|
||||
**Dynamiczne** maskowanie danych Azure SQL to funkcja, która pomaga **chronić wrażliwe informacje, ukrywając je** przed nieautoryzowanymi użytkownikami. Zamiast zmieniać rzeczywiste dane, dynamicznie maskuje wyświetlane dane, zapewniając, że wrażliwe szczegóły, takie jak numery kart kredytowych, są ukryte.
|
||||
|
||||
**Dynamiczne maskowanie danych** dotyczy wszystkich użytkowników z wyjątkiem tych, którzy są odmaskowani (ci użytkownicy muszą być wskazani) oraz administratorów. Posiada opcję konfiguracji, która określa, którzy użytkownicy SQL są zwolnieni z dynamicznego maskowania danych, przy czym **administratorzy są zawsze wyłączeni**.
|
||||
**Dynamiczne maskowanie danych** dotyczy wszystkich użytkowników, z wyjątkiem tych, którzy są odmaskowani (ci użytkownicy muszą być wskazani) oraz administratorów. Posiada opcję konfiguracji, która określa, którzy użytkownicy SQL są zwolnieni z dynamicznego maskowania danych, przy czym **administratorzy są zawsze wyłączeni**.
|
||||
|
||||
**Bezpieczeństwo na poziomie wierszy Azure SQL (RLS)** to funkcja, która **kontroluje, które wiersze użytkownik może przeglądać lub modyfikować**, zapewniając, że każdy użytkownik widzi tylko dane istotne dla niego. Tworząc polityki zabezpieczeń z filtrami lub predykatami blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
|
||||
**Azure SQL Row Level Security (RLS)** to funkcja, która **kontroluje, które wiersze użytkownik może przeglądać lub modyfikować**, zapewniając, że każdy użytkownik widzi tylko dane istotne dla niego. Tworząc polityki zabezpieczeń z filtrami lub predykatami blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instances** są przeznaczone do większych wdrożeń w skali całej instancji SQL Server. Zapewnia niemal 100% zgodności z najnowszym SQL Server w wersji lokalnej (edycja Enterprise), co zapewnia natywną implementację sieci wirtualnej (VNet), która odpowiada na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
**Azure SQL Managed Instances** są przeznaczone dla większych wdrożeń w skali całej instancji SQL Server. Zapewnia niemal 100% zgodności z najnowszym SQL Server w wersji lokalnej (edycja Enterprise), co zapewnia natywną implementację sieci wirtualnej (VNet), która odpowiada na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
|
||||
### Azure SQL Maszyny Wirtualne
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Maszyny Wirtualne** pozwalają na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ maszyna wirtualna będzie uruchamiana w usłudze VM działającej na serwerze SQL.
|
||||
**Azure SQL Virtual Machines** pozwala na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ maszyna wirtualna będzie uruchamiana w usłudze VM działającej na serwerze SQL.
|
||||
|
||||
Gdy tworzona jest maszyna wirtualna SQL, możliwe jest **wybranie wszystkich ustawień VM** (jak pokazano w lekcji o VM), które będą hostować serwer SQL.
|
||||
- Oznacza to, że VM będzie uzyskiwać dostęp do niektórych VNet(ów), może mieć **przypisane zarządzane tożsamości**, może mieć zamontowane udziały plików… co czyni **przechodzenie z SQL** do VM bardzo interesującym.
|
||||
@@ -95,7 +95,7 @@ Gdy tworzona jest maszyna wirtualna SQL, możliwe jest **wybranie wszystkich ust
|
||||
|
||||
Możliwe jest również skonfigurowanie takich rzeczy jak **automatyczne aktualizacje SQL**, **automatyczne kopie zapasowe**, **uwierzytelnianie Entra ID** i większość funkcji innych usług SQL.
|
||||
|
||||
## Enumeracja
|
||||
## Enumeration
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
@@ -232,7 +232,7 @@ Get-AzSqlVM
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
Dodatkowo, jeśli chcesz wyliczyć Dynamic Data Masking oraz Row Level policies w obrębie bazy danych, możesz zapytać:
|
||||
Dodatkowo, jeśli chcesz wyliczyć Dynamic Data Masking oraz Row Level policies w bazie danych, możesz zapytać:
|
||||
```sql
|
||||
--Enumerates the masked columns
|
||||
SELECT
|
||||
@@ -301,4 +301,10 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
### Utrzymywanie
|
||||
|
||||
{{#ref}}
|
||||
../az-persistence/az-sql-persistance.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user