From 2f7d149a81a4e97a59628236056331e274626060 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 20 Feb 2025 00:55:14 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-persistence/az-queue --- src/SUMMARY.md | 5 +-- .../az-persistence/az-queue-persistance.md | 2 +- .../az-persistence/az-sql-persistance.md | 20 +++++++++++ .../az-queue-post-exploitation.md | 16 ++++----- .../az-servicebus-post-exploitation.md | 10 +++--- .../az-queue-privesc.md | 6 ++-- .../az-servicebus-privesc.md | 33 +++++++++++-------- .../{az-queue-enum.md => az-queue.md} | 0 ...az-servicebus-enum.md => az-servicebus.md} | 8 ++--- .../azure-security/az-services/az-sql.md | 32 ++++++++++-------- 10 files changed, 82 insertions(+), 50 deletions(-) create mode 100644 src/pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md rename src/pentesting-cloud/azure-security/az-services/{az-queue-enum.md => az-queue.md} (100%) rename src/pentesting-cloud/azure-security/az-services/{az-servicebus-enum.md => az-servicebus.md} (91%) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 227605b06..11d60f589 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -425,8 +425,8 @@ - [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md) - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md) - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md) - - [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue-enum.md) - - [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus-enum.md) + - [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md) + - [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md) - [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md) - [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md) - [Az - Storage Accounts & Blobs](pentesting-cloud/azure-security/az-services/az-storage.md) @@ -489,6 +489,7 @@ - [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md) - [Az - Automation Accounts Persistence](pentesting-cloud/azure-security/az-persistence/az-automation-accounts-persistence.md) - [Az - Cloud Shell Persistence](pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md) + - [Az - Queue SQL Persistence](pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md) - [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md) - [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md) - [Az - Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-storage-persistence.md) diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md index fe96bc2c7..4d78f50db 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md @@ -7,7 +7,7 @@ 자세한 정보는 다음을 확인하세요: {{#ref}} -../az-services/az-queue-enum.md +../az-services/az-queue.md {{#endref}} ### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write` diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md b/src/pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md new file mode 100644 index 000000000..1d9e5bd70 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-persistence/az-sql-persistance.md @@ -0,0 +1,20 @@ +# Az - SQL Persistence + +{{#include ../../../banners/hacktricks-training.md}} + +## SQL + +자세한 정보는 다음을 확인하세요: + +{{#ref}} +../az-services/az-sql.md +{{#endref}} + +### 일반적인 지속성 기술 + +- SQL 자격 증명을 타협하거나 SQL 사용자 생성 (필요시 SQL 인증 활성화) +- 타협된 사용자를 Entrad ID 관리자에 할당 (필요시 Entra ID 인증 활성화) +- VM에 백도어 설치 (SQL VM이 사용되는 경우) +- SQL 데이터베이스에 대한 액세스를 유지하기 위해 FW 규칙 생성 + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md index 0a1553a59..aca2fcb82 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md @@ -4,15 +4,15 @@ ## Queue -자세한 내용은 다음을 확인하세요: +자세한 정보는 다음을 확인하세요: {{#ref}} -../az-services/az-queue-enum.md +../az-services/az-queue.md {{#endref}} ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -이 권한을 가진 공격자는 Azure Storage Queue에서 메시지를 엿볼 수 있습니다. 이를 통해 공격자는 메시지의 내용을 처리된 것으로 표시하거나 상태를 변경하지 않고도 볼 수 있습니다. 이는 민감한 정보에 대한 무단 접근으로 이어질 수 있으며, 데이터 유출이나 추가 공격을 위한 정보 수집을 가능하게 합니다. +이 권한을 가진 공격자는 Azure Storage Queue에서 메시지를 엿볼 수 있습니다. 이를 통해 공격자는 메시지를 처리된 것으로 표시하거나 상태를 변경하지 않고도 메시지의 내용을 볼 수 있습니다. 이는 민감한 정보에 대한 무단 접근으로 이어질 수 있으며, 데이터 유출이나 추가 공격을 위한 정보 수집을 가능하게 합니다. ```bash az storage message peek --queue-name --account-name ``` @@ -20,7 +20,7 @@ az storage message peek --queue-name --account-name --account-name ``` @@ -32,7 +32,7 @@ az storage message put --queue-name --content "Injected malicious m ``` ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write` -이 권한은 공격자가 Azure Storage Queue에 새로운 메시지를 추가하거나 기존 메시지를 업데이트할 수 있게 해줍니다. 이를 사용하여 해로운 콘텐츠를 삽입하거나 기존 메시지를 변경할 수 있으며, 이는 큐에 의존하는 시스템에서 애플리케이션을 오도하거나 원치 않는 동작을 유발할 수 있습니다. +이 권한은 공격자가 Azure Storage Queue에 새로운 메시지를 추가하거나 기존 메시지를 업데이트할 수 있게 해줍니다. 이를 사용하여 해로운 콘텐츠를 삽입하거나 기존 메시지를 변경할 수 있으며, 이는 큐에 의존하는 애플리케이션을 오도하거나 시스템에서 원치 않는 동작을 유발할 수 있습니다. ```bash az storage message put --queue-name --content "Injected malicious message" --account-name @@ -46,13 +46,13 @@ az storage message update --queue-name \ ``` ### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete` -이 권한은 공격자가 스토리지 계정 내의 큐를 삭제할 수 있게 합니다. 이 기능을 활용함으로써 공격자는 큐와 그에 연결된 모든 메시지를 영구적으로 제거할 수 있으며, 이는 워크플로우에 심각한 중단을 초래하고 영향을 받는 큐에 의존하는 애플리케이션에 중요한 데이터 손실을 초래할 수 있습니다. 이 작업은 시스템의 필수 구성 요소를 제거하여 서비스를 방해하는 데에도 사용될 수 있습니다. +이 권한은 공격자가 스토리지 계정 내의 큐를 삭제할 수 있게 해줍니다. 이 기능을 활용함으로써 공격자는 큐와 그에 연결된 모든 메시지를 영구적으로 제거할 수 있으며, 이는 워크플로우에 심각한 중단을 초래하고 영향을 받는 큐에 의존하는 애플리케이션에 중요한 데이터 손실을 초래할 수 있습니다. 이 작업은 시스템의 필수 구성 요소를 제거하여 서비스를 방해하는 데에도 사용될 수 있습니다. ```bash az storage queue delete --name --account-name ``` ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete` -이 권한을 통해 공격자는 Azure Storage Queue에서 모든 메시지를 삭제할 수 있습니다. 이 작업은 모든 메시지를 제거하여 워크플로를 방해하고 큐에 의존하는 시스템의 데이터 손실을 초래합니다. +이 권한을 사용하면 공격자가 Azure Storage Queue에서 모든 메시지를 삭제할 수 있습니다. 이 작업은 모든 메시지를 제거하여 워크플로를 방해하고 큐에 의존하는 시스템의 데이터 손실을 초래합니다. ```bash az storage message clear --queue-name --account-name ``` @@ -66,7 +66,7 @@ az storage queue metadata update --name --metadata key1=value1 key2 az storage queue policy set --name --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name ``` -## References +## 참고 문헌 - [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) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md index 735c75edf..dafecdbbb 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md @@ -4,10 +4,10 @@ ## Service Bus -자세한 내용은 다음을 확인하세요: +자세한 정보는 다음을 확인하세요: {{#ref}} -../az-services/az-servicebus-enum.md +../az-services/az-servicebus.md {{#endref}} ### Actions: `Microsoft.ServiceBus/namespaces/Delete` @@ -36,21 +36,21 @@ az servicebus topic subscription delete --resource-group --n ``` ### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`) -Azure Service Bus 큐를 생성하거나 수정할 수 있는 권한이 있는 공격자는 데이터를 가로채거나, 워크플로를 방해하거나, 무단 액세스를 가능하게 하는 데 이를 악용할 수 있습니다. 그들은 악성 엔드포인트로 메시지를 전달하거나, 메시지 TTL을 조정하여 데이터를 부적절하게 유지하거나 삭제하거나, 오류 처리를 방해하기 위해 데드레터링을 활성화하는 등 중요한 구성을 변경할 수 있습니다. 또한, 큐 크기, 잠금 기간 또는 상태를 조작하여 서비스 기능을 방해하거나 탐지를 피할 수 있어, 이는 중요한 포스트 익스플로잇 위험입니다. +Azure Service Bus 큐를 생성하거나 수정할 수 있는 권한이 있는 공격자는 이를 이용해 데이터를 가로채거나, 워크플로를 방해하거나, 무단 접근을 가능하게 할 수 있습니다. 그들은 메시지를 악성 엔드포인트로 전달하도록 설정하거나, 메시지 TTL을 조정하여 데이터를 부적절하게 유지하거나 삭제하거나, 오류 처리를 방해하기 위해 데드레터링을 활성화하는 등 중요한 구성을 변경할 수 있습니다. 또한, 큐 크기, 잠금 기간 또는 상태를 조작하여 서비스 기능을 방해하거나 탐지를 피할 수 있어, 이는 중요한 포스트 익스플로잇 위험입니다. ```bash az servicebus queue create --resource-group --namespace-name --name az servicebus queue update --resource-group --namespace-name --name ``` ### Actions: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`) -Azure Service Bus 네임스페이스 내에서 주제를 생성하거나 수정할 수 있는 권한이 있는 공격자는 이를 이용하여 메시지 워크플로를 방해하거나, 민감한 데이터를 노출시키거나, 무단 작업을 수행할 수 있습니다. az servicebus topic update와 같은 명령을 사용하여, 확장성을 위한 파티셔닝 활성화, 메시지를 부적절하게 유지하거나 폐기하기 위한 TTL 설정 변경, 또는 제어를 우회하기 위한 중복 감지 비활성화와 같은 구성을 조작할 수 있습니다. 또한, 주제 크기 제한을 조정하거나, 가용성을 방해하기 위해 상태를 변경하거나, 가로챈 메시지를 임시로 저장하기 위해 익스프레스 주제를 구성할 수 있어, 주제 관리는 사후 활용 완화를 위한 중요한 초점이 됩니다. +Azure Service Bus 네임스페이스 내에서 주제를 생성하거나 수정할 수 있는 권한이 있는 공격자는 이를 이용해 메시지 워크플로를 방해하거나, 민감한 데이터를 노출시키거나, 무단 작업을 수행할 수 있습니다. az servicebus topic update와 같은 명령을 사용하여, 확장성을 위한 파티셔닝 활성화, 메시지를 부적절하게 유지하거나 폐기하기 위한 TTL 설정 변경, 또는 제어를 우회하기 위한 중복 감지 비활성화와 같은 구성을 조작할 수 있습니다. 또한, 주제 크기 제한을 조정하거나, 가용성을 방해하기 위해 상태를 변경하거나, 가로챈 메시지를 임시로 저장하기 위해 익스프레스 주제를 구성할 수 있어, 주제 관리는 사후 활용 완화를 위한 중요한 초점이 됩니다. ```bash az servicebus topic create --resource-group --namespace-name --name az servicebus topic update --resource-group --namespace-name --name ``` ### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) -구독을 생성하거나 수정할 수 있는 권한이 있는 공격자는 Azure Service Bus 주제 내에서 구독을 수정하기 위해 Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`도 필요합니다. 이를 통해 메시지 워크플로를 가로채거나, 재배치하거나, 방해할 수 있습니다. az servicebus topic subscription update와 같은 명령을 사용하여 메시지를 전환하기 위해 데드 레터링을 활성화하거나, 메시지를 무단 엔드포인트로 전달하거나, TTL 및 잠금 기간을 수정하여 메시지 전달을 유지하거나 방해할 수 있습니다. 또한, 상태 또는 최대 전달 수 설정을 변경하여 작업을 방해하거나 탐지를 피할 수 있으며, 구독 제어는 사후 활용 시나리오에서 중요한 측면이 됩니다. +구독을 생성하거나 수정할 수 있는 권한이 있는 공격자는 Azure Service Bus 주제 내에서 구독을 수정하기 위해 Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`도 필요합니다. 이를 통해 메시지 워크플로를 가로채거나, 재배치하거나, 방해할 수 있습니다. az servicebus topic subscription update와 같은 명령을 사용하여 메시지를 전환하기 위해 데드 레터링을 활성화하거나, 메시지를 무단 엔드포인트로 전달하거나, TTL 및 잠금 기간을 수정하여 메시지 전달을 유지하거나 방해할 수 있습니다. 또한, 상태 또는 최대 전달 수 설정을 변경하여 운영을 방해하거나 탐지를 피할 수 있으며, 구독 제어는 사후 활용 시나리오에서 중요한 측면이 됩니다. ```bash az servicebus topic subscription create --resource-group --namespace-name --topic-name --name az servicebus topic subscription update --resource-group --namespace-name --topic-name --name diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md index cb83c7f10..55d1168eb 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md @@ -7,12 +7,12 @@ 자세한 정보는 다음을 확인하세요: {{#ref}} -../az-services/az-queue-enum.md +../az-services/az-queue.md {{#endref}} ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -이 권한을 가진 공격자는 Azure Storage Queue에서 메시지를 엿볼 수 있습니다. 이를 통해 공격자는 메시지를 처리된 것으로 표시하거나 상태를 변경하지 않고도 메시지의 내용을 볼 수 있습니다. 이는 민감한 정보에 대한 무단 접근으로 이어질 수 있으며, 데이터 유출 또는 추가 공격을 위한 정보 수집을 가능하게 합니다. +이 권한을 가진 공격자는 Azure Storage Queue에서 메시지를 엿볼 수 있습니다. 이를 통해 공격자는 메시지를 처리된 것으로 표시하거나 상태를 변경하지 않고도 메시지의 내용을 볼 수 있습니다. 이는 민감한 정보에 대한 무단 접근으로 이어질 수 있으며, 데이터 유출이나 추가 공격을 위한 정보 수집을 가능하게 합니다. ```bash az storage message peek --queue-name --account-name ``` @@ -20,7 +20,7 @@ az storage message peek --queue-name --account-name --account-name ``` 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 0072fc2a2..7ec2ce0a2 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 @@ -7,14 +7,14 @@ 자세한 정보는 다음을 확인하세요: {{#ref}} -../az-services/az-servicebus-enum.md +../az-services/az-servicebus.md {{#endref}} ### Microsoft.ServiceBus/namespaces/authorizationrules/listKeys/action OR Microsoft.ServiceBus/namespaces/authorizationrules/regenerateKeys/action -이 권한은 Service Bus 네임스페이스 내의 로컬 권한 규칙에 대한 키를 가져오거나 재생성할 수 있게 해줍니다. 이 키를 사용하여 Service Bus 네임스페이스로 인증할 수 있으며, 이를 통해 모든 큐나 주제에 메시지를 전송하거나, 모든 큐나 구독에서 메시지를 수신하거나, 시스템과 상호작용하여 운영을 방해하거나, 유효한 사용자를 가장하거나, 메시징 워크플로우에 악성 데이터를 주입할 수 있습니다. +이 권한은 Service Bus 네임스페이스 내의 로컬 권한 규칙에 대한 키를 가져오거나 재생성할 수 있게 해줍니다. 이 키를 사용하여 Service Bus 네임스페이스로 인증할 수 있으며, 이를 통해 모든 큐나 주제로 메시지를 전송하거나, 모든 큐나 구독에서 메시지를 수신하거나, 시스템과 상호작용하여 운영을 방해하거나, 유효한 사용자를 가장하거나, 메시징 워크플로우에 악성 데이터를 주입할 수 있습니다. -기본적으로 **`RootManageSharedAccessKey` 규칙은** Service Bus 네임스페이스에 대한 전체 제어 권한을 가지고 있으며, `az` cli에서 사용됩니다. 그러나 다른 키 값이 있는 다른 규칙이 존재할 수 있습니다. +기본적으로 **`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] @@ -24,7 +24,7 @@ az servicebus namespace authorization-rule keys renew --key [PrimaryKey|Secondar ``` ### 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 ``` @@ -57,7 +57,7 @@ az servicebus queue authorization-rule keys renew --key [PrimaryKey|SecondaryKey ``` ### 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 @@ -66,9 +66,9 @@ az servicebus topic authorization-rule create --resource-group --nam 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를 통해 수행하면, 기존의 권한 규칙을 업데이트하고 다음 명령으로 더 많은 권한을 부여할 수 있습니다(부족한 경우). +또한, 해당 명령(`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 @@ -82,13 +82,14 @@ az servicebus queue authorization-rule update --resource-group --nam ```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) +### Send Messages with keys (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action) -`PrimaryConnectionString`를 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 Service Bus 네임스페이스로 완전히 인증할 수 있으며, 이를 통해 모든 큐나 주제에 메시지를 전송하고 시스템과 상호작용하여 운영을 방해하거나 유효한 사용자를 가장하거나 메시징 워크플로우에 악성 데이터를 주입할 수 있습니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다. +`PrimaryConnectionString`를 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 Service Bus 네임스페이스로 완전히 인증할 수 있으며, 이를 통해 모든 큐나 주제로 메시지를 전송하고 시스템과 상호작용하여 운영을 방해하거나 유효한 사용자를 가장하거나 메시징 워크플로우에 악성 데이터를 주입할 수 있는 잠재적인 방법을 제공합니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다(즉, 로컬 인증이 활성화됨). ```python import asyncio from azure.servicebus.aio import ServiceBusClient from azure.servicebus import ServiceBusMessage +# pip install azure-servicebus NAMESPACE_CONNECTION_STR = "" TOPIC_OR_QUEUE_NAME = "" @@ -129,12 +130,13 @@ az rest --method post \ --body "" ``` -### Receive with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) +### Receive with keys (Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action) -PrimaryConnectionString를 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 네임스페이스 내의 모든 큐 또는 구독에서 메시지를 수신할 수 있으며, 이는 잠재적으로 민감하거나 중요한 데이터에 대한 접근을 허용하고, 데이터 유출을 가능하게 하거나, 메시지 처리 및 애플리케이션 워크플로에 간섭할 수 있습니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다. +PrimaryConnectionString을 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 네임스페이스 내의 모든 큐 또는 구독에서 메시지를 수신할 수 있으며, 이는 잠재적으로 민감하거나 중요한 데이터에 대한 접근을 허용하고, 데이터 유출을 가능하게 하며, 메시지 처리 및 애플리케이션 워크플로에 간섭할 수 있습니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다. ```python import asyncio from azure.servicebus.aio import ServiceBusClient +# pip install azure-servicebus CONN_STR = "" QUEUE = "" @@ -182,7 +184,7 @@ sas_token = generate_sas_token(resource_uri, "", "") print(sas_token) ``` -큐에서는 메시지를 가져오거나 미리 볼 수 있습니다(메시지를 가져오면 제거되지만, 미리 보기는 제거되지 않습니다): +큐에서는 메시지를 가져오거나 미리 볼 수 있습니다(메시지를 가져오면 삭제되지만, 미리 보기에서는 삭제되지 않습니다): ```bash #Get a message az rest --method post \ @@ -218,19 +220,21 @@ az rest --method get \ ``` ### 메시지 전송. DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action` -이 권한을 사용하여 메시지를 전송할 수 있으며, `--disable-local-auth`가 true로 설정되어 있어도 가능합니다. +이 권한을 사용하여 메시지를 전송할 수 있습니다. `--disable-local-auth`가 true로 설정되어 있어도 가능합니다. ```python import asyncio from azure.identity.aio import DefaultAzureCredential from azure.servicebus.aio import ServiceBusClient from azure.servicebus import ServiceBusMessage +# pip install azure-servicebus NS = ".servicebus.windows.net" # Your namespace -QUEUE_OR_TOPIC = "" # Your queue name +QUEUE_OR_TOPIC = "" # Your queue name async def run(): credential = DefaultAzureCredential() async with ServiceBusClient(fully_qualified_namespace=NS, credential=credential) as client: +#async with client.get_topic_sender(topic_name=TOPIC) as sender: # Use this to send the message to a topic async with client.get_queue_sender(queue_name=QUEUE) as sender: await sender.send_messages(ServiceBusMessage("Single Message")) print("Sent a single message") @@ -246,6 +250,7 @@ asyncio.run(run()) import asyncio from azure.identity.aio import DefaultAzureCredential from azure.servicebus.aio import ServiceBusClient +# pip install azure-servicebus NS = ".servicebus.windows.net" QUEUE = "" diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue.md similarity index 100% rename from src/pentesting-cloud/azure-security/az-services/az-queue-enum.md rename to src/pentesting-cloud/azure-security/az-services/az-queue.md diff --git a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md b/src/pentesting-cloud/azure-security/az-services/az-servicebus.md similarity index 91% rename from src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md rename to src/pentesting-cloud/azure-security/az-services/az-servicebus.md index 6b72b0deb..7c7b6f816 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-servicebus-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-servicebus.md @@ -4,7 +4,7 @@ ## Service Bus -Azure Service Bus는 신뢰할 수 있는 **애플리케이션의 다양한 부분 또는 별도의 애플리케이션 간의 통신**을 가능하게 하기 위해 설계된 클라우드 기반 **메시징 서비스**입니다. 이는 안전한 중개자로 작용하여 발신자와 수신자가 동시에 작동하지 않더라도 메시지가 안전하게 전달되도록 보장합니다. 시스템을 분리함으로써 애플리케이션이 독립적으로 작동하면서도 데이터나 지침을 교환할 수 있게 합니다. 이는 여러 작업자 간의 부하 분산, 신뢰할 수 있는 메시지 전달 또는 순서대로 작업을 처리하거나 안전하게 접근을 관리해야 하는 복잡한 조정이 필요한 시나리오에 특히 유용합니다. +Azure Service Bus는 **애플리케이션의 다양한 부분 또는 별도의 애플리케이션 간의 신뢰할 수 있는 **통신을 가능하게 하기 위해 설계된 클라우드 기반 **메시징 서비스**입니다. 이는 안전한 중개자로 작용하여 발신자와 수신자가 동시에 작동하지 않더라도 메시지가 안전하게 전달되도록 보장합니다. 시스템을 분리함으로써 애플리케이션이 독립적으로 작동하면서도 데이터를 교환하거나 지시를 수행할 수 있게 합니다. 이는 여러 작업자 간의 부하 분산, 신뢰할 수 있는 메시지 전달 또는 작업을 순서대로 처리하거나 안전하게 액세스를 관리하는 것과 같은 복잡한 조정이 필요한 시나리오에 특히 유용합니다. ### Key Concepts @@ -43,18 +43,18 @@ https://.servicebus.windows.net:443/ az cli 매개변수의 **`--disable-local-auth`**는 **로컬 인증**(공유 액세스 서명(SAS) 키 사용 허용)이 서비스 버스 네임스페이스에 대해 활성화되어 있는지 제어하는 데 사용됩니다. - disable이 **true**로 설정되면: SAS 키를 사용하는 로컬 인증이 비활성화되고 Entra ID 인증이 허용됩니다. -- disable이 **false (기본값)**로 설정되면: SAS 로컬 인증과 Entra ID 인증 모두 사용 가능하며, SAS 키가 포함된 연결 문자열을 사용하여 서비스 버스 리소스에 접근할 수 있습니다. +- disable이 **false (기본값)**로 설정되면: SAS 로컬 인증과 Entra ID 인증이 모두 사용 가능하며, SAS 키가 포함된 연결 문자열을 사용하여 서비스 버스 리소스에 접근할 수 있습니다. ### 권한 규칙 / SAS 정책 -SAS 정책은 Azure Service Bus 엔터티 네임스페이스(가장 중요한 것), 큐 및 주제에 대한 액세스 권한을 정의합니다. 각 정책은 다음 구성 요소를 가집니다: +SAS 정책은 Azure Service Bus 엔터티 네임스페이스(가장 중요한 것), 큐 및 주제에 대한 액세스 권한을 정의합니다. 각 정책은 다음 구성 요소를 포함합니다: - **권한**: 액세스 수준을 지정하는 체크박스: - 관리: 엔터티에 대한 전체 제어를 부여하며, 구성 및 권한 관리를 포함합니다. - 전송: 엔터티에 메시지를 전송할 수 있습니다. - 수신: 엔터티로부터 메시지를 수신할 수 있습니다. - **기본 및 보조 키**: 액세스 인증을 위한 보안 토큰 생성을 위해 사용되는 암호화 키입니다. -- **기본 및 보조 연결 문자열**: 애플리케이션에서 쉽게 사용할 수 있도록 엔드포인트와 키가 포함된 미리 구성된 연결 문자열입니다. +- **기본 및 보조 연결 문자열**: 애플리케이션에서 쉽게 사용할 수 있도록 엔드포인트와 키를 포함한 미리 구성된 연결 문자열입니다. - **SAS 정책 ARM ID**: 프로그래밍적 식별을 위한 정책의 Azure Resource Manager (ARM) 경로입니다. 네임스페이스는 모든 엔터티에 영향을 미치는 단일 SAS 정책을 가지며, 큐와 주제는 보다 세분화된 제어를 위해 개별 SAS 정책을 가질 수 있다는 점에 유의하는 것이 중요합니다. diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index b4a9c89b7..f2fc792d7 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -10,7 +10,7 @@ Azure SQL은 네 가지 주요 제공 사항으로 구성됩니다: 1. **Azure SQL Server**: SQL Server 데이터베이스의 **배포 및 관리**를 위해 필요한 서버입니다. 2. **Azure SQL Database**: Azure 클라우드에서 개별 데이터베이스를 호스팅할 수 있는 **완전 관리형 데이터베이스 서비스**입니다. -3. **Azure SQL Managed Instance**: 더 큰 규모의 전체 SQL Server 인스턴스 범위 배포를 위한 것입니다. +3. **Azure SQL Managed Instance**: 대규모 전체 SQL Server 인스턴스 범위 배포를 위한 것입니다. 4. **Azure SQL Server on Azure VMs**: 운영 체제와 SQL Server 인스턴스에 대한 **제어**를 원하는 아키텍처에 가장 적합합니다. ### SQL Server 보안 기능 @@ -20,7 +20,7 @@ Azure SQL은 네 가지 주요 제공 사항으로 구성됩니다: - 공용 엔드포인트(특정 네트워크에 대한 접근 제한 가능). - 개인 엔드포인트. - 도메인 이름에 따라 연결을 제한할 수도 있습니다. -- Azure 서비스가 접근할 수 있도록 허용할 수도 있습니다(예: 포털에서 쿼리 편집기를 사용하거나 Azure VM이 연결하도록 허용). +- Azure 서비스가 접근할 수 있도록 허용할 수도 있습니다(예: 포털에서 쿼리 편집기를 사용하거나 Azure VM이 연결할 수 있도록 허용). **인증 방법:** @@ -33,11 +33,11 @@ SQL 인증이 허용되는 경우 관리 사용자(사용자 이름 + 비밀번 **암호화:** - "투명 데이터 암호화"라고 하며, 데이터베이스, 백업 및 로그를 정지 상태에서 암호화합니다. -- 항상 기본적으로 Azure 관리 키가 사용되지만, 고객 관리 암호화 키(CMEK)도 사용할 수 있습니다. +- 항상 기본적으로 Azure 관리 키가 사용되지만 고객 관리 암호화 키(CMEK)도 사용할 수 있습니다. **관리형 ID:** - 시스템 및 사용자 관리 MI를 할당할 수 있습니다. -- 암호화 키에 접근하는 데 사용됩니다(사용되는 경우 CMEK) 및 데이터베이스의 다른 서비스에 접근합니다. +- 암호화 키에 접근하는 데 사용됩니다(사용되는 경우 CMEK) 및 데이터베이스의 다른 서비스에 접근하는 데 사용됩니다. - 여러 UMI가 할당된 경우 사용할 기본 UMI를 지정할 수 있습니다. - 테넌트 간 접근을 위한 연합 클라이언트 ID를 구성할 수 있습니다. @@ -54,7 +54,7 @@ SQL 인증이 허용되는 경우 관리 사용자(사용자 이름 + 비밀번 ## Azure SQL Database -**Azure SQL Database**는 **완전 관리형 데이터베이스 플랫폼 서비스(PaaS)**로, 확장 가능하고 안전한 관계형 데이터베이스 솔루션을 제공합니다. 최신 SQL Server 기술을 기반으로 하며, 인프라 관리의 필요성을 없애 클라우드 기반 애플리케이션에 인기 있는 선택입니다. +**Azure SQL Database**는 확장 가능하고 안전한 관계형 데이터베이스 솔루션을 제공하는 **완전 관리형 데이터베이스 플랫폼 서비스(PaaS)**입니다. 최신 SQL Server 기술을 기반으로 하며 인프라 관리의 필요성을 없애 클라우드 기반 애플리케이션에 인기 있는 선택입니다. SQL 데이터베이스를 생성하려면 호스팅될 SQL 서버를 지정해야 합니다. @@ -83,19 +83,19 @@ SQL 데이터베이스는 **탄력적 풀**의 일부가 될 수 있습니다. ### Azure SQL Managed Instance -**Azure SQL Managed Instances**는 더 큰 규모의 전체 SQL Server 인스턴스 범위 배포를 위한 것입니다. 최신 SQL Server 온프레미스(Enterprise Edition) 데이터베이스 엔진과 거의 100% 호환성을 제공하며, 일반적인 보안 문제를 해결하는 네이티브 가상 네트워크(VNet) 구현과 온프레미스 SQL Server 고객에게 유리한 비즈니스 모델을 제공합니다. +**Azure SQL Managed Instances**는 대규모 전체 SQL Server 인스턴스 범위 배포를 위한 것입니다. 최신 SQL Server 온프레미스(Enterprise Edition) 데이터베이스 엔진과 거의 100% 호환성을 제공하며, 일반적인 보안 문제를 해결하는 네이티브 가상 네트워크(VNet) 구현과 온프레미스 SQL Server 고객에게 유리한 비즈니스 모델을 제공합니다. ### Azure SQL 가상 머신 -**Azure SQL Virtual Machines**는 **운영 체제**와 SQL Server 인스턴스를 제어할 수 있게 해주며, SQL 서버를 실행하는 VM 서비스에서 VM이 생성됩니다. +**Azure SQL Virtual Machines**는 **운영 체제를 제어**하고 SQL Server 인스턴스를 관리할 수 있게 해주며, SQL 서버를 실행하는 VM 서비스에서 VM이 생성됩니다. SQL 가상 머신이 생성될 때 SQL 서버를 호스팅할 VM의 **모든 설정을 선택할 수 있습니다**(VM 수업에서 보여준 대로). -- 이는 VM이 일부 VNet에 접근하고, **관리형 ID가 연결**될 수 있으며, 파일 공유가 마운트될 수 있음을 의미합니다… SQL에서 VM으로의 **피벗**이 매우 흥미로워집니다. -- 또한, SQL이 특정 키 볼트에 접근할 수 있도록 **앱 ID 및 비밀을 구성**할 수 있으며, 이 키 볼트는 민감한 정보를 포함할 수 있습니다. +- 이는 VM이 일부 VNet에 접근하고, **관리형 ID가 연결**될 수 있으며, 파일 공유가 마운트될 수 있음을 의미합니다… SQL에서 VM으로의 **피벗이 매우 흥미롭습니다**. +- 또한 SQL이 특정 키 볼트에 접근할 수 있도록 **앱 ID 및 비밀을 구성**할 수 있으며, 이 키 볼트는 민감한 정보를 포함할 수 있습니다. -자동 SQL 업데이트, 자동 백업, Entra ID 인증 및 다른 SQL 서비스의 대부분의 기능과 같은 것들을 구성할 수도 있습니다. +자동 SQL 업데이트, 자동 백업, Entra ID 인증 및 다른 SQL 서비스의 대부분 기능과 같은 것들을 구성할 수도 있습니다. -## 열거 +## Enumeration {{#tabs}} {{#tab name="az cli"}} @@ -232,7 +232,7 @@ Get-AzSqlVM {{#endtab}} {{#endtabs}} -추가로 데이터베이스 내에서 Dynamic Data Masking 및 Row Level 정책을 열거하려면 다음 쿼리를 사용할 수 있습니다: +추가적으로 데이터베이스 내에서 Dynamic Data Masking 및 Row Level 정책을 열거하려면, 다음 쿼리를 사용할 수 있습니다: ```sql --Enumerates the masked columns SELECT @@ -278,7 +278,7 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -데이터베이스에 접근하기 위해 sqlcmd를 사용할 수도 있습니다. 서버가 공용 연결을 허용하는지 아는 것이 중요합니다 `az sql server show --name --resource-group ` 그리고 방화벽 규칙이 우리의 IP가 접근할 수 있도록 허용하는지도 확인해야 합니다: +데이터베이스에 접근하기 위해 sqlcmd를 사용할 수도 있습니다. 서버가 공용 연결을 허용하는지 아는 것이 중요합니다 `az sql server show --name --resource-group ` 그리고 방화벽 규칙이 우리의 IP 접근을 허용하는지도 확인해야 합니다: ```bash sqlcmd -S .database.windows.net -U -P -d ``` @@ -301,4 +301,10 @@ sqlcmd -S .database.windows.net -U -P