Translated ['src/pentesting-cloud/aws-security/aws-services/aws-organiza

This commit is contained in:
Translator
2025-02-17 12:02:28 +00:00
parent e10455536c
commit 3c2279d325
16 changed files with 433 additions and 339 deletions

View File

@@ -292,7 +292,7 @@
- [AWS - KMS Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-kms-privesc.md)
- [AWS - Lambda Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md)
- [AWS - Lightsail Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-lightsail-privesc.md)
- [AWS - Macie Enum](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md)
- [AWS - Macie Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-macie-privesc.md)
- [AWS - Mediapackage Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mediapackage-privesc.md)
- [AWS - MQ Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-mq-privesc.md)
- [AWS - MSK Privesc](pentesting-cloud/aws-security/aws-privilege-escalation/aws-msk-privesc.md)
@@ -415,7 +415,7 @@
- [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md)
- [Az - Cloud Shell](pentesting-cloud/azure-security/az-services/az-cloud-shell.md)
- [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md)
- [Az - Container Instances](pentesting-cloud/azure-security/az-services/az-container-instances.md)
- [Az - Container Instances, Apps & Jobs](pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md)
- [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md)
- [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md)
- [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md)
@@ -470,7 +470,7 @@
- [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md)
- [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md)
- [Az - Container Registry Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-registry-privesc.md)
- [Az - Container Instances Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md)
- [Az - Container Instances, Apps & Jobs Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-apps-jobs-privesc.md)
- [Az - CosmosDB Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md)
- [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md)
- [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md)

View File

@@ -4,12 +4,12 @@
## Temel Bilgiler
AWS Organizations, ek maliyetler olmadan yeni AWS hesapları oluşturmayı kolaylaştırır. Kaynaklar zahmetsizce tahsis edilebilir, hesaplar verimli bir şekilde gruplandırılabilir ve yönetim politikaları bireysel hesaplara veya gruplara uygulanarak organizasyon içindeki yönetim ve kontrolü artırır.
AWS Organizations, ek maliyetler olmadan yeni AWS hesapları oluşturmayı kolaylaştırır. Kaynaklar zahmetsizce tahsis edilebilir, hesaplar verimli bir şekilde gruplandırılabilir ve bireysel hesaplara veya gruplara yönetim politikaları uygulanabilir, bu da organizasyon içindeki yönetim ve kontrolü artırır.
Ana Noktalar:
- **Yeni Hesap Oluşturma**: AWS Organizations, ek ücretler olmadan yeni AWS hesapları oluşturulmasına olanak tanır.
- **Kaynak Tahsisi**: Hesaplar arasında kaynak tahsis sürecini basitleştirir.
- **Kaynak Tahsisi**: Hesaplar arasında kaynak tahsis etme sürecini basitleştirir.
- **Hesap Gruplama**: Hesaplar bir araya getirilebilir, bu da yönetimi daha akıcı hale getirir.
- **Yönetim Politikaları**: Politika, hesaplara veya hesap gruplarına uygulanabilir, bu da organizasyon genelinde uyum ve yönetimi sağlar.
@@ -40,6 +40,6 @@ aws iam get-account-summary
```
## Referanslar
- https://aws.amazon.com/organizations/
- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -32,7 +32,7 @@ aws sqs send-message --queue-url <value> --message-body <value>
../aws-privilege-escalation/aws-sqs-privesc.md
{{#endref}}
#### Sonrası İstismar
#### İstismar Sonrası
{{#ref}}
../aws-post-exploitation/aws-sqs-post-exploitation.md
@@ -46,6 +46,6 @@ aws sqs send-message --queue-url <value> --message-body <value>
## Referanslar
- https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html
- [https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html](https://docs.aws.amazon.com/cdk/api/v2/python/aws\_cdk.aws\_sqs/README.html)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,7 +12,7 @@ Daha fazla bilgi için kontrol edin:
### 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ı 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.
Bu izin, bir saldırganın depolama hesabı içindeki 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.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -22,8 +22,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,7 +12,7 @@ Daha fazla bilgi için kontrol edin:
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
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.
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şimle sonuçlanabilir ve veri sızdırma veya daha fazla saldırı için istihbarat toplama olanağı sağlayabilir.
```bash
az storage message peek --queue-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`
Bu izin, bir saldırganın depolama hesabı içindeki 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ı 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.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -68,8 +68,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,7 +12,7 @@ Daha fazla bilgi için kontrol edin:
### 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 tüm ilişkili 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,34 +30,27 @@ 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>
```
### Actions: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read`
Azure Service Bus ad alanlarını oluşturma veya değiştirme izinlerine sahip bir saldırgan, bunu operasyonları kesintiye uğratmak, yetkisiz kaynaklar dağıtmak veya hassas verileri açığa çıkarmak için kullanabilir. Kamu ağı erişimini etkinleştirmek, şifreleme ayarlarını düşürmek veya performansı düşürmek veya maliyetleri artırmak için SKU'ları değiştirmek gibi kritik yapılandırmaları değiştirebilirler. Ayrıca, yerel kimlik doğrulamayı devre dışı bırakabilir, kopya konumlarını manipüle edebilir veya güvenlik kontrollerini zayıflatmak için TLS sürümlerini ayarlayarak ad alanı yanlış yapılandırmasının önemli bir post-exploitation riski oluşturmasını sağlayabilirler.
```bash
az servicebus namespace create --resource-group <ResourceGroupName> --name <NamespaceName> --location <Location>
az servicebus namespace update --resource-group <ResourceGroupName> --name <NamespaceName> --tags <Key=Value>
```
### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
Azure Service Bus kuyruklarını oluşturma veya değiştirme izinlerine sahip bir saldırgan (kuyrukları değiştirmek için ayrıca Action:`Microsoft.ServiceBus/namespaces/queues/read` iznine de ihtiyacınız olacak) bunu verileri yakalamak, iş akışlarını kesintiye uğratmak veya yetkisiz erişimi sağlamak için kullanabilir. Kritik yapılandırmaları değiştirebilirler, örneğin mesajları kötü niyetli uç noktalara yönlendirmek, mesaj TTL'sini ayarlayarak verileri uygunsuz bir şekilde saklamak veya silmek ya da hata yönetimini etkilemek için dead-lettering'i etkinleştirmek. Ayrıca, hizmet işlevselliğini kesintiye uğratmak veya tespiti atlatmak için kuyruk boyutlarını, kilit sürelerini veya durumları manipüle edebilirler, bu da bunu önemli bir post-exploitation riski haline getirir.
Azure Service Bus kuyruklarını oluşturma veya değiştirme izinlerine sahip bir saldırgan (kuyrukları değiştirmek için ayrıca Action:`Microsoft.ServiceBus/namespaces/queues/read` iznine de ihtiyacınız olacak) bunu verileri yakalamak, iş akışlarını kesintiye uğratmak veya yetkisiz erişimi sağlamak için kullanabilir. Kritik yapılandırmaları değiştirebilirler, örneğin mesajları kötü niyetli uç noktalara yönlendirmek, mesaj TTL'sini ayarlayarak verileri uygunsuz bir şekilde saklamak veya silmek ya da hata yönetimini etkilemek için dead-lettering'i etkinleştirmek. Ayrıca, hizmet işlevselliğini kesintiye uğratmak veya tespiti atlatmak için kuyruk boyutlarını, kilit sürelerini veya durumları manipüle edebilirler; bu da önemli bir post-exploitation riski oluşturur.
```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>
```
### 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 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.
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`)
Bir Azure Service Bus konusundaki abonelikleri oluşturma veya değiştirme izinlerine sahip bir saldırgan, mesaj iş akışlarını kesmek, yönlendirmek veya bozmak için bunu kullanabilir. 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 (aboneyi değiştirmek için ayrıca `Microsoft.ServiceBus/namespaces/topics/subscriptions/read` eylemine de ihtiyacınız olacak) 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 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>
@@ -72,12 +65,12 @@ Buraya bir göz atın:
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless
- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus
- https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest
- https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless)
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus)
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest)
- [https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest](https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,13 +12,23 @@ SQL Veritabanı hakkında daha fazla bilgi için kontrol edin:
### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
Bu izinlerle, bir saldırgan, ele geçirilmiş ortamda veritabanları oluşturabilir ve güncelleyebilir. Bu sonrası sömürü etkinliği, bir saldırgana kötü niyetli veriler ekleme, veritabanı yapılandırmalarını değiştirme veya daha fazla kalıcılık için arka kapılar ekleme imkanı verebilir, bu da operasyonları kesintiye uğratabilir veya ek kötü niyetli eylemleri mümkün kılabilir.
Bu izinlerle, bir saldırgan, ele geçirilmiş ortamda veritabanları oluşturabilir ve güncelleyebilir. Bu sonrası sömürü etkinliği, bir saldırgana kötü niyetli veriler ekleme, veritabanı yapılandırmalarını değiştirme veya daha fazla kalıcılık için arka kapılar ekleme imkanı verebilir; bu da operasyonları kesintiye uğratabilir veya ek kötü niyetli eylemleri mümkün kılabilir.
```bash
# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>
# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
```
Bu izinlerle (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) silinmiş bir veritabanını geri yükleyebilirsiniz:
```bash
az sql db restore \
--dest-name <new_database_name> \
--name <original_database_name> \
--resource-group <resource_group> \
--server <server_name> \
--deleted-time "<deleted_time_ISO_format>"
```
### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
@@ -42,7 +52,7 @@ az sql elastic-pool update \
```
### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`
Bu izinle, bir Azure SQL Sunucusu üzerindeki denetim ayarlarını değiştirebilir veya etkinleştirebilirsiniz. Bu, bir saldırganın veya yetkili bir kullanıcının denetim yapılandırmalarını manipüle etmesine olanak tanıyabilir, bu da izleri örtbas etme veya denetim günlüklerini kontrolü altındaki bir konuma yönlendirme potansiyeline sahiptir. Bu, güvenlik izlemeyi engelleyebilir veya eylemleri takip etmesine olanak tanıyabilir. NOT: Azure SQL Sunucusu için Blob Depolama kullanarak denetimi etkinleştirmek için, denetim günlüklerinin kaydedilebileceği bir depolama hesabı eklemeniz gerekir.
Bu izinle, bir Azure SQL Server'daki denetim ayarlarını değiştirebilir veya etkinleştirebilirsiniz. Bu, bir saldırganın veya yetkili bir kullanıcının denetim yapılandırmalarını manipüle etmesine olanak tanıyabilir, bu da izleri örtbas etme veya denetim günlüklerini kontrolü altındaki bir konuma yönlendirme potansiyeline sahiptir. Bu, güvenlik izlemeyi engelleyebilir veya eylemleri takip etmesine olanak tanıyabilir. NOT: Azure SQL Server için Blob Depolama kullanarak denetimi etkinleştirmek için, denetim günlüklerinin kaydedilebileceği bir depolama hesabı eklemeniz gerekir.
```bash
az sql server audit-policy update \
--server <server_name> \
@@ -87,4 +97,41 @@ az sql db import --admin-user <admin-user> \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read`
Bu izinlerle, bir kullanıcı bir Azure SQL sunucusunun bağlantı politikalarını değiştirebilir ve alabilir. Bu izinler, birinin istemcilerin sunucuya nasıl bağlandığını değiştirmesine olanak tanır—yönlendirme veya proxy gibi yöntemler arasında seçim yaparak—yanlış yapılandırıldığında güvenliği zayıflatmak, trafiği yönlendirmek veya hassas verileri ele geçirmek için istismar edilebilir.
```bash
az sql server conn-policy update \
--resource-group <resource_group> \
--server <server_name> \
--connection-policy <policy>
```
### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read`
Bu izinlerle, bir kullanıcı bir Azure SQL Server ile ilişkili şifreleme anahtarlarını güncelleyebilir ve alabilir. Bu anahtarlar genellikle şifreleme yoluyla hassas verilerin güvenliğini sağlamak için kullanılır, bu nedenle bunların manipüle edilmesi, yetkisiz şifre çözme veya anahtar döngüsü değişikliklerine izin vererek veri güvenliğini tehlikeye atabilir.
```bash
az sql server key create \
--resource-group MyResourceGroup \
--server MyServer \
--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef
```
### `Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action`, `Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read`, `Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read`
Bu izin, bir Azure SQL Veritabanı için Ledger Digest'i devre dışı bırakma izni verir; bu, verilerin bütünlüğünü doğrulayan kriptografik özet kayıtlarının Azure Blob Storage'a periyodik olarak yüklenmesini durdurur.
```bash
az sql db ledger-digest-uploads disable \
--name ledgerDB \
--resource-group myResourceGroup \
--server my-sql-server
```
### `Microsoft.Sql/servers/databases/transparentDataEncryption/write`, `Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read`, `Microsoft.Sql/servers/databases/transparentDataEncryption/read`
Bu izin, yetkili bir kullanıcıya veya saldırgana Azure SQL veritabanında Şeffaf Veri Şifrelemesi (TDE) ayarlarını etkinleştirme, devre dışı bırakma veya değiştirme yetkisi verir; bu da şifreleme yapılandırmalarını değiştirerek veri güvenliğini etkileyebilir.
```bash
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,64 +0,0 @@
# Az - Azure Container Instances Privesc
{{#include ../../../banners/hacktricks-training.md}}
## Azure Container Instances
Daha fazla bilgi için kontrol edin:
{{#ref}}
../az-services/az-container-instances.md
{{#endref}}
### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action`
Bu izinler, kullanıcının **çalışan bir konteynerde bir komut çalıştırmasına** olanak tanır. Bu, konteynerde herhangi bir yönetilen kimlik varsa **yetki yükseltmek** için kullanılabilir. Elbette, konteynerin içinde depolanan kaynak koduna ve diğer hassas bilgilere erişmek de mümkündür.
Bir `ls` komutu çalıştırmak ve çıktısını almak oldukça basittir:
```bash
az container exec --name <container-name> --resource-group <res-group> --exec-command 'ls'
```
Aynı zamanda konteynerin **çıkışını okumak** da mümkündür:
```bash
az container attach --name <container-name> --resource-group <res-group>
```
Veya logları şu şekilde alabilirsiniz:
```bash
az container logs --name <container-name> --resource-group <res-group>
```
### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Bu izinler, bir **kullanıcı yönetilen kimliğini** bir konteyner grubuna eklemeye olanak tanır. Bu, konteynerde ayrıcalıkları artırmak için çok faydalıdır.
Bir kullanıcı yönetilen kimliğini bir konteyner grubuna eklemek için:
```bash
az rest \
--method PATCH \
--url "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ContainerInstance/containerGroups/<container-name>?api-version=2021-09-01" \
--body '{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>": {}
}
}
}' \
--headers "Content-Type=application/json"
```
### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
Bu izinler, **bir kullanıcı yönetilen kimliği** eklenmiş bir **konteyner grubunu oluşturma veya güncelleme** olanağı sağlar. Bu, konteynerde ayrıcalıkları artırmak için çok faydalıdır.
```bash
az container create \
--resource-group <res-group>> \
--name nginx2 \
--image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \
--assign-identity "/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-namaged-identity-name>" \
--restart-policy OnFailure \
--os-type Linux \
--cpu 1 \
--memory 1.0
```
Ayrıca, mevcut bir konteyner grubunu güncellemek de mümkündür; örneğin, bir ters shell ile **`--command-line` argümanını** ekleyerek.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,7 +12,7 @@ Daha fazla bilgi için kontrol edin:
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read`
Bu izne sahip bir saldırgan, bir 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 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 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>
```
@@ -56,8 +56,8 @@ az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-
```
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -14,7 +14,7 @@ Daha fazla bilgi için kontrol edin:
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ü olduğunu ve `az` cli tarafından kullanıldığını unutmayın, 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 aracılığıyla 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 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üncellemek ve ona daha fazla izin vermek mümkündür (eğer bazı izinlerden yoksun ise) aşağıdaki komutla:
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
@@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \
```
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
Bir Service Bus ad alanındaki belirli konular ve kuyruklar, varlığa erişimi kontrol etmek için kullanılabilecek kendi yetkilendirme kurallarına sahip olabilir. Bu izinlere sahip olarak, **bu yerel yetkilendirme kuralları için anahtarları alabilir veya yeniden üretebilirsiniz**, bu da sizi varlık olarak kimlik doğrulamanıza ve potansiyel olarak mesaj göndermenize veya almanıza, abonelikleri yönetmenize veya sistemle, operasyonları bozabilecek, geçerli kullanıcıları taklit edebilecek veya mesajlaşma iş akışına kötü niyetli veriler enjekte edebilecek şekillerde etkileşime girmenize olanak tanır.
Bir Service Bus ad alanındaki belirli konular ve kuyruklar, varlığa erişimi kontrol etmek için kullanılabilecek kendi yetkilendirme kurallarına sahip olabilir. Bu izinlere sahip olarak, **bu yerel yetkilendirme kuralları için anahtarları alabilir veya yeniden üretebilirsiniz**, bu da sizi varlık olarak kimlik doğrulamanıza ve potansiyel olarak mesaj göndermeye veya almaya, abonelikleri yönetmeye 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 bulunmanıza olanak tanır.
```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>
@@ -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üncelleyip ona daha fazla izin verebilirsiniz (eğer bazı izinlerden yoksun ise) aşağıdaki komutla:
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 yoksunsa) 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,135 +76,210 @@ 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)
`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.
`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çebilirsiniz. Bu yöntem, `--disable-local-auth` false olarak ayarlandığında çalışır.
```python
#You need to install the following libraries
#pip install azure-servicebus
#pip install aiohttp
#pip install azure-identity
import asyncio
from azure.servicebus.aio import ServiceBusClient
from azure.servicebus import ServiceBusMessage
# Constants
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
TOPIC_NAME = "<TOPIC_NAME>"
TOPIC_OR_QUEUE_NAME = "<TOPIC_OR_QUEUE_NAME>"
# Function to send a single message to a Service Bus topic
async def send_individual_message(publisher):
# Prepare a single message with updated content
single_message = ServiceBusMessage("Hacktricks-Training: Single Item")
# Send the message to the topic
await publisher.send_messages(single_message)
print("Sent a single message containing 'Hacktricks-Training'")
async def send_message():
async with ServiceBusClient.from_connection_string(NAMESPACE_CONNECTION_STR) as client:
async with client.get_topic_sender(topic_name=TOPIC_OR_QUEUE_NAME) as sender:
await sender.send_messages(ServiceBusMessage("Hacktricks-Training: Single Item"))
print("Sent message")
# Function to send multiple messages to a Service Bus topic
async def send_multiple_messages(publisher):
# Generate a collection of messages with updated content
message_list = [ServiceBusMessage(f"Hacktricks-Training: Item {i+1} in list") for i in range(5)]
# Send the entire collection of messages to the topic
await publisher.send_messages(message_list)
print("Sent a list of 5 messages containing 'Hacktricks-Training'")
asyncio.run(send_message())
```
Ayrıca, az rest ile mesajlar gönderebilirsiniz, bu durumda kullanmak için bir sas token oluşturmanız gerekir.
```python
import time, urllib.parse, hmac, hashlib, base64
# Function to send a grouped batch of messages to a Service Bus topic
async def send_grouped_messages(publisher):
# Send a grouped batch of messages with updated content
async with publisher:
grouped_message_batch = await publisher.create_message_batch()
for i in range(10):
try:
# Append a message to the batch with updated content
grouped_message_batch.add_message(ServiceBusMessage(f"Hacktricks-Training: Item {i+1}"))
except ValueError:
# If batch reaches its size limit, handle by creating another batch
break
# Dispatch the batch of messages to the topic
await publisher.send_messages(grouped_message_batch)
print("Sent a batch of 10 messages containing 'Hacktricks-Training'")
def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600):
expiry = int(time.time() + expiry_in_seconds)
string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry)
signed_hmac_sha256 = hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest()
signature = urllib.parse.quote_plus(base64.b64encode(signed_hmac_sha256))
token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}"
return token
# Main function to execute all tasks
async def execute():
# Instantiate the Service Bus client with the connection string
async with ServiceBusClient.from_connection_string(
conn_str=NAMESPACE_CONNECTION_STR,
logging_enable=True) as sb_client:
# Create a topic sender for dispatching messages to the topic
publisher = sb_client.get_topic_sender(topic_name=TOPIC_NAME)
async with publisher:
# Send a single message
await send_individual_message(publisher)
# Send multiple messages
await send_multiple_messages(publisher)
# Send a batch of messages
await send_grouped_messages(publisher)
# Replace these with your actual values
resource_uri = "https://<namespace>.servicebus.windows.net/<queue_or_topic>"
key_name = "<SharedKeyName>"
primary_key = "<PrimaryKey>"
# Run the asynchronous execution
asyncio.run(execute())
print("Messages Sent")
print("----------------------------")
sas_token = generate_sas_token(resource_uri, key_name, primary_key)
print(sas_token)
```
```bash
az rest --method post \
--uri "https://<NAMESPACE>.servicebus.windows.net/<queue>/messages" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F<NAMESPACE>.servicebus.windows.net%2F<TOPIC_OR_QUEUE_NAME>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>" \
--body "<MESSAGE_BODY>"
```
### Anahtarlarla Alma (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action VEYA Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
### Anahtarlarla Al (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action VEYA Microsoft.ServiceBus/namespaces/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.
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.
```python
#You need to install the following libraries
#pip install azure-servicebus
#pip install aiohttp
#pip install azure-identity
import asyncio
from azure.servicebus.aio import ServiceBusClient
NAMESPACE_CONNECTION_STR = "<PrimaryConnectionString>"
TOPIC_NAME = "<TOPIC_NAME>"
SUBSCRIPTION_NAME = "<TOPIC_SUBSCRIPTION_NAME>" #Topic Subscription
CONN_STR = "<PrimaryConnectionString>"
QUEUE = "<QUEUE_NAME>"
# Function to receive and process messages from a Service Bus subscription
async def receive_and_process_messages():
# Create a Service Bus client using the connection string
async with ServiceBusClient.from_connection_string(
conn_str=NAMESPACE_CONNECTION_STR,
logging_enable=True) as servicebus_client:
# For topics/subscriptions, you would use:
# TOPIC = "<TOPIC_NAME>"
# SUBSCRIPTION = "<TOPIC_SUBSCRIPTION_NAME>"
# Get the Subscription Receiver object for the specified topic and subscription
receiver = servicebus_client.get_subscription_receiver(
topic_name=TOPIC_NAME,
subscription_name=SUBSCRIPTION_NAME,
max_wait_time=5
)
async with receiver:
# Receive messages with a defined maximum wait time and count
received_msgs = await receiver.receive_messages(
max_wait_time=5,
max_message_count=20
)
for msg in received_msgs:
print("Received: " + str(msg))
# Complete the message to remove it from the subscription
async def receive():
async with ServiceBusClient.from_connection_string(CONN_STR) as client:
# For a queue receiver:
async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver:
msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20)
for msg in msgs:
print("Received:", msg)
await receiver.complete_message(msg)
# Run the asynchronous message processing function
asyncio.run(receive_and_process_messages())
print("Message Receiving Completed")
print("----------------------------")
# For a topic/subscription receiver (commented out):
# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver:
# msgs = await receiver.receive_messages(max_wait_time=5, max_message_count=20)
# for msg in msgs:
# print("Received:", msg)
# await receiver.complete_message(msg)
asyncio.run(receive())
print("Done receiving messages")
```
Ayrıca, az rest ile mesajlar gönderebilirsiniz, bu durumda kullanmak için bir sas token oluşturmanız gerekir.
```python
import time, urllib.parse, hmac, hashlib, base64
def generate_sas_token(uri, key_name, key, expiry_in_seconds=3600):
expiry = int(time.time() + expiry_in_seconds)
string_to_sign = urllib.parse.quote_plus(uri) + "\n" + str(expiry)
signature = urllib.parse.quote_plus(base64.b64encode(
hmac.new(key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256).digest()
))
token = f"SharedAccessSignature sr={urllib.parse.quote_plus(uri)}&sig={signature}&se={expiry}&skn={key_name}"
return token
# Example usage:
resource_uri = "https://<namespace>.servicebus.windows.net/queue" # For queue
# resource_uri = "https://<namespace>.servicebus.windows.net/<topic>/subscriptions/<subscription>" # For topic subscription
sas_token = generate_sas_token(resource_uri, "<KEYNAME>", "<PRIMARY_KEY>")
print(sas_token)
```
Bir kuyruk için mesajı alabilir veya göz atabilirsiniz (mesajları almak onları kaldırır, göz atmak ise kaldırmaz):
```bash
#Get a message
az rest --method post \
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?timeout=60" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#Peek a message
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<QUEUE>/messages/head?peekonly=true&timeout=60" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#You can select the meesage changing the field PreviousSequenceNumber
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<ENTITY>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
```
Lütfen çevirmemi istediğiniz metni paylaşın.
```bash
#Get a message
az rest --method post \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60" \
--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#Peek a message
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages/head?timeout=60&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
#You can select the meesage changing the field PreviousSequenceNumber
az rest --method get \
--uri "https://<NAMESPACE>.servicebus.windows.net/<TOPIC>/subscriptions/<SUBSCRIPTION>/messages?timeout=60&PreviousSequenceNumber=<LAST_SEQUENCE_NUMBER>&api-version=2017-04" \
--headers "Authorization=SharedAccessSignature sr=<URI_ENCODED_RESOURCE>&sig=<SIGNATURE>&se=<EXPIRY>&skn=<KEYNAME>"
```
### Mesaj Gönder. DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action`
Bu izinleri, `--disable-local-auth` true olarak ayarlanmış olsa bile mesaj göndermek için kullanabilirsiniz.
```python
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
from azure.servicebus import ServiceBusMessage
NS = "<namespace>.servicebus.windows.net" # Your namespace
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_queue_sender(queue_name=QUEUE) as sender:
await sender.send_messages(ServiceBusMessage("Single Message"))
print("Sent a single message")
await credential.close()
if __name__ == "__main__":
asyncio.run(run())
```
### Mesajları Al. DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action`
Bu izinleri, `--disable-local-auth` true olarak ayarlanmış olsa bile mesajları almak için kullanabilirsiniz.
```python
import asyncio
from azure.identity.aio import DefaultAzureCredential
from azure.servicebus.aio import ServiceBusClient
NS = "<namespace>.servicebus.windows.net"
QUEUE = "<QUEUE>"
# For a topic subscription, uncomment and set these values:
# TOPIC = "<TOPIC>"
# SUBSCRIPTION = "<SUBSCRIPTION>"
async def run():
credential = DefaultAzureCredential()
async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client:
# Receiving from a queue:
async with client.get_queue_receiver(queue_name=QUEUE, max_wait_time=5) as receiver:
async for msg in receiver:
print("Received from Queue:", msg)
await receiver.complete_message(msg)
# To receive from a topic subscription, uncomment the code below and comment out the queue receiver above:
# async with client.get_subscription_receiver(topic_name=TOPIC, subscription_name=SUBSCRIPTION, max_wait_time=5) as receiver:
# async for msg in receiver:
# print("Received from Topic Subscription:", msg)
# await receiver.complete_message(msg)
await credential.close()
asyncio.run(run())
print("Done receiving messages")
```
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless
- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless)
- [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -12,7 +12,7 @@ SQL Database hakkında daha fazla bilgi için kontrol edin:
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
Bu izinlerle, bir kullanıcı Azure SQL sunucularını güncelleyerek veya oluşturarak ayrıcalık yükseltmesi yapabilir ve kritik yapılandırmaları, yönetici kimlik bilgileri de dahil olmak üzere, değiştirebilir. Bu izin, kullanıcının SQL sunucu yönetici şifresi de dahil olmak üzere sunucu özelliklerini güncellemesine olanak tanır ve bu da yetkisiz erişim veya sunucu üzerinde kontrol sağlamaktadır. Ayrıca yeni sunucular oluşturabilirler, bu da kötü niyetli amaçlar için gölge altyapı oluşturma potansiyeli taşır. Bu, "Microsoft Entra Authentication Only" devre dışı bırakıldığında özellikle kritik hale gelir, çünkü SQL tabanlı kimlik doğrulamasını kullanarak sınırsız erişim elde edebilirler.
Bu izinlerle, bir kullanıcı Azure SQL sunucularını güncelleyerek veya oluşturarak ayrıcalık yükseltmesi gerçekleştirebilir ve kritik yapılandırmaları, yönetici kimlik bilgileri de dahil olmak üzere, değiştirebilir. Bu izin, kullanıcının sunucu özelliklerini güncellemesine, SQL sunucu yönetici parolasını değiştirmesine olanak tanır ve bu da yetkisiz erişim veya sunucu üzerinde kontrol sağlamaktadır. Ayrıca yeni sunucular oluşturabilirler, bu da kötü niyetli amaçlar için gölge altyapı oluşturma potansiyeli taşır. Bu, "Microsoft Entra Authentication Only" devre dışı bırakıldığında özellikle kritik hale gelir, çünkü SQL tabanlı kimlik doğrulamasını kullanarak sınırsız erişim elde edebilirler.
```bash
# Change the server password
az sql server update \
@@ -26,7 +26,7 @@ az sql server create \
--resource-group <resource_group_name> \
--location <location> \
--admin-user <admin_username> \
--admin-password <admin_password>
--admin-password <admin_passwor d>
```
Ayrıca, özel bir uç noktadan erişmek istemiyorsanız, genel erişimin etkinleştirilmesi gereklidir, bunu etkinleştirmek için:
```bash
@@ -35,9 +35,34 @@ az sql server update \
--resource-group <resource-group> \
--enable-public-network true
```
Ayrıca, izinlerle atanan kimliği etkinleştirebilir ve sunucuya bağlı yönetilen kimlikle işlem yapabilirsiniz. Örneğin, burada Azure Storage'a erişebilen bir yönetilen kimlikle:
```bash
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--assign_identity
```
```sql
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storage-account>.blob.core.windows.net/<container>',
CREDENTIAL = ManagedIdentityCredential
);
GO
SELECT *
FROM OPENROWSET(
BULK 'message.txt',
DATA_SOURCE = 'ManagedIdentity',
SINGLE_CLOB
) AS DataFile;
GO
```
### `Microsoft.Sql/servers/firewallRules/write`
Bir saldırgan, Azure SQL sunucularındaki güvenlik duvarı kurallarını manipüle ederek yetkisiz erişime izin verebilir. Bu, sunucuyu belirli IP adreslerine veya tüm IP aralıklarına, kamu IP'leri de dahil olmak üzere, açmak için istismar edilebilir ve kötü niyetli aktörler için erişim sağlanabilir. Bu post-exploitation aktivitesi, mevcut ağ güvenlik kontrollerini aşmak, kalıcılık sağlamak veya hassas kaynaklarıığa çıkararak ortam içinde yan hareketi kolaylaştırmak için kullanılabilir.
Bir saldırgan, Azure SQL sunucularındaki güvenlik duvarı kurallarını manipüle ederek yetkisiz erişime izin verebilir. Bu, sunucuyu belirli IP adreslerine veya tüm IP aralıklarına, kamu IP'leri de dahil olmak üzere, açmak için kullanılabilir ve kötü niyetli aktörler için erişim sağlanabilir. Bu post-exploitation aktivitesi, mevcut ağ güvenlik kontrollerini aşmak, kalıcılık sağlamak veya hassas kaynaklarıığa çıkararak ortam içinde yan hareketi kolaylaştırmak için kullanılabilir.
```bash
# Create Firewall Rule
az sql server firewall-rule create \
@@ -56,11 +81,11 @@ az sql server firewall-rule update \
--end-ip-address <new-end-ip-address>
```
Ayrıca, `Microsoft.Sql/servers/outboundFirewallRules/delete` izni, bir Güvenlik Duvarı Kuralını silmenizi sağlar.
NOT: Kamu erişiminin etkinleştirilmesi gerekmektedir.
NOT: Kamu erişiminin etkin olması gerekmektedir.
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
Bu izinle, bir Azure SQL Sunucusunda IPv6 güvenlik duvarı kuralları oluşturabilir, değiştirebilir veya silebilirsiniz. Bu, bir saldırganın veya yetkili bir kullanıcının mevcut ağ güvenlik yapılandırmalarını atlamasına ve sunucuya yetkisiz erişim sağlamasına olanak tanıyabilir. Herhangi bir IPv6 adresinden trafiğe izin veren bir kural ekleyerek, saldırgan sunucuyu dış erişime açabilir.
Bu izinle, bir Azure SQL Sunucusunda IPv6 güvenlik duvarı kuralları oluşturabilir, değiştirebilir veya silebilirsiniz. Bu, bir saldırganın veya yetkili bir kullanıcının mevcut ağ güvenlik yapılandırmalarını atlamasına ve sunucuya yetkisiz erişim sağlamasına olanak tanıyabilir. Herhangi bir IPv6 adresinden gelen trafiğe izin veren bir kural ekleyerek, saldırgan sunucuyu dış erişime açabilir.
```bash
az sql server firewall-rule create \
--server <server_name> \
@@ -70,11 +95,11 @@ az sql server firewall-rule create \
--end-ip-address <end_ipv6_address>
```
Ayrıca, `Microsoft.Sql/servers/ipv6FirewallRules/delete` izni, bir Güvenlik Duvarı Kuralını silmenizi sağlar.
NOT: Kamu erişiminin etkinleştirilmesi gerekmektedir.
NOT: Kamu erişiminin etkin olması gerekmektedir.
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
Bu izinlerle, bir Azure SQL Server ortamında SQL veritabanlarına erişerek kritik bilgilere ulaşabilirsiniz. Aşağıdaki komutu kullanarak, bir saldırgan veya yetkili kullanıcı kendisini veya başka bir hesabı Azure AD yöneticisi olarak ayarlayabilir. "Microsoft Entra Authentication Only" etkinleştirildiğinde, sunucuya ve örneklerine erişim sağlayabilirsiniz. İşte bir SQL sunucusu için Azure AD yöneticisini ayarlamak için komut:
Bu izinlerle, bir Azure SQL Server ortamında SQL veritabanlarına erişerek kritik bilgilere ulaşabilirsiniz. Aşağıdaki komutu kullanarak, bir saldırgan veya yetkili kullanıcı kendisini veya başka bir hesabı Azure AD yöneticisi olarak ayarlayabilir. "Microsoft Entra Authentication Only" etkinse, sunucuya ve örneklerine erişebilirsiniz. İşte bir SQL sunucusu için Azure AD yöneticisini ayarlamak için komut:
```bash
az sql server ad-admin create \
--server <server_name> \
@@ -84,7 +109,7 @@ az sql server ad-admin create \
```
### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
Bu izinlerle, bir Azure SQL Sunucusunda "Microsoft Entra Authentication Only" yapılandırabilir ve uygulayabilirsiniz, bu da belirli senaryolarda ayrıcalık yükseltmesini kolaylaştırabilir. Bu izinlere sahip bir saldırgan veya yetkili bir kullanıcı, yalnızca Azure AD kimlik doğrulamasını etkinleştirebilir veya devre dışı bırakabilir.
Bu izinlerle, bir Azure SQL Sunucusunda "Microsoft Entra Kimlik Doğrulaması Yalnızca" yapılandırabilir ve zorlayabilirsiniz, bu da belirli senaryolarda ayrıcalık yükseltmesini kolaylaştırabilir. Bu izinlere sahip bir saldırgan veya yetkili bir kullanıcı, Azure AD-yalnızca kimlik doğrulamasını etkinleştirebilir veya devre dışı bırakabilir.
```bash
#Enable
az sql server azure-ad-only-auth enable \

View File

@@ -1,45 +0,0 @@
# Az - Container Instances
{{#include ../../../banners/hacktricks-training.md}}
## Temel Bilgiler
Azure Container Instances (ACI), Azure bulutunda **kapsayıcıları** çalıştırmak için **sunucusuz, talebe dayalı bir yol** sunar. **Tekil veya bir grup içinde birden fazla kapsayıcıyı** **ölçeklenebilir hesaplama**, **ağ seçenekleri** ve **diğer Azure hizmetlerine** (Depolama, Sanal Ağlar veya Kapsayıcı Kayıtları gibi) bağlanma esnekliği ile **dağıtabilirsiniz**.
**Geçici** iş yükleri oldukları için, temel VM altyapısını yönetmenize gerek yoktur — Azure bunu sizin için halleder. Ancak, **saldırgan güvenlik perspektifi**ısından, **izinler**, **kimlikler**, **ağ yapılandırmaları** ve **loglar** gibi unsurların saldırı yüzeylerini ve potansiyel yanlış yapılandırmaları nasıl ortaya çıkarabileceğini anlamak kritik öneme sahiptir.
### Yapılandırmalar
- Bir kapsayıcı oluşturmak için, bir genel görüntü, bir Azure Container Registry'den bir kapsayıcı görüntüsü veya bir dış havuz kullanmak mümkündür; bu, erişim için **şifre yapılandırması** gerektirebilir.
- Ağ ile ilgili olarak, **genel IP** veya **özel uç noktalar** olabilir.
- Ayrıca, aşağıdaki gibi yaygın docker ayarlarını yapılandırmak da mümkündür:
- **Ortam değişkenleri**
- **Hacimler** (Azure Files'dan bile)
- **Portlar**
- **CPU ve bellek sınırları**
- **Yeniden başlatma politikası**
- **Yetkili olarak çalıştır**
- **Çalıştırılacak komut satırı**
- ...
## Sayım
> [!WARNING]
> ACI'yi sayarken, **ortam değişkenleri**, **ağ detayları** veya **yönetilen kimlikler** gibi hassas yapılandırmaları ortaya çıkarabilirsiniz. Bunları kaydetme veya görüntüleme konusunda dikkatli olun.
```bash
# List all container instances in the subscription
az container list
# Show detailed information about a specific container instance
az container show --name <container-name> --resource-group <res-group>
# Fetch logs from a container
az container logs --name <container-name> --resource-group <res-group>
# Execute a command in a running container and get the output
az container exec --name <container-name> --resource-group <res-group> --exec-command "ls"
# Get yaml configuration of the container group
az container export --name <container-name> --resource-group <res-group>
```

View File

@@ -4,7 +4,7 @@
## Temel Bilgiler
Azure Queue Storage, Microsoft'un Azure bulut platformunda uygulama bileşenleri arasında mesaj kuyruklama için tasarlanmış bir hizmettir, **asenkron iletişimi ve ayrıştırmayı** sağlar. Sınırsız sayıda mesajı depolamanıza olanak tanır, her biri 64 KB'a kadar boyuttadır ve kuyruk oluşturma ve silme, mesaj ekleme, alma, güncelleme ve silme gibi işlemleri destekler, ayrıca meta verileri ve erişim politikalarını yönetir. Genellikle mesajları ilk giren ilk çıkar (FIFO) yöntemine göre işler, ancak katı FIFO garantisi verilmez.
Azure Queue Storage, Microsoft'un Azure bulut platformunda uygulama bileşenleri arasında mesaj kuyruklama için tasarlanmış bir hizmettir, **asenkron iletişimi ve ayrıştırmayı sağlar**. Sınırsız sayıda mesajı depolamanıza olanak tanır, her biri 64 KB'a kadar boyuttadır ve kuyruk oluşturma ve silme, mesaj ekleme, alma, güncelleme ve silme gibi işlemleri destekler, ayrıca meta verileri ve erişim politikalarını yönetir. Genellikle mesajları ilk giren ilk çıkar (FIFO) yöntemine göre işler, ancak katı FIFO garantisi verilmez.
### Enumeration
@@ -84,8 +84,8 @@ $queueMessage.Value
## Referanslar
- 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
- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](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](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,50 +4,59 @@
## Service Bus
Azure Service Bus, uygulamanın farklı 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ğlayarak, gönderici ve alıcının aynı anda çalışmadığı durumlarda bile güvenli bir aracı olarak işlev görür. 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 gerektiren durumlar 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 koordinasyon gereksinimleri için faydalıdır.
### Ana Kavramlar
### Anahtar Kavramlar
1. **Kuyruklar:** Amacı, alıcı hazır olana kadar mesajları depolamaktır.
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.
- İhtiyaç duyulduğunda (talep üzerine) teslim edilir.
- İhtiyaç duyulduğunda (isteğe bağlı alım) teslim edilir.
- Noktadan noktaya iletişimi destekler.
2. **Konu Başlıkları:** Yayınlama-abone olma mesajlaşması için yaygınlaştırma.
3. **Konular:** Yayın-abone mesajlaşması için yayın yapma.
- Birden fazla bağımsız abonelik, mesajların kopyalarını alır.
- Abonelikler, teslimatı kontrol etmek veya meta veriler eklemek için kurallar/filtreler içerebilir.
- Çoktan çoğa iletişimi destekler.
3. **Ad Alanları:** Tüm mesajlaşma bileşenleri, kuyruklar ve konu başlıkları için bir konteynerdir; güçlü bir Azure kümesinin kendi diliminiz gibi, özel kapasite sağlar ve isteğe bağlı olarak üç kullanılabilirlik bölgesine yayılabilir.
### İleri Düzey Özellikler
Hizmet otobüsü uç noktası/bağlantı dizesi:
```bash
https://<namespace>.servicebus.windows.net:443/
```
### Gelişmiş Özellikler
Bazı ileri düzey özellikler şunlardır:
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 konu başlıkları arasında mesajları aktarır.
- **Ölü Mektuplama**: İletilemeyen mesajları gözden geçirmek için yakalar.
- **Zamanlanmış Teslimat**: Gelecek görevler için mesaj işleme süresini geciktirir.
- **Otomatik İletim**: Aynı ad alanındaki kuyruklar veya konular arasında mesajları aktarır.
- **Ölü Mektuplar**: 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 eklemek için kurallar uygular.
- **İşlemler**: İşlemleri atomik yürütme için gruplar.
- **Filtreler ve Eylemler**: Mesajları filtrelemek veya not almak 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.
- **Toplu Silme**: Süresi dolmuş veya gereksiz mesajları toplu olarak siler.
### Yetkilendirme Kuralı / SAS Politikası
SAS Politikaları, Azure Service Bus varlıkları ad alanı (En Önemli Olan), kuyruklar ve konu başlıkları için erişim izinlerini tanımlar. Her politika aşağıdaki bileşenlere sahiptir:
SAS Politikaları, Azure Service Bus varlıkları ad alanı (En Önemli Olan), kuyruklar ve konular için erişim izinlerini tanımlar. Her politika aşağıdaki bileşenlere sahiptir:
- **İzinler**: Erişim seviyelerini belirtmek için onay kutuları:
- Yönet: Varlık üzerinde tam kontrol sağlar, yapılandırma ve izin yönetimi dahil.
- Gönder: Varlığa mesaj göndermeye izin verir.
- Dinle: Varlıktan mesaj almayı sağlar.
- 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ı 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.
### Ad Alanı
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.
sku, yetkilendirme kuralı,
### "--disable-local-auth"
--disable-local-auth parametresi, yerel kimlik doğrulamanın (yani, Paylaşılan Erişim İmzası (SAS) anahtarlarını kullanarak) Azure Service Bus ad alanınız için etkin olup olmadığını kontrol etmek için kullanılır. Bilmeniz gerekenler:
- Doğru olarak ayarlandığında: SAS anahtarları kullanarak yerel kimlik doğrulama devre dışı bırakılır ve azure Active Directory (Azure AD) kimlik doğrulamasına izin verilir.
- Yanlış olarak ayarlandığında: Hem SAS (yerel) kimlik doğrulaması hem de Azure AD kimlik doğrulaması mevcuttur ve Service Bus kaynaklarınıza erişmek için SAS anahtarları ile bağlantı dizelerini kullanabilirsiniz.
### Sayım

View File

@@ -4,32 +4,49 @@
## Azure SQL
Azure SQL, **Azure bulutunda SQL Server veritabanı motorunu** kullanan yönetilen, güvenli ve akıllı ürünler ailesidir. Bu, sunucularınızın fiziksel yönetimiyle ilgili endişelenmenize gerek olmadığı ve verilerinizi yönetmeye odaklanabileceğiniz anlamına gelir.
Azure SQL, **Azure bulutundaki SQL Server veritabanı motorunu** kullanan yönetilen, güvenli ve akıllı ürünler ailesidir. Bu, sunucularınızın fiziksel yönetimiyle ilgili endişelenmenize gerek olmadığı ve verilerinizi yönetmeye odaklanabileceğiniz anlamına gelir.
Azure SQL, üç ana teklifi içerir:
Azure SQL, dört ana teklifi içerir:
1. **Azure SQL Database**: Bu, Azure bulutunda bireysel veritabanlarını barındırmanıza olanak tanıyan **tamamen yönetilen bir veritabanı hizmetidir**. Eşsiz veritabanı desenlerinizi öğrenen ve özelleştirilmiş öneriler ve otomatik ayarlama sağlayan yerleşik bir zekaya sahiptir.
2. **Azure SQL Managed Instance**: Bu, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar, yaygın güvenlik endişelerini ele alan yerel bir sanal ağ (VNet) uygulaması sunar ve yerel SQL Server müşterileri için uygun bir iş modeli sağlar.
3. **Azure SQL Server on Azure VMs**: Bu, Altyapı Hizmeti (IaaS) olup, yerel olarak çalışan bir sunucu gibi **işletim sistemi ve SQL Server örneği üzerinde kontrol** istediğiniz göçler için en iyisidir.
1. **Azure SQL Server**: Azure SQL Server, SQL Server veritabanlarının dağıtımını ve yönetimini basitleştiren yönetilen bir ilişkisel veritabanı hizmetidir; yerleşik güvenlik ve performans özellikleri ile birlikte gelir.
2. **Azure SQL Database**: Bu, Azure bulutunda bireysel veritabanlarını barındırmanıza olanak tanıyan **tamamen yönetilen bir veritabanı hizmetidir**. Eşsiz veritabanı desenlerinizi öğrenen ve özelleştirilmiş öneriler ve otomatik ayarlama sağlayan yerleşik bir zekaya sahiptir.
3. **Azure SQL Managed Instance**: Bu, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endelerini ele alan yerel bir sanal ağ (VNet) uygulaması ve yerel SQL Server müşterileri için uygun bir iş modeli sunar.
4. **Azure SQL Server on Azure VMs**: Bu, Hizmet Olarak Altyapı (IaaS) olup, **işletim sistemi ve SQL Server örneği üzerinde kontrol** istediğiniz göçler için en iyisidir; sanki yerel bir sunucu çalışıyormuş gibi.
### Azure SQL Database
### Azure SQL Server
**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmettir (PaaS)**. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi ihtiyacını ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir.
Azure SQL Server, veri işlemleri için Transact-SQL kullanan ve kurumsal düzey sistemleri yönetmek için tasarlanmış bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Performans, güvenlik, ölçeklenebilirlik ve çeşitli Microsoft uygulamalarıyla entegrasyon için sağlam özellikler sunar. Azure SQL veritabanları bu sunucuya dayanır, çünkü bunlar bu sunucular üzerinde inşa edilmiştir ve veritabanlarına erişim için kullanıcıların giriş noktasıdır.
#### Ana Özellikler
#### Network
- **Her Zaman Güncel**: En son kararlı SQL Server sürümünde çalışır ve yeni özellikler ile yamaları otomatik olarak alır.
- **PaaS Yetenekleri**: Yerleşik yüksek kullanılabilirlik, yedeklemeler ve güncellemeler.
- **Veri Esnekliği**: İlişkisel ve ilişkisel olmayan verileri (örneğin, grafikler, JSON, mekansal ve XML) destekler.
**Ağ Bağlantısı**: Erişimi genel uç nokta veya özel uç nokta üzerinden etkinleştirip etkinleştirmeyeceğinizi seçin. Erişim yok seçeneğini seçerseniz, manuel olarak yapılandırılana kadar hiçbir uç nokta oluşturulmaz:
- Erişim yok: Hiçbir uç nokta yapılandırılmaz, manuel olarak ayarlanana kadar gelen bağlantıları engeller.
- Genel uç nokta: Genel internet üzerinden doğrudan bağlantılara izin verir, güvenlik duvarı kurallarına ve diğer güvenlik yapılandırmalarına tabidir.
- Özel uç nokta: Bağlantıyı özel bir ağa kısıtlar.
#### Satın Alma Modelleri / Hizmet Katmanları
**Bağlantı Politikası**: İstemcilerin SQL veritabanı sunucusuyla nasıl iletişim kuracağını tanımlayın:
- Varsayılan: Azure içindeki tüm istemci bağlantıları için bir Yönlendirme politikası (Özel Uç Noktaları kullananlar hariç) ve Azure dışındaki bağlantılar için bir Proxy politikası kullanır.
- Proxy: Tüm istemci bağlantılarını Azure SQL Database geçidi üzerinden yönlendirir.
- Yönlendirme: İstemciler, veritabanını barındıran düğüme doğrudan bağlanır.
- **vCore tabanlı**: Hesaplama, bellek ve depolamayı bağımsız olarak seçin. Genel Amaç, İş Kritik (OLTP uygulamaları için yüksek dayanıklılık ve performans ile) ve 128 TB depolama kapasitesine kadar ölçeklenir.
- **DTU tabanlı**: Hesaplama, bellek ve I/O'yu sabit katmanlara toplar. Yaygın görevler için dengeli kaynaklar.
- Standart: Yaygın görevler için dengeli kaynaklar.
- Premium: Talepkar iş yükleri için yüksek performans.
#### Authentication Methods
Azure SQL, veritabanı erişimini güvence altına almak için çeşitli kimlik doğrulama yöntemlerini destekler:
#### Dağıtım Modelleri
- **Microsoft Entra yalnızca kimlik doğrulaması**: Merkezi kimlik yönetimi ve tek oturum açma için Microsoft Entra (eski adıyla Azure AD) kullanır.
- **Hem SQL hem de Microsoft Entra kimlik doğrulaması**: Geleneksel SQL kimlik doğrulamasını Microsoft Entra ile birlikte kullanmanıza olanak tanır.
- **SQL kimlik doğrulaması**: Sadece SQL Server kullanıcı adları ve parolalarına dayanır.
#### Security features
SQL sunucuları **Yönetilen Kimlikler** içerir. Yönetilen kimlikler, sunucunuzun kimlik bilgilerini saklamadan diğer Azure hizmetleriyle güvenli bir şekilde kimlik doğrulaması yapmasına olanak tanır. Diğer hizmetlere erişim sağlar; bu, Sistem atanan yönetilen kimlik ile olur ve diğer kimliklerle erişilen Kullanıcı atanan yönetilen kimliktir. SQL'in erişebileceği bazı hizmetler Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB veya Cosmos DB API for MongoDB, Generic ODBC, Bulk Operations ve S3 uyumlu nesne depolamasıdır.
SQL sunucusunun sahip olduğu diğer güvenlik özellikleri şunlardır:
- **Güvenlik Duvarı Kuralları**: Güvenlik duvarı kuralları, trafiği kısıtlayarak veya izin vererek sunucunuza erişimi kontrol eder. Bu, veritabanlarının kendisinin de bir özelliğidir.
- **Şeffaf Veri Şifreleme (TDE)**: TDE, verilerinizi korumak için veritabanlarınızı, yedeklerinizi ve günlüklerinizi dinlenme durumunda şifreler; bu, depolama tehlikeye girse bile verilerinizi korur. Bu, hizmet yönetimli bir anahtar veya müşteri yönetimli bir anahtar ile yapılabilir.
- **Microsoft Defender for SQL**: Microsoft Defender for SQL, bir sunucu için zafiyet değerlendirmeleri ve gelişmiş tehdit koruması sunarak etkinleştirilebilir.
#### Deployment Models
Azure SQL Database, çeşitli ihtiyaçlara uygun esnek dağıtım seçeneklerini destekler:
@@ -38,56 +55,93 @@ Azure SQL Database, çeşitli ihtiyaçlara uygun esnek dağıtım seçeneklerini
- Mikro hizmetler veya tek bir veri kaynağı gerektiren uygulamalar için harika.
- **Esnek Havuz**:
- Bir havuz içinde birden fazla veritabanının kaynakları paylaşmasına olanak tanır.
- Birden fazla veritabanı arasında dalgalanan kullanım desenleri için maliyet etkin.
- Birden fazla veritabanında dalgalanan kullanım desenleri için maliyet etkin.
#### Ölçeklenebilir performans ve havuzlar
### Azure SQL Database
- **Tek Veritabanları**: Her veritabanı izole edilmtir ve kendi özel hesaplama, bellek ve depolama kaynaklarına sahiptir. Kaynaklar, kesinti olmadan dinamik olarak (yukarı veya aşağı) ölçeklenebilir (1128 vCore, 32 GB4 TB depolama ve 128 TB'a kadar).
- **Esnek Havuzlar**: Verimliliği artırmak ve maliyetleri düşürmek için bir havuzda birden fazla veritabanı arasında kaynakları paylaşır. Tüm havuz için kaynaklar da dinamik olarak ölçeklenebilir.
**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmettir (PaaS)**. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi gereksinimini ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir.
#### Key Features
- **Her Zaman Güncel**: En son kararlı SQL Server sürümünde çalışır ve yeni özellikler ve yamalar otomatik olarak alır.
- **PaaS Yetenekleri**: Yerleşik yüksek kullanılabilirlik, yedeklemeler ve güncellemeler.
- **Veri Esnekliği**: İlişkisel ve ilişkisel olmayan verileri (örneğin, grafikler, JSON, mekansal ve XML) destekler.
#### Network
**Ağ Bağlantısı**: Erişimi genel uç nokta veya özel uç nokta üzerinden etkinleştirip etkinleştirmeyeceğinizi seçin. Erişim yok seçeneğini seçerseniz, manuel olarak yapılandırılana kadar hiçbir uç nokta oluşturulmaz:
- Erişim yok: Hiçbir uç nokta yapılandırılmaz, manuel olarak ayarlanana kadar gelen bağlantıları engeller.
- Genel uç nokta: Genel internet üzerinden doğrudan bağlantılara izin verir, güvenlik duvarı kurallarına ve diğer güvenlik yapılandırmalarına tabidir.
- Özel uç nokta: Bağlantıyı özel bir ağa kısıtlar.
**Bağlantı Politikası**: İstemcilerin SQL veritabanı sunucusuyla nasıl iletişim kuracağını tanımlayın:
- Varsayılan: Azure içindeki tüm istemci bağlantıları için bir Yönlendirme politikası (Özel Uç Noktaları kullananlar hariç) ve Azure dışındaki bağlantılar için bir Proxy politikası kullanır.
- Proxy: Tüm istemci bağlantılarını Azure SQL Database geçidi üzerinden yönlendirir.
- Yönlendirme: İstemciler, veritabanını barındıran düğüme doğrudan bağlanır.
#### Security Features
- **Microsoft Defender for SQL**: zafiyet değerlendirmeleri ve gelişmiş tehdit koruması sunarak etkinleştirilebilir.
- **Defter**: Verilerin bütünlüğünü kriptografik olarak doğrular, herhangi bir müdahalenin tespit edilmesini sağlar.
- **Sunucu Kimliği**: Merkezi erişimi sağlamak için sistem atanan ve kullanıcı atanan yönetilen kimlikleri kullanır.
- **Şeffaf Veri Şifreleme Anahtar Yönetimi**: Uygulamada herhangi bir değişiklik gerektirmeden veritabanlarını, yedekleri ve günlükleri dinlenme durumunda şifreler. Şifreleme her veritabanında etkinleştirilebilir ve veritabanı düzeyinde yapılandırıldığında, bu ayarlar sunucu düzeyindeki yapılandırmayı geçersiz kılar.
- **Her Zaman Şifreli**: Veri sahipliğini veri yönetiminden ayıran gelişmiş veri koruma özellikleri setidir. Bu, yüksek ayrıcalıklara sahip yöneticilerin veya operatörlerin hassas verilere erişememesini sağlar.
#### Purchasing Models / Service Tiers
- **vCore tabanlı**: Hesaplama, bellek ve depolamayı bağımsız olarak seçin. Genel Amaç, İş Kritik (OLTP uygulamaları için yüksek dayanıklılık ve performans ile) ve 128 TB depolama kapasitesine kadar ölçeklenir.
- **DTU tabanlı**: Hesaplama, bellek ve I/O'yu sabit katmanlara paketler. Yaygın görevler için dengeli kaynaklar.
- Standart: Yaygın görevler için dengeli kaynaklar.
- Premium: Talepkar iş yükleri için yüksek performans.
#### Scalable performance and pools
- **Tek Veritabanları**: Her veritabanı izole edilmiştir ve kendi özel hesaplama, bellek ve depolama kaynaklarına sahiptir. Kaynaklar, kesinti olmadan dinamik olarak ölçeklendirilebilir (1128 vCores, 32 GB4 TB depolama ve 128 TB'a kadar).
- **Esnek Havuzlar**: Verimliliği artırmak ve maliyetleri azaltmak için bir havuzda birden fazla veritabanı arasında kaynakları paylaşır. Kaynaklar, tüm havuz için de dinamik olarak ölçeklendirilebilir.
- **Hizmet Katmanı Esnekliği**: Genel Amaç katmanında tek bir veritabanı ile küçük başlayın. İhtiyaçlar arttıkça İş Kritik veya Hiperscale katmanlarına yükseltin.
- **Ölçekleme Seçenekleri**: Dinamik Ölçekleme veya Otomatik Ölçekleme Alternatifleri.
- **Ölçeklendirme Seçenekleri**: Dinamik Ölçeklendirme veya Otomatik Ölçeklendirme Alternatifleri.
#### Yerleşik İzleme & Optimizasyon
#### Built-In Monitoring & Optimization
- **Sorgu Deposu**: Performans sorunlarını izler, en fazla kaynak tüketenleri belirler ve uygulanabilir öneriler sunar.
- **Otomatik Ayarlama**: Otomatik indeksleme ve sorgu planı düzeltmeleri gibi özelliklerle performansı proaktif olarak optimize eder.
- **Telemetri Entegrasyonu**: Özelleştirilmiş içgörüler için Azure Monitor, Event Hubs veya Azure Storage aracılığıyla izlemeyi destekler.
- **Sorgu Deposu**: Performans sorunlarını izler, en fazla kaynak tüketenleri tanımlar ve uygulanabilir öneriler sunar.
- **Otomatik Ayarlama**: Otomatik dizinleme ve sorgu planı düzeltmeleri gibi özelliklerle performansı proaktif olarak optimize eder.
- **Telemetri Entegrasyonu**: Özelleştirilmiş içgörüler için Azure Monitor, Event Hubs veya Azure Storage üzerinden izlemeyi destekler.
#### Felaket Kurtarma & Kullanılabilirlik
#### Disaster Recovery & Availavility
- **Otomatik yedeklemeler**: SQL Database, veritabanlarının tam, farklı ve işlem günlüğü yedeklemelerini otomatik olarak gerçekleştirir.
- **Anlık Geri Yükleme**: Veritabanlarını yedekleme saklama süresi içinde herhangi bir geçmiş duruma geri yükleyin.
- **Coğrafi Yedeklilik**
- **Kayıp Grupları**: Veritabanlarını bölgeler arasında otomatik failover için gruplandırarak felaket kurtarmayı basitleştirir.
- **Kayıp Grupları**: Veritabanlarını otomatik failover için bölgeler arasında gruplandırarak felaket kurtarmayı basitleştirir.
### Azure SQL Managed Instance
**Azure SQL Managed Instance**, SQL Server ile neredeyse %100 uyumluluk sunan ve çoğu yönetim görevini (örneğin, yükseltme, yamanlama, yedekleme, izleme) otomatik olarak gerçekleştiren bir Platform olarak Hizmet (PaaS) veritabanı motorudur. Minimal değişikliklerle yerel SQL Server veritabanlarını buluta taşımak için bir çözüm sunar.
**Azure SQL Managed Instance**, SQL Server ile neredeyse %100 uyumluluk sunan ve çoğu yönetim görevini (örneğin, yükseltme, yamanın uygulanması, yedekleme, izleme) otomatik olarak gerçekleştiren bir Hizmet Olarak Platform (PaaS) veritabanı motorudur. Yerel SQL Server veritabanlarını minimum değişiklikle buluta taşımak için bir çözüm sunar.
#### Hizmet Katmanları
#### Service Tiers
- **Genel Amaç**: Standart I/O ve gecikme gereksinimleri olan uygulamalar için maliyet etkin bir seçenek.
- **İş Kritik**: Kritik iş yükleri için düşük I/O gecikmesi ile yüksek performans seçeneği.
#### Gelişmiş Güvenlik Özellikleri
#### Advanced Security Features
* **Tehdit Koruma**: Şüpheli etkinlikler ve SQL enjeksiyon saldırıları için Gelişmiş Tehdit Koruma uyarıları. Uyum için veritabanı olaylarını izlemek ve kaydetmek için denetim.
* **Erişim Kontrolü**: Merkezi kimlik yönetimi için Microsoft Entra kimlik doğrulaması. Ayrıntılı erişim kontrolü için Satır Düzeyi Güvenlik ve Dinamik Veri Maskeleme.
* **Tehdit Koruması**: Şüpheli etkinlikler ve SQL enjeksiyon saldırıları için gelişmiş tehdit koruma uyarıları. Uyum için veritabanı olaylarını izlemek ve kaydetmek için denetim.
* **Erişim Kontrolü**: Merkezi kimlik yönetimi için Microsoft Entra kimlik doğrulaması. Ayrıntılı erişim kontrolü için Satır Düzeyi Güvenlik ve Dinamik Veri Maskesi.
* **Yedeklemeler**: Anlık geri yükleme yeteneği ile otomatik ve manuel yedeklemeler.
### Azure SQL Sanal Makineleri
### Azure SQL Virtual Machines
**Azure SQL Sanal Makineleri**, yerel olarak çalışan bir sunucu gibi **işletim sistemi ve SQL Server örneği üzerinde kontrol** istediğiniz göçler için en iyisidir. Farklı makine boyutlarına ve geniş bir SQL Server sürüm ve sürüm seçeneğine sahip olabilir.
**Azure SQL Virtual Machines**, **işletim sistemi ve SQL Server örneği üzerinde kontrol** istediğiniz göçler için en iyisidir; sanki yerel bir sunucu çalışıyormuş gibi. Farklı makine boyutlarına ve geniş bir SQL Server sürüm ve sürüm seçeneğine sahip olabilir.
#### Ana Özellikler
#### Key Features
**Otomatik Yedekleme**: SQL veritabanları için yedeklemeleri planlayın.
**Otomatik Yamanlama**: Bakım penceresi sırasında Windows ve SQL Server güncellemelerinin yüklenmesini otomatikleştirir.
**Otomatik Yedekleme**: SQL veritabanları için yedekleme programı oluşturun.
**Otomatik Yamanın Uygulanması**: Bakım penceresi sırasında Windows ve SQL Server güncellemelerinin yüklenmesini otomatikleştirir.
**Azure Key Vault Entegrasyonu**: SQL Server VM'leri için Key Vault'u otomatik olarak yapılandırır.
**Defender for Cloud Entegrasyonu**: Portalda Defender for SQL önerilerini görüntüleyin.
**Sürüm/Sürüm Esnekliği**: VM'yi yeniden dağıtmadan SQL Server sürüm veya sürüm meta verisini değiştirin.
**Sürüm/Sürüm Esnekliği**: VM'yi yeniden dağıtmadan SQL Server sürüm veya sürüm meta verilerini değiştirin.
#### Güvenlik Özellikleri
#### Security Features
**Microsoft Defender for SQL**: Güvenlik içgörüleri ve uyarılar.
**Azure Key Vault Entegrasyonu**: Kimlik bilgileri ve şifreleme anahtarlarının güvenli depolanması.
@@ -99,7 +153,7 @@ Azure SQL Database, çeşitli ihtiyaçlara uygun esnek dağıtım seçeneklerini
{{#tab name="az cli"}}
```bash
# List Servers
az sql server list # --output table
az sql server list # managed identities are enumerated here too
## List Server Usages
az sql server list-usages --name <server_name> --resource-group <resource_group>
## List Server Firewalls

View File

@@ -8,9 +8,9 @@ Google Cloud Compute Instances, **Google'ın bulut altyapısında özelleştiril
### Gizli VM
Gizli VM'ler, **AMD EPYC işlemcilerinin en son nesli** tarafından sunulan **donanım tabanlı güvenlik özelliklerini** kullanır; bu özellikler arasında bellek şifreleme ve güvenli şifreli sanallaştırma bulunur. Bu özellikler, VM'nin işlenen ve içinde depolanan verileri, hatta ana işletim sistemi ve hipervizörden korumasını sağlar.
Gizli VM'ler, **AMD EPYC işlemcilerinin en son nesli** tarafından sunulan **donanım tabanlı güvenlik özelliklerini** kullanır; bu özellikler arasında bellek şifreleme ve güvenli şifreli sanallaştırma bulunur. Bu özellikler, VM'nin işlenen ve depolanan verileri, hatta ana işletim sistemi ve hipervizörden korumasını sağlar.
Gizli bir VM çalıştırmak için, **makine türü**, ağ **arayüzü**, **önyükleme diski görüntüsü** gibi şeyleri **değiştirmek** gerekebilir.
Gizli bir VM çalıştırmak için, **makine türü**, ağ **arayüzü**, **önyükleme diski görüntüsü** gibi şeyleri **değiştirmeniz** gerekebilir.
### Disk ve Disk Şifreleme
@@ -24,7 +24,7 @@ Kullanılacak **diski seçmek** veya **yeni bir tane oluşturmak** mümkündür.
### Konteyner Dağıtımı
Sanal makine içinde bir **konteyner** dağıtmak mümkündür.\
Kullanılacak **görüntüyü** yapılandırmak, içinde çalıştırılacak **komutu**, **argümanları**, bir **hacim** bağlamak ve **env değişkenlerini** (hassas bilgiler?) ayarlamak ve bu konteyner için **yetkili** olarak çalıştırma, stdin ve sahte TTY gibi çeşitli seçenekleri yapılandırmak mümkündür.
Kullanılacak **görüntüyü** yapılandırmak, içinde çalıştırılacak **komutu**, **argümanları**, bir **hacim** bağlamak ve **env değişkenlerini** (hassas bilgiler?) ayarlamak mümkündür ve bu konteyner için **yetkili** olarak çalıştırma, stdin ve sahte TTY gibi çeşitli seçenekler yapılandırılabilir.
### Hizmet Hesabı
@@ -34,11 +34,11 @@ Bu hizmet hesabı, **tüm projede Editör rolüne (yüksek ayrıcalıklar)** sah
Ve **varsayılan erişim kapsamları** şunlardır:
- **https://www.googleapis.com/auth/devstorage.read\_only** -- Kovalara okuma erişimi :)
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
- [https://www.googleapis.com/auth/logging.write](https://www.googleapis.com/auth/logging.write)
- [https://www.googleapis.com/auth/monitoring.write](https://www.googleapis.com/auth/monitoring.write)
- [https://www.googleapis.com/auth/servicecontrol](https://www.googleapis.com/auth/servicecontrol)
- [https://www.googleapis.com/auth/service.management.readonly](https://www.googleapis.com/auth/service.management.readonly)
- [https://www.googleapis.com/auth/trace.append](https://www.googleapis.com/auth/trace.append)
Ancak, **bir tıklama ile `cloud-platform` vermek** veya **özel olanları** belirtmek mümkündür.
@@ -52,7 +52,7 @@ HTTP ve HTTPS trafiğine izin vermek mümkündür.
### Ağ
- **IP Yönlendirme**: Örneğin oluşturulurken **IP yönlendirmeyi etkinleştirmek** mümkündür.
- **IP Yönlendirme**: Örneğin oluşturulurken **IP yönlendirmesini etkinleştirmek** mümkündür.
- **Ana Bilgisayar Adı**: Örneğe kalıcı bir ana bilgisayar adı vermek mümkündür.
- **Arayüz**: Bir ağ arayüzü eklemek mümkündür.
@@ -60,14 +60,14 @@ HTTP ve HTTPS trafiğine izin vermek mümkündür.
Bu seçenekler, VM'nin **güvenliğini artıracak** ve önerilmektedir:
- **Güvenli önyükleme:** Güvenli önyükleme, VM örneklerinizi önyükleme düzeyinde ve çekirdek düzeyinde kötü amaçlı yazılımlara ve rootkit'lere karşı korumaya yardımcı olur.
- **Güvenli önyükleme:** Güvenli önyükleme, VM örneklerinizi önyükleme düzeyi ve çekirdek düzeyi kötü amaçlı yazılımlara ve rootkit'lere karşı korumaya yardımcı olur.
- **vTPM'yi etkinleştir:** Sanal Güvenilir Platform Modülü (vTPM), misafir VM'nizin önyükleme öncesi ve önyükleme bütünlüğünü doğrular ve anahtar oluşturma ve koruma sunar.
- **Bütünlük denetimi:** Bütünlük izleme, Stackdriver raporlarını kullanarak korumalı VM örneklerinizin çalışma zamanı önyükleme bütünlüğünü izlemenizi ve doğrulamanızı sağlar. vTPM'nin etkinleştirilmesi gereklidir.
### VM Erişimi
VM'ye erişimi etkinleştirmenin yaygın yolu, **belirli SSH genel anahtarlarına** VM'ye erişim izni vermektir.\
Ancak, bu hizmeti kullanarak **IAM ile VM'ye erişimi etkinleştirmek** de mümkündür. Ayrıca, bu hizmeti kullanarak VM'ye erişim için 2FA'yı etkinleştirmek de mümkündür.\
Ancak, bu hizmeti kullanarak **IAM ile VM'ye erişimi etkinleştirmek** de mümkündür. Ayrıca, bu hizmeti kullanarak VM'ye erişim için 2FA'yı etkinleştirmek mümkündür.\
Bu **hizmet** **etkinleştirildiğinde**, **SSH anahtarları ile erişim devre dışı bırakılır.**
<figure><img src="../../../../images/image (328).png" alt=""><figcaption></figcaption></figure>
@@ -76,7 +76,7 @@ Bu **hizmet** **etkinleştirildiğinde**, **SSH anahtarları ile erişim devre d
Her seferinde makine açıldığında veya yeniden başlatıldığında çalıştırılacak **otomasyon** (AWS'deki userdata) olarak tanımlamak mümkündür.
Ayrıca, metadata uç noktasından erişilebilecek **ek metadata anahtar-değer çiftleri** eklemek de mümkündür. Bu bilgi genellikle ortam değişkenleri ve başlangıç/kapatma betikleri için kullanılır. Bu, sayım bölümündeki bir komuttan **`describe` yöntemini** kullanarak elde edilebilir, ancak aynı zamanda metadata uç noktasına erişerek örneğin içinden de alınabilir.
Ayrıca, metadata uç noktasından erişilebilecek **ek metadata anahtar-değer çiftleri** eklemek de mümkündür. Bu bilgi genellikle ortam değişkenleri ve başlangıç/kapatma betikleri için kullanılır. Bu, enumerasyon bölümündeki bir komuttan **`describe` yöntemini** kullanarak elde edilebilir, ancak aynı zamanda metadata uç noktasına erişerek örneğin içinden de alınabilir.
```bash
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
@@ -86,7 +86,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
```
Ayrıca, **bağlı hizmet hesabı için auth token** ve **örnek, ağ ve proje hakkında genel bilgiler** de **metadata endpoint** üzerinden erişilebilir olacaktır. Daha fazla bilgi için kontrol edin:
Ayrıca, **bağlı hizmet hesabı için auth token** ve **örnek, ağ ve proje hakkında genel bilgi** de **metadata endpoint** üzerinden erişilebilir olacaktır. Daha fazla bilgi için kontrol edin:
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp