Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue

This commit is contained in:
Translator
2025-02-20 00:55:11 +00:00
parent 6aef397a41
commit 4cdfa25993
10 changed files with 78 additions and 46 deletions
+3 -2
View File
@@ -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,12 +7,12 @@
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Bu izin, bir saldırganın depolama hesabı içinde kuyruklar ve bunların özelliklerini oluşturmasına veya değiştirmesine olanak tanır. Yetkisiz kuyruklar oluşturmak, meta verileri değiştirmek veya erişim kontrol listelerini (ACL'ler) değiştirerek erişimi vermek veya kısıtlamak için kullanılabilir. Bu yetenek, iş akışlarını bozabilir, kötü niyetli veriler enjekte edebilir, hassas bilgileri dışarı sızdırabilir veya daha fazla saldırıyı mümkün kılmak için kuyruk ayarlarını manipüle edebilir.
Bu izin, bir saldırganın depolama hesabı içinde kuyruklar ve bunların özelliklerini oluşturmasına veya değiştirmesine olanak tanır. Yetkisiz kuyruklar oluşturmak, meta verileri değiştirmek veya erişim kontrol listelerini (ACL'ler) değiştirerek erişimi vermek veya kısıtlamak için kullanılabilir. Bu yetenek, iş akışlarını kesintiye uğratabilir, kötü niyetli veriler enjekte edebilir, hassas bilgileri dışarı sızdırabilir veya daha fazla saldırıyı mümkün kılmak için kuyruk ayarlarını manipüle edebilir.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -0,0 +1,20 @@
# Az - SQL Persistence
{{#include ../../../banners/hacktricks-training.md}}
## SQL
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
### Yaygın Süreklilik Teknikleri
- SQL kimlik bilgilerini ele geçirin veya bir SQL kullanıcısı oluşturun (gerekirse SQL kimlik doğrulamasını etkinleştirin)
- Ele geçirilmiş bir kullanıcıyı Entra ID yöneticisi olarak atayın (gerekirse Entra ID kimlik doğrulamasını etkinleştirin)
- VM'de arka kapı (eğer SQL VM kullanılıyorsa)
- SQL veritabanına erişimi sürdürmek için bir FW kuralı oluşturun
{{#include ../../../banners/hacktricks-training.md}}
@@ -7,12 +7,12 @@
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
Bu izne sahip bir saldırgan, Azure Storage Queue'dan mesajları görebilir. Bu, saldırgana mesajların içeriğini işlenmiş olarak işaretlemeden veya durumlarını değiştirmeden görüntüleme imkanı tanır. Bu, hassas bilgilere yetkisiz erişime yol açabilir ve veri sızdırma veya daha fazla saldırı için istihbarat toplama imkanı sağlayabilir.
Bu izne sahip bir saldırgan, bir Azure Storage Queue'dan mesajları önizleyebilir. Bu, saldırgana mesajların içeriğini işlenmiş olarak işaretlemeden veya durumlarını değiştirmeden görüntüleme imkanı tanır. Bu, hassas bilgilere yetkisiz erişime yol açabilir ve veri sızdırma veya daha fazla saldırı için istihbarat toplama imkanı sağlayabilir.
```bash
az storage message peek --queue-name <queue_name> --account-name <storage_account>
```
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
Bu izinle, bir saldırgan Azure Storage Queue'dan mesajları alabilir ve işleyebilir. Bu, mesaj içeriğini okuyabilecekleri ve işlenmiş olarak işaretleyebilecekleri anlamına gelir, bu da onu meşru sistemlerden gizler. Bu, hassas verilerin ifşa edilmesine, mesajların nasıl işlendiğinde kesintilere veya mesajları hedef kullanıcılarına ulaştırmamayı sağlayarak önemli iş akışlarının durmasına yol açabilir.
Bu izinle, bir saldırgan bir Azure Storage Kuyruğundan mesajları alabilir ve işleyebilir. Bu, mesaj içeriğini okuyabilecekleri ve işlenmiş olarak işaretleyebilecekleri anlamına gelir, bu da onu meşru sistemlerden gizler. Bu, hassas verilerin ifşa edilmesine, mesajların nasıl işlendiğinde kesintilere veya mesajları hedef kullanıcılarına ulaştırmamayı sağlayarak önemli iş akışlarının durmasına yol açabilir.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -7,12 +7,12 @@
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Actions: `Microsoft.ServiceBus/namespaces/Delete`
Bu izne sahip bir saldırgan, tüm Azure Service Bus ad alanını silebilir. Bu eylem, ad alanını ve ona bağlı tüm kaynakları, kuyruklar, konular, abonelikler ve bunların mesajları dahil olmak üzere, kaldırarak tüm bağımlı sistemler ve iş akışları üzerinde geniş çapta kesintiye ve kalıcı veri kaybına neden olur.
Bu izne sahip bir saldırgan, tüm Azure Service Bus ad alanını silebilir. Bu eylem, ad alanını ve ona bağlı tüm kaynakları, kuyruklar, konular, abonelikler ve bunların mesajları dahil olmak üzere, kaldırarak, tüm bağımlı sistemler ve iş akışları üzerinde geniş çapta kesintiye ve kalıcı veri kaybına neden olur.
```bash
az servicebus namespace delete --resource-group <ResourceGroupName> --name <NamespaceName>
```
@@ -30,7 +30,7 @@ az servicebus queue delete --resource-group <ResourceGroupName> --namespace-name
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/Delete`
Bu izne sahip bir saldırgan, bir Azure Service Bus aboneliğini silebilir. Bu eylem, aboneliği ve ona bağlı tüm mesajları kaldırır, bu da aboneliğe dayanan iş akışlarını, veri işleme süreçlerini ve sistem operasyonlarını kesintiye uğratabilir.
Bu izne sahip bir saldırgan, bir Azure Service Bus aboneliğini silebilir. Bu eylem, aboneliği ve ona bağlı tüm mesajları kaldırır, bu da aboneliğe dayanan iş akışlarını, veri işleme süreçlerini ve sistem operasyonlarını potansiyel olarak kesintiye uğratabilir.
```bash
az servicebus topic subscription delete --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
```
@@ -43,14 +43,14 @@ az servicebus queue update --resource-group <ResourceGroupName> --namespace-name
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`)
Bir Azure Service Bus ad alanında konuları oluşturma veya değiştirme izinlerine sahip bir saldırgan, mesaj iş akışlarını kesintiye uğratmak, hassas verileri açığa çıkarmak veya yetkisiz eylemleri etkinleştirmek için bunu istismar edebilir. az servicebus topic update gibi komutlar kullanarak, ölçeklenebilirlik kötüye kullanımı için bölümlendirmeyi etkinleştirme, mesajları yanlış bir şekilde saklamak veya atmak için TTL ayarlarını değiştirme veya kontrolleri atlatmak için kopya tespitini devre dışı bırakma gibi yapılandırmaları manipüle edebilirler. Ayrıca, konu boyut sınırlarını ayarlayabilir, durumu değiştirerek kullanılabilirliği kesintiye uğratabilir veya yakalanan mesajları geçici olarak depolamak için hızlı konuları yapılandırarak konu yönetimini post-exploitation azaltma için kritik bir odak haline getirebilirler.
Bir Azure Service Bus ad alanında konuları oluşturma veya değiştirme izinlerine sahip bir saldırgan, mesaj iş akışlarını kesintiye uğratmak, hassas verileri açığa çıkarmak veya yetkisiz eylemleri etkinleştirmek için bunu istismar edebilir. az servicebus topic update gibi komutlar kullanarak, ölçeklenebilirlik kötüye kullanımı için bölümlendirmeyi etkinleştirme, mesajları yanlış bir şekilde saklamak veya atmak için TTL ayarlarını değiştirme veya kontrolleri atlatmak için tekrar eden tespiti devre dışı bırakma gibi yapılandırmaları manipüle edebilirler. Ayrıca, konu boyut sınırlarını ayarlayabilir, durumu değiştirerek kullanılabilirliği kesintiye uğratabilir veya yakalanan mesajları geçici olarak depolamak için hızlı konuları yapılandırarak konu yönetimini post-exploitation azaltma için kritik bir odak haline getirebilirler.
```bash
az servicebus topic create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
az servicebus topic update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <TopicName>
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)
Abone oluşturma veya değiştirme izinlerine sahip bir saldırgan (aboneyi değiştirmek için ayrıca Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read` gereklidir) bir Azure Service Bus konusundaki abonelikleri kullanarak mesaj iş akışlarını kesmek, yönlendirmek veya bozmak için bunu istismar edebilir. az servicebus topic subscription update gibi komutlar kullanarak, mesajları yönlendirmek için ölü mektup özelliğini etkinleştirmek, mesajları yetkisiz uç noktalara iletmek veya mesaj teslimatını sürdürmek veya müdahale etmek için TTL ve kilit süresini değiştirmek gibi yapılandırmaları manipüle edebilirler. Ayrıca, operasyonları bozmak veya tespitten kaçmak için durum veya maksimum teslimat sayısı ayarlarını değiştirebilirler, bu da abonelik kontrolünü sonrası istismar senaryolarının kritik bir yönü haline getirir.
Abone oluşturma veya değiştirme izinlerine sahip bir saldırgan, Azure Service Bus konusundaki abonelikleri kullanarak mesaj iş akışlarını kesmek, yönlendirmek veya bozmak için bunu istismar edebilir. `az servicebus topic subscription update` gibi komutlar kullanarak, mesajları yönlendirmek için ölü mektup (dead lettering) etkinleştirme, yetkisiz uç noktalara mesaj iletme veya mesaj teslimatını sürdürmek veya müdahale etmek için TTL ve kilit süresini değiştirme gibi yapılandırmaları manipüle edebilirler. Ayrıca, operasyonları bozmak veya tespiti atlatmak için durum veya maksimum teslimat sayısı ayarlarını değiştirebilirler; bu da abonelik kontrolünü, sonrası istismar senaryolarının kritik bir yönü haline getirir.
```bash
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
@@ -7,7 +7,7 @@
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-queue-enum.md
../az-services/az-queue.md
{{#endref}}
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
Bu izinle, bir saldırgan bir Azure Storage Queue'dan mesajları alabilir ve işleyebilir. Bu, mesaj içeriğini okuyabilecekleri ve işlenmiş olarak işaretleyebilecekleri anlamına gelir, bu da onu meşru sistemlerden gizler. Bu, hassas verilerin ifşa edilmesine, mesajların nasıl işlendiğinde kesintilere veya mesajları hedef kullanıcılarına ulaştırmamayı sağlayarak önemli iş akışlarının durmasına yol açabilir.
Bu izinle, bir saldırgan Azure Storage Queue'dan mesajları alabilir ve işleyebilir. Bu, mesaj içeriğini okuyabilecekleri ve işlenmiş olarak işaretleyebilecekleri anlamına gelir, bu da onu meşru sistemlerden gizler. Bu, hassas verilerin ifşa edilmesine, mesajların nasıl işlendiğinde kesintilere veya mesajları hedef kullanıcılarına ulaştırmamayı sağlayarak önemli iş akışlarının durmasına yol açabilir.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -7,14 +7,14 @@
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-servicebus-enum.md
../az-services/az-servicebus.md
{{#endref}}
### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action VEYA Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action
Bu izinler, bir Service Bus ad alanındaki yerel yetkilendirme kuralları için anahtarları almanıza veya yeniden oluşturmanıza olanak tanır. Bu anahtarları kullanarak, Service Bus ad alanı olarak kimlik doğrulaması yapabilir, herhangi bir kuyruk veya konuya mesaj gönderebilir, herhangi bir kuyruktan veya abonelikten mesaj alabilir veya sistemle, operasyonları kesintiye uğratabilecek, geçerli kullanıcıları taklit edebilecek veya mesajlaşma iş akışına kötü niyetli veriler enjekte edebilecek şekillerde etkileşimde bulunabilirsiniz.
Varsayılan olarak **`RootManageSharedAccessKey` kuralının** Service Bus ad alanı üzerinde tam kontrolü vardır ve bu, `az` cli tarafından kullanılır; ancak, başka anahtar değerlerine sahip diğer kurallar da mevcut olabilir.
Varsayılan olarak, **`RootManageSharedAccessKey` kuralı,** Service Bus ad alanı üzerinde tam kontrol sağlar ve `az` cli tarafından kullanılır, ancak başka anahtar değerlerine sahip diğer kurallar da mevcut olabilir.
```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]
@@ -31,7 +31,7 @@ az servicebus namespace authorization-rule create --authorization-rule-name "myR
>[!WARNING]
>Bu komut anahtarlarla yanıt vermez, bu nedenle ayrıcalıkları artırmak için önceki komutlar (ve izinler) ile bunları almanız gerekir.
Ayrıca, bu komutla (`Microsoft.ServiceBus/namespaces/authorizationRules/read`) Azure CLI üzerinden bu işlemi gerçekleştirirseniz, mevcut bir yetkilendirme kuralını güncelleyip ona daha fazla izin verebilirsiniz (eğer bazı izinlerden yoksunsa) aşağıdaki komutla:
Ayrıca, bu komutla (`Microsoft.ServiceBus/namespaces/authorizationRules/read`) Azure CLI aracılığıyla bu işlemi gerçekleştirirseniz, mevcut bir yetkilendirme kuralını güncelleyip ona daha fazla izin verebilirsiniz (eğer bazı izinlerden yoksunsa) aşağıdaki komutla:
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
@@ -68,7 +68,7 @@ az servicebus queue authorization-rule create --resource-group <res-group> --nam
>[!WARNING]
>Bu komut anahtarlarla yanıt vermez, bu nedenle ayrıcalıkları artırmak için önceki komutlar (ve izinler) ile bunları almanız gerekir.
Ayrıca, bu komutla (`Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) Azure CLI üzerinden bu işlemi gerçekleştirirseniz, mevcut bir yetkilendirme kuralını güncellemek ve ona daha fazla izin vermek mümkündür (eğer bazı izinlerden yoksun ise) aşağıdaki komut ile:
Ayrıca, bu komutla (`Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`) Azure CLI üzerinden bu işlemi gerçekleştirirseniz, mevcut bir yetkilendirme kuralını güncelleyip ona daha fazla izin verebilirsiniz (eğer bazı izinlerden yoksun ise) aşağıdaki komutla:
```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
@@ -76,19 +76,20 @@ az servicebus topic authorization-rule update --resource-group <res-group> --nam
# 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 eğer az cli kullanılıyorsa)
### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used)
Bu izinlerle **bir saldırgan "yerel kimlik doğrulamasını" yeniden etkinleştirebilir** ve bu nedenle paylaşılan politikaların tüm anahtarları çalışacaktır.
Bu izinlerle **bir saldırgan "yerel kimlik doğrulamayı" yeniden etkinleştirebilir** ve bu nedenle paylaşılan politikalardan tüm anahtarlar çalışacaktır.
```bash
az servicebus namespace update --disable-local-auth false -n <namespace-name> --resource-group <res-group>
```
### Mesajları Anahtarlarla Gönder (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action VEYA Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Mesajları Anahtarlarla Gönder (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action VEYA Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
`PrimaryConnectionString`'i alabilirsiniz; bu, Service Bus ad alanı için bir kimlik bilgisi olarak işlev görür. Bu bağlantı dizesi ile Service Bus ad alanı olarak tamamen kimlik doğrulaması yapabilir, herhangi bir kuyruk veya konuya mesaj gönderebilir ve potansiyel olarak sistemi, operasyonları bozabilecek, geçerli kullanıcıları taklit edebilecek veya mesajlaşma iş akışına kötü niyetli veriler enjekte edebilecek şekillerde etkileşime geçirebilirsiniz. Bu yöntem, `--disable-local-auth` false olarak ayarlandığında çalışır.
`PrimaryConnectionString`'i alabilirsiniz; bu, Service Bus ad alanı için bir kimlik bilgisi olarak işlev görür. Bu bağlantı dizesi ile, Service Bus ad alanı olarak tamamen kimlik doğrulaması yapabilir, herhangi bir kuyruk veya konuya mesaj gönderebilir ve potansiyel olarak sistemi, operasyonları kesintiye uğratacak, geçerli kullanıcıları taklit edecek veya mesajlaşma iş akışına kötü niyetli veriler enjekte edecek şekilde etkileşime geçebilirsiniz. Bu yöntem, `--disable-local-auth` false olarak ayarlandığında çalışır (yani yerel kimlik doğrulama etkinleştirilmiştir).
```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>"
```
### Anahtarlarla Alma (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action VEYA Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Anahtarlarla Al (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action VEYA Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action)
PrimaryConnectionString'i alabilirsiniz, bu Service Bus ad alanı için bir kimlik bilgisi olarak hizmet eder. Bu bağlantı dizesini kullanarak, ad alanındaki herhangi bir kuyruktan veya abonelikten mesaj alabilir, potansiyel olarak hassas veya kritik verilere erişim sağlayabilir, veri sızdırma işlemlerini mümkün kılabilir veya mesaj işleme ve uygulama iş akışlarını etkileyebilirsiniz. Bu yöntem, `--disable-local-auth` false olarak ayarlandığında çalışır.
PrimaryConnectionString'i alabilirsiniz, bu Service Bus ad alanı için bir kimlik bilgisi olarak hizmet eder. Bu bağlantı dizesini kullanarak, ad alanındaki herhangi bir kuyruktan veya abonelikten mesaj alabilirsiniz, bu da potansiyel olarak hassas veya kritik verilere erişim sağlar, veri sızdırılmasını mümkün kılar veya mesaj işleme ve uygulama iş akışlarını etkileyebilir. Bu yöntem, `--disable-local-auth` false olarak ayarlandığında çalışır.
```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 @@ Bu izinleri, `--disable-local-auth` true olarak ayarlanmış olsa bile mesajlar
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>"
@@ -70,7 +70,7 @@ $queueMessage.Value
../az-privilege-escalation/az-queue-privesc.md
{{#endref}}
### Sömürü Sonrası
### İstismar Sonrası
{{#ref}}
../az-post-exploitation/az-queue-post-exploitation.md
@@ -4,19 +4,19 @@
## Service Bus
Azure Service Bus, farklı uygulama parçaları veya ayrı uygulamalar arasında güvenilir **iletişim** sağlamak için tasarlanmış bulut tabanlı bir **mesajlaşma hizmetidir**. Mesajların güvenli bir şekilde iletilmesini sağlayan güvenli bir aracı olarak hareket eder; bu, gönderici ve alıcının aynı anda çalışmadığı durumlarda bile geçerlidir. Sistemleri birbirinden ayırarak, uygulamaların bağımsız bir şekilde çalışmasına olanak tanırken, veri veya talimat alışverişi yapmalarını sağlar. Özellikle birden fazla işçi arasında yük dengelemesi gerektiren senaryolar, güvenilir mesaj iletimi veya görevlerin sırayla işlenmesi ya da erişimin güvenli bir şekilde yönetilmesi gibi karmaşık koordinasyon gereksinimleri için faydalıdır.
Azure Service Bus, farklı uygulama parçaları veya ayrı uygulamalar arasında güvenilir **iletişim** sağlamak için tasarlanmış bulut tabanlı bir **mesajlaşma hizmetidir**. Mesajların güvenli bir şekilde iletilmesini sağlayan güvenli bir aracı olarak hareket eder; bu, gönderici ve alıcının aynı anda çalışmadığı durumlarda bile geçerlidir. Sistemleri birbirinden ayırarak, uygulamaların bağımsız bir şekilde çalışmasına olanak tanırken veri veya talimat alışverişi yapmalarını sağlar. Özellikle birden fazla işçi arasında yük dengelemesi gerektiren senaryolar, güvenilir mesaj iletimi veya görevlerin sırayla işlenmesi ya da erişimin güvenli bir şekilde yönetilmesi gibi karmaşık koordinasyonlar için faydalıdır.
### Anahtar Kavramlar
1. **Ad Alanları:** Mesajlaşma sistemlerinde bir ad alanı, mesajlaşma bileşenlerini, kuyrukları ve konuları organize eden ve yöneten mantıksal bir konteynerdir. Uygulamaların mesaj gönderebileceği, alabileceği ve işleyebileceği izole bir ortam sağlar. Kuyruklar ve konular, bir Service Bus ad alanı içinde aynı altyapıyı ve yapılandırmayı paylaşır, ancak birbirleriyle etkileşime girmeden bağımsız olarak çalışırlar.
2. **Kuyruklar:** Amacı, alıcı hazır olana kadar mesajları depolamaktır.
- Mesajlar sıralı, zaman damgalı ve kalıcı olarak depolanır.
1. **Namespaces:** Mesajlaşma sistemlerinde bir namespace, mesajlaşma bileşenlerini, kuyrukları ve konuları organize eden ve yöneten mantıksal bir konteynırdır. Uygulamaların mesaj gönderebileceği, alabileceği ve işleyebileceği izole bir ortam sağlar. Kuyruklar ve konular, bir Service Bus namespace içinde aynı altyapıyı ve yapılandırmayı paylaşır, ancak birbirleriyle etkileşime girmeden bağımsız olarak çalışırlar.
2. **Queues:** Amacı, alıcı hazır olana kadar mesajları depolamaktır.
- Mesajlar sıralı, zaman damgalı ve kalıcı olarak saklanır.
- Bir tüketiciye çekme modunda (isteğe bağlı alım) teslim edilir.
- Mesaj paylaşıldığında otomatik olarak silinmesi veya "Peek lock" modunda, tüketicinin silinebilir olduğunu onaylaması gereken bir yapılandırma ile ayarlanabilir. Aksi takdirde, mesaj kuyruğa geri döner.
- Mesaj paylaşıldığında otomatik olarak silinmesi veya "Peek lock" modunda, tüketicinin silinebilir olduğunu onaylaması gereken bir yapılandırma ile ayarlanabilir. Aksi takdirde, mesaj kuyruğa geri dönecektir.
- Noktadan noktaya iletişimi destekler.
3. **Konular:** Yayın-abone mesajlaşması için yayın yapma.
3. **Topics:** Yayın-abone mesajlaşması için yayın yapma.
- Birden fazla bağımsız abonelik, mesajların kopyalarını alır.
- Her abonelik, konu içinde bir kuyruk gibidir.
- Her abonelik, konunun içinde bir kuyruk gibidir.
- Abonelikler, teslimatı kontrol etmek veya meta veriler eklemek için kurallar/filtreler içerebilir.
Hizmet otobüsü uç noktası/bağlantı dizesi:
@@ -28,12 +28,12 @@ https://<namespace>.servicebus.windows.net:443/
Bazı gelişmiş özellikler şunlardır:
- **Mesaj Oturumları**: FIFO işleme sağlar ve istek-cevap desenlerini destekler.
- **Otomatik İletim**: Aynı ad alanındaki kuyruklar veya konular arasında mesajları aktarır.
- **Otomatik İletim**: Mesajları aynı ad alanındaki kuyruklar veya konular arasında aktarır.
- **Ölü Mektuplama**: Ulaşılamayan mesajları inceleme için yakalar.
- **Zamanlanmış Teslimat**: Mesaj işlemesini gelecekteki görevler için geciktirir.
- **Mesaj Erteleme**: Mesaj alımını hazır olana kadar erteler.
- **İşlemler**: İşlemleri atomik yürütme olarak gruplar.
- **Filtreler ve Eylemler**: Mesajları filtrelemek veya not almak için kurallar uygular.
- **İşlemler**: İşlemleri atomik yürütme için gruplar.
- **Filtreler ve Eylemler**: Mesajları filtrelemek veya not eklemek için kurallar uygular.
- **Boşta Otomatik Silme**: Faaliyet göstermediğinde kuyrukları siler (min: 5 dakika).
- **Yinelenen Tespit**: Yeniden gönderimler sırasında yinelenen mesajları kaldırır.
- **Toplu Silme**: Süresi dolmuş veya gereksiz mesajları topluca siler.
@@ -54,10 +54,10 @@ SAS Politikaları, Azure Service Bus varlıkları ad alanı (En Önemli Olan), k
- Gönder: Varlığa mesaj göndermeye izin verir.
- Dinle: Varlık üzerinden mesaj almayı sağlar.
- **Birincil ve İkincil Anahtarlar**: Erişimi kimlik doğrulamak için güvenli token'lar oluşturmak için kullanılan kriptografik anahtarlardır.
- **Birincil ve İkincil Bağlantı Dizeleri**: Uygulamalarda kolay kullanım için uç nokta ve anahtar içeren önceden yapılandırılmış bağlantı dizeleri.
- **Birincil ve İkincil Bağlantı Dize**: Uygulamalarda kolay kullanım için uç nokta ve anahtar içeren önceden yapılandırılmış bağlantı dizeleri.
- **SAS Politika ARM ID**: Programatik tanımlama için politikanın Azure Resource Manager (ARM) yolu.
Bir ad alanının, içindeki her varlığı etkileyen tek bir SAS politikasına sahip olduğunu, kuyruklar ve konuların ise daha ayrıntılı kontrol için kendi bireysel SAS politikalarına sahip olabileceğini belirtmek önemlidir.
Bir ad alanının, içindeki her varlığı etkileyen tek bir SAS politikası olduğunu, kuyruklar ve konuların ise daha ayrıntılı kontrol için kendi bireysel SAS politikalarına sahip olabileceğini belirtmek önemlidir.
### Sayım
@@ -47,7 +47,7 @@ Herhangi bir SQL kimlik doğrulamasına izin verilirse, bir yönetici kullanıc
- Defender hakkında kendi dersinde konuşacağız (birçok diğer Azure hizmetinde etkinleştirilebilir).
**Yedeklemeler:**
- Yedekleme sıklığı, saklama politikalarında yönetilir.
- Yedekleme sıklığı, saklama politikalarında yönetilmektedir.
**Silinmiş veritabanları:**
- Mevcut yedeklerden silinmiş DB'leri geri yüklemek mümkündür.
@@ -71,11 +71,11 @@ Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belir
- **Veri yedekliliği:** Seçenekler yerel, bölge, Coğrafi veya Coğrafi-Bölge yedekli.
- **Defter:** Verilerin bütünlüğünü kriptografik olarak doğrular, herhangi bir müdahalenin tespit edilmesini sağlar. Finansal, tıbbi ve hassas verileri yöneten herhangi bir kuruluş için faydalıdır.
Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTU'lar) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil.
Bir SQL veritabanı, **esnek Havuz** parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTU'lar) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil.
#### Azure SQL Sütun Seviyesi Güvenliği (Maskeleme) & Satır Seviyesi Güvenliği
**Azure SQL'nin dinamik** veri maskelemesi, **yetkisiz kullanıcılardan hassas bilgileri gizleyerek** korumaya yardımcı olan bir özelliktir. Gerçek verileri değiştirmek yerine, görüntülenen verileri dinamik olarak maskeleyerek, kredi kartı numaraları gibi hassas ayrıntıların gizli kalmasını sağlar.
**Azure SQL'nin dinamik** veri maskelemesi, **yetkisiz kullanıcılardan hassas bilgileri gizleyerek** korumaya yardımcı olan bir özelliktir. Gerçek verileri değiştirmek yerine, görüntülenen verileri dinamik olarak maskeleyerek, kredi kartı numaraları gibi hassas ayrıntıların gizlenmesini sağlar.
**Dinamik Veri Maskeleme**, maskelemeyen (bu kullanıcılar belirtilmelidir) ve yöneticiler dışındaki tüm kullanıcıları etkiler. Dinamik veri maskelemeden muaf olan SQL kullanıcılarını belirten yapılandırma seçeneğine sahiptir; **yöneticiler her zaman hariçtir**.
@@ -85,12 +85,12 @@ Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, b
**Azure SQL Managed Instances**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerinde (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel bir sanal ağ (VNet) uygulaması sunar ve yerinde SQL Server müşterileri için uygun bir iş modeli sağlar.
### Azure SQL Sanal Makineler
### Azure SQL Sanal Makineleri
**Azure SQL Sanal Makineleri**, **işletim sistemi** ve SQL Server örneği üzerinde kontrol sağlamanıza olanak tanır; çünkü bir VM, SQL sunucusunu çalıştıran VM hizmetinde oluşturulacaktır.
**Azure SQL Sanal Makineleri**, **işletim sistemini** ve SQL Server örneğini kontrol etmenizi sağlar; çünkü bir VM, SQL sunucusunu çalıştıran VM hizmetinde oluşturulacaktır.
Bir SQL Sanal Makinesi oluşturulduğunda, SQL sunucusunu barındıracak VM'nin **tüm ayarlarını seçmek mümkündür** (VM dersinde gösterildiği gibi).
- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin** ona eklenmiş olabileceği, dosya paylaşımlarının bağlanmış olabileceği anlamına gelir... bu da SQL'den VM'ye geçişi oldukça ilginç hale getirir.
Bir SQL Sanal Makinesi oluşturulduğunda, SQL sunucusunu barındıracak olan VM'nin **tüm ayarlarını seçmek mümkündür** (VM dersinde gösterildiği gibi).
- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin eklenmiş olabileceği**, dosya paylaşımlarının bağlanmış olabileceği anlamına gelir... bu da SQL'den VM'ye **geçişi** oldukça ilginç hale getirir.
- Ayrıca, SQL'nin belirli bir anahtar kasasına erişmesine **izin vermek için** bir uygulama kimliği ve sırrı yapılandırmak mümkündür; bu, hassas bilgileri içerebilir.
Ayrıca, **otomatik SQL güncellemeleri**, **otomatik yedeklemeler**, **Entra ID kimlik doğrulaması** ve diğer SQL hizmetlerinin çoğu gibi şeyleri yapılandırmak da mümkündür.
@@ -295,10 +295,16 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
../az-privilege-escalation/az-sql-privesc.md
{{#endref}}
## Post Exploitation
## Sonrası İstismar
{{#ref}}
../az-post-exploitation/az-sql-post-exploitation.md
{{#endref}}
### Süreklilik
{{#ref}}
../az-persistence/az-sql-persistance.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}