From d50ed593cbd4093f23cc12f69607d07a4ff02f05 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Feb 2025 03:27:02 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- .../az-servicebus-privesc.md | 90 ++++++++++++++++--- .../az-services/az-servicebus-enum.md | 36 ++++---- 2 files changed, 97 insertions(+), 29 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index 27063750c..466275493 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -10,7 +10,79 @@ ../az-services/az-servicebus-enum.md {{#endref}} -### メッセージを送信します。アクション: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` または `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action または Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action + +これらの権限により、Service Bus 名前空間内のローカル認証ルールのキーを取得または再生成できます。このキーを使用することで、Service Bus 名前空間として認証でき、任意のキューやトピックにメッセージを送信したり、任意のキューやサブスクリプションからメッセージを受信したり、システムに対して操作を妨害したり、正当なユーザーを偽装したり、メッセージングワークフローに悪意のあるデータを注入したりする可能性があります。 + +デフォルトでは、**`RootManageSharedAccessKey` ルールは Service Bus 名前空間に対して完全な制御を持っています** そしてこれは `az` cli によって使用されますが、他のキー値を持つ他のルールが存在する可能性があります。 +```bash +# List keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name --authorization-rule-name RootManageSharedAccessKey [--authorization-rule-name RootManageSharedAccessKey] + +# Regenerate keys +az servicebus namespace authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +``` +### Microsoft.ServiceBus/namespaces/AuthorizationRules/write + +この権限を使用すると、すべての権限と独自のキーを持つ**新しい認証ルールを作成**することができます: +```bash +az servicebus namespace authorization-rule create --authorization-rule-name "myRule" --namespace-name mynamespacespdemo --resource-group Resource_Group_1 --rights Manage Listen Send +``` +>[!WARNING] +>このコマンドはキーで応答しないため、特権を昇格させるために前のコマンド(および権限)で取得する必要があります。 + +さらに、そのコマンド(および `Microsoft.ServiceBus/namespaces/authorizationRules/read`)を使用して、Azure CLIを通じてこのアクションを実行すると、既存の承認ルールを更新し、次のコマンドでより多くの権限を与えることが可能です: +```bash +az servicebus namespace authorization-rule update \ +--resource-group \ +--namespace-name \ +--name RootManageSharedAccessKey \ +--rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action + +Service Bus 名前空間内の特定のトピックとキューは、それぞれ独自の承認ルールを持つことができ、エンティティへのアクセスを制御するために使用できます。これらの権限を持つことで、**これらのローカル承認ルールのキーを取得または再生成する**ことができ、エンティティとして認証し、メッセージの送受信、サブスクリプションの管理、またはシステムと相互作用して操作を妨害したり、有効なユーザーを偽装したり、メッセージングワークフローに悪意のあるデータを注入したりする可能性があります。 +```bash +# List keys (topics) +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name + +# Regenerate keys (topics) +az servicebus topic authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --topic-name --name + +# List keys (queues) +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Regenerate keys (queues) +az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey] --resource-group --namespace-name --queue-name --name +``` +### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/write + +この権限を使用すると、すべての権限と独自のキーを持つ**新しい認証ルールを作成**することができます: +```bash +# In a topic +az servicebus topic authorization-rule create --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule create --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +>[!WARNING] +>このコマンドはキーで応答しないため、特権を昇格させるために前のコマンド(および権限)で取得する必要があります。 + +さらに、そのコマンド(および `Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`)を使用して、Azure CLIを通じてこのアクションを実行すると、既存の承認ルールを更新し、次のコマンドでより多くの権限を与えることが可能です(不足している場合)。 +```bash +# In a topic +az servicebus topic authorization-rule update --resource-group --namespace-name --topic-name --name --rights Manage Listen Send + +# In a queue +az servicebus queue authorization-rule update --resource-group --namespace-name --queue-name --name --rights Manage Listen Send +``` +### Microsoft.ServiceBus/namespaces/write (& Microsoft.ServiceBus/namespaces/read if az cli is used) + +これらの権限により、**攻撃者は次のコマンドを使用して「ローカル認証」を再有効化できます**。そのため、共有ポリシーからのすべてのキーが機能します。 +```bash +az servicebus namespace update --disable-local-auth false -n --resource-group +``` +### Send Messages with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) `PrimaryConnectionString`を取得できます。これはService Bus名前空間の資格情報として機能します。この接続文字列を使用すると、Service Bus名前空間として完全に認証でき、任意のキューやトピックにメッセージを送信し、システムに対して操作を妨害したり、有効なユーザーを偽装したり、メッセージングワークフローに悪意のあるデータを注入したりする可能性があります。 ```python @@ -81,9 +153,9 @@ print("Messages Sent") print("----------------------------") ``` -### メッセージを受信する。アクション: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` または `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action` +### Recieve with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) -PrimaryConnectionStringを取得できます。これはService Bus名前空間の資格情報として機能します。この接続文字列を使用すると、名前空間内の任意のキューまたはサブスクリプションからメッセージを受信でき、潜在的に機密または重要なデータにアクセスでき、データの流出を可能にしたり、メッセージ処理やアプリケーションのワークフローに干渉したりすることができます。 +PrimaryConnectionStringを取得できます。これはService Bus名前空間の資格情報として機能します。この接続文字列を使用して、名前空間内の任意のキューまたはサブスクリプションからメッセージを受信でき、潜在的に機密または重要なデータへのアクセスを可能にし、データの流出を促進したり、メッセージ処理やアプリケーションのワークフローに干渉したりすることができます。 ```python #You need to install the following libraries #pip install azure-servicebus @@ -127,17 +199,7 @@ asyncio.run(receive_and_process_messages()) print("Message Receiving Completed") print("----------------------------") ``` -### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write` - -これらの権限がある場合、共有アクセスキーを読み取ったり作成したりすることで特権を昇格させることができます。これらのキーは、キュー、トピックの管理、メッセージの送受信を含むService Bus名前空間に対する完全な制御を可能にし、役割ベースのアクセス制御(RBAC)を回避する可能性があります。 -```bash -az servicebus namespace authorization-rule update \ ---resource-group \ ---namespace-name \ ---name RootManageSharedAccessKey \ ---rights Manage Listen Send -``` -## 参考文献 +## References - https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues - https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md index f5169eb5c..d021dc733 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md @@ -4,7 +4,7 @@ ## Service Bus -Azure Service Busは、アプリケーションの異なる部分や別のアプリケーション間での信頼性のある**通信を可能にするために設計された**クラウドベースの**メッセージングサービス**です。これは、安全な仲介者として機能し、送信者と受信者が同時に動作していなくてもメッセージが安全に配信されることを保証します。システムを分離することで、アプリケーションは独立して動作しながらデータや指示を交換できます。これは、複数のワーカー間での負荷分散、信頼性のあるメッセージ配信、または順序通りのタスク処理やアクセスの安全な管理など、複雑な調整が必要なシナリオに特に役立ちます。 +Azure Service Busは、アプリケーションの異なる部分または別々のアプリケーション間の信頼性のある**通信を可能にするために設計された**クラウドベースの**メッセージングサービス**です。これは、安全な仲介者として機能し、送信者と受信者が同時に操作していなくても、メッセージが安全に配信されることを保証します。システムを分離することで、アプリケーションは独立して動作しながら、データや指示を交換することができます。これは、複数のワーカー間での負荷分散、信頼性のあるメッセージ配信、または順序通りのタスク処理やアクセス管理のような複雑な調整が必要なシナリオに特に役立ちます。 ### Key Concepts @@ -24,7 +24,7 @@ Azure Service Busは、アプリケーションの異なる部分や別のアプ - **メッセージセッション**: FIFO処理を保証し、リクエスト-レスポンスパターンをサポートします。 - **自動転送**: 同じネームスペース内のキューまたはトピック間でメッセージを転送します。 -- **デッドレター**: 配信不能なメッセージをレビューのためにキャプチャします。 +- **デッドレター**: 配信できないメッセージをレビューのためにキャプチャします。 - **スケジュール配信**: 将来のタスクのためにメッセージ処理を遅延させます。 - **メッセージ延期**: 準備ができるまでメッセージの取得を延期します。 - **トランザクション**: 操作を原子的な実行にグループ化します。 @@ -42,7 +42,7 @@ SASポリシーは、Azure Service Busエンティティネームスペース( - 送信: エンティティにメッセージを送信することを許可します。 - リスン: エンティティからメッセージを受信することを許可します。 - **プライマリおよびセカンダリキー**: アクセスを認証するための安全なトークンを生成するために使用される暗号化キーです。 -- **プライマリおよびセカンダリ接続文字列**: エンドポイントとキーを含む事前設定された接続文字列で、アプリケーションでの使用が簡単です。 +- **プライマリおよびセカンダリ接続文字列**: エンドポイントとキーを含む事前構成された接続文字列で、アプリケーションでの使用が簡単です。 - **SASポリシーARM ID**: プログラムによる識別のためのポリシーへのAzureリソースマネージャー(ARM)パスです。 ### NameSpace @@ -54,18 +54,6 @@ sku, authrorization rule, {{#tabs }} {{#tab name="az cli" }} ```bash -# Queue Enumeration -az servicebus queue list --resource-group --namespace-name -az servicebus queue show --resource-group --namespace-name --name - -# Topic Enumeration -az servicebus topic list --resource-group --namespace-name -az servicebus topic show --resource-group --namespace-name --name - -# Susbscription Enumeration -az servicebus topic subscription list --resource-group --namespace-name --topic-name -az servicebus topic subscription show --resource-group --namespace-name --topic-name --name - # Namespace Enumeration az servicebus namespace list az servicebus namespace network-rule-set list --resource-group --namespace-name @@ -79,6 +67,23 @@ az servicebus namespace authorization-rule list --resource-group --namespace-name --queue-name az servicebus topic authorization-rule list --resource-group --namespace-name --topic-name az servicebus namespace authorization-rule keys list --resource-group --namespace-name --name + +# Get keys +az servicebus namespace authorization-rule keys list --resource-group --namespace-name [--authorization-rule-name RootManageSharedAccessKey] +az servicebus topic authorization-rule keys list --resource-group --namespace-name --topic-name --name +az servicebus queue authorization-rule keys list --resource-group --namespace-name --queue-name --name + +# Queue Enumeration +az servicebus queue list --resource-group --namespace-name +az servicebus queue show --resource-group --namespace-name --name + +# Topic Enumeration +az servicebus topic list --resource-group --namespace-name +az servicebus topic show --resource-group --namespace-name --name + +# Susbscription Enumeration +az servicebus topic subscription list --resource-group --namespace-name --topic-name +az servicebus topic subscription show --resource-group --namespace-name --topic-name --name ``` {{#endtab }} @@ -128,6 +133,7 @@ Get-AzServiceBusTopic -ResourceGroupName -NamespaceName