From f93a199017f6c69770e8cb3acb2c2ba00c2a5177 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Feb 2025 03:25:10 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation --- .../az-servicebus-privesc.md | 90 ++++++++++++++++--- .../az-services/az-servicebus-enum.md | 40 +++++---- 2 files changed, 99 insertions(+), 31 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 a7379fd6e..cd91798c7 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,9 +10,81 @@ ../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 OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action -`PrimaryConnectionString`을 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 Service Bus 네임스페이스로 완전히 인증할 수 있으며, 이를 통해 모든 큐나 주제에 메시지를 전송하고 시스템과 상호작용하여 운영을 방해하거나 유효한 사용자를 가장하거나 메시징 워크플로우에 악성 데이터를 주입할 수 있습니다. +이 권한은 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 #You need to install the following libraries #pip install azure-servicebus @@ -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,16 +199,6 @@ 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 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 38e5e44c4..46bff8040 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 @@ -9,14 +9,14 @@ Azure Service Bus는 **애플리케이션의 다양한 부분 또는 별도의 ### Key Concepts 1. **Queues:** 그 목적은 수신자가 준비될 때까지 메시지를 저장하는 것입니다. -- 메시지는 순서가 있으며, 타임스탬프가 찍히고, 내구성이 있게 저장됩니다. -- 풀 모드(요청 시 검색)로 전달됩니다. +- 메시지는 순서가 있으며, 타임스탬프가 붙고, 내구성이 있게 저장됩니다. +- 풀 모드(온디맨드 검색)로 전달됩니다. - 포인트 투 포인트 통신을 지원합니다. -2. **Topics:** 방송을 위한 게시-구독 메시징입니다. +2. **Topics:** 방송을 위한 게시-구독 메시징. - 여러 독립적인 구독이 메시지의 복사본을 수신합니다. - 구독은 전달을 제어하거나 메타데이터를 추가하기 위한 규칙/필터를 가질 수 있습니다. - 다대다 통신을 지원합니다. -3. **Namespaces:** 모든 메시징 구성 요소, 큐 및 주제를 위한 컨테이너로, 강력한 Azure 클러스터의 자신의 조각과 같으며, 전용 용량을 제공하고 선택적으로 세 개의 가용성 영역에 걸쳐 확장할 수 있습니다. +3. **Namespaces:** 모든 메시징 구성 요소, 큐 및 주제를 위한 컨테이너로, 강력한 Azure 클러스터의 자신의 슬라이스와 같으며, 전용 용량을 제공하고 선택적으로 세 개의 가용성 영역에 걸쳐 있습니다. ### Advance Features @@ -25,7 +25,7 @@ Azure Service Bus는 **애플리케이션의 다양한 부분 또는 별도의 - **Message Sessions**: FIFO 처리를 보장하고 요청-응답 패턴을 지원합니다. - **Auto-Forwarding**: 동일한 네임스페이스 내에서 큐 또는 주제 간에 메시지를 전송합니다. - **Dead-Lettering**: 배달할 수 없는 메시지를 검토를 위해 캡처합니다. -- **Scheduled Delivery**: 미래의 작업을 위해 메시지 처리를 지연시킵니다. +- **Scheduled Delivery**: 미래 작업을 위해 메시지 처리를 지연시킵니다. - **Message Deferral**: 준비될 때까지 메시지 검색을 연기합니다. - **Transactions**: 작업을 원자적 실행으로 그룹화합니다. - **Filters & Actions**: 메시지를 필터링하거나 주석을 추가하기 위한 규칙을 적용합니다. @@ -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