diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 478e28676..c53000a33 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -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) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md index 1538b6164..a550213ca 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-organizations-enum.md @@ -4,14 +4,14 @@ ## Основна інформація -AWS Organizations полегшує створення нових AWS-акаунтів без додаткових витрат. Ресурси можна виділяти без зусиль, акаунти можна ефективно групувати, а політики управління можна застосовувати до окремих акаунтів або груп, що покращує управління та контроль в організації. +AWS Organizations полегшує створення нових AWS облікових записів без додаткових витрат. Ресурси можна легко виділяти, облікові записи можна ефективно групувати, а політики управління можна застосовувати до окремих облікових записів або груп, що покращує управління та контроль в організації. Ключові моменти: -- **Створення нового акаунта**: AWS Organizations дозволяє створювати нові AWS-акаунти без додаткових витрат. -- **Виділення ресурсів**: Це спрощує процес виділення ресурсів між акаунтами. -- **Групування акаунтів**: Акаунти можна групувати, що робить управління більш зручним. -- **Політики управління**: Політики можна застосовувати до акаунтів або груп акаунтів, забезпечуючи відповідність і управління в організації. +- **Створення нового облікового запису**: AWS Organizations дозволяє створювати нові AWS облікові записи без додаткових витрат. +- **Виділення ресурсів**: Це спрощує процес виділення ресурсів між обліковими записами. +- **Групування облікових записів**: Облікові записи можна групувати, що робить управління більш зручним. +- **Політики управління**: Політики можна застосовувати до облікових записів або груп облікових записів, забезпечуючи відповідність і управління в організації. Ви можете знайти більше інформації в: @@ -40,6 +40,6 @@ aws iam get-account-summary ``` ## Посилання -- https://aws.amazon.com/organizations/ +- [https://aws.amazon.com/organizations/](https://aws.amazon.com/organizations/) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md index ddb00859a..05cc1dfd7 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-sqs-and-sns-enum.md @@ -46,6 +46,6 @@ aws sqs send-message --queue-url --message-body ## References -- 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}} 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 1109f95e4..3fbf7c22d 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 @@ -10,9 +10,9 @@ ../az-services/az-queue-enum.md {{#endref}} -### Дії: `Microsoft.Storage/storageAccounts/queueServices/queues/write` +### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/write` -Цей дозвіл дозволяє зловмиснику створювати або змінювати черги та їх властивості в межах облікового запису зберігання. Його можна використовувати для створення несанкціонованих черг, зміни метаданих або зміни списків контролю доступу (ACL), щоб надати або обмежити доступ. Ця можливість може порушити робочі процеси, ввести шкідливі дані, ексфільтрувати чутливу інформацію або маніпулювати налаштуваннями черги для подальших атак. +Ця дозволена дія дозволяє зловмиснику створювати або змінювати черги та їх властивості в межах облікового запису зберігання. Її можна використовувати для створення несанкціонованих черг, зміни метаданих або зміни списків контролю доступу (ACL), щоб надати або обмежити доступ. Ця можливість може порушити робочі процеси, ввести шкідливі дані, ексфільтрувати чутливу інформацію або маніпулювати налаштуваннями черги для подальших атак. ```bash az storage queue create --name --account-name @@ -22,8 +22,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Посилання -- 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}} 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 cce3f58b6..380e0102e 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 @@ -20,7 +20,7 @@ az storage message peek --queue-name --account-name --account-name ``` @@ -44,7 +44,7 @@ az storage message update --queue-name \ --visibility-timeout \ --account-name ``` -### Дії: `Microsoft.Storage/storageAccounts/queueServices/queues/delete` +### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete` Ця дозволяє зловмиснику видаляти черги в обліковому записі зберігання. Використовуючи цю можливість, зловмисник може назавжди видалити черги та всі їх пов'язані повідомлення, що призводить до значних збоїв у робочих процесах і критичної втрати даних для додатків, які залежать від постраждалих черг. Цю дію також можна використовувати для саботажу служб, видаляючи основні компоненти системи. ```bash @@ -52,7 +52,7 @@ 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 ``` @@ -68,8 +68,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Посилання -- 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}} 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 35af618eb..feb367708 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 @@ -18,13 +18,13 @@ az servicebus namespace delete --resource-group --name --namespace-name --name ``` ### Дії: `Microsoft.ServiceBus/namespaces/queues/Delete` -Зловмисник з цим дозволом може видалити чергу Azure Service Bus. Ця дія видаляє чергу та всі повідомлення в ній, що може призвести до втрати критично важливих даних і порушення роботи систем та робочих процесів, що залежать від черги. +Зловмисник з цим дозволом може видалити чергу Azure Service Bus. Ця дія видаляє чергу та всі повідомлення в ній, що може призвести до втрати критично важливих даних і порушення роботи систем та робочих процесів, які залежать від черги. ```bash az servicebus queue delete --resource-group --namespace-name --name ``` @@ -34,16 +34,9 @@ az servicebus queue delete --resource-group --namespace-name ```bash az servicebus topic subscription delete --resource-group --namespace-name --topic-name --name ``` -### Дії: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read` - -Зловмисник з правами на створення або модифікацію Azure Service Bus namespaces може використати це для порушення роботи, розгортання несанкціонованих ресурсів або витоку чутливих даних. Вони можуть змінювати критичні конфігурації, такі як увімкнення доступу до публічної мережі, зниження налаштувань шифрування або зміну SKU для погіршення продуктивності або збільшення витрат. Крім того, вони можуть вимкнути локальну аутентифікацію, маніпулювати місцями реплік або налаштовувати версії TLS для послаблення контролю безпеки, що робить неправильну конфігурацію namespace значним ризиком після експлуатації. -```bash -az servicebus namespace create --resource-group --name --location -az servicebus namespace update --resource-group --name --tags -``` ### Дії: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`) -Зловмисник з правами на створення або модифікацію черг Azure Service Bus (для модифікації черги вам також знадобляться права на дію: `Microsoft.ServiceBus/namespaces/queues/read`) може використати це для перехоплення даних, порушення робочих процесів або надання несанкціонованого доступу. Вони можуть змінювати критичні конфігурації, такі як пересилання повідомлень на шкідливі кінцеві точки, налаштування TTL повідомлень для неналежного збереження або видалення даних, або активація механізму "dead-lettering" для втручання в обробку помилок. Крім того, вони можуть маніпулювати розмірами черг, тривалістю блокувань або статусами, щоб порушити функціональність служби або уникнути виявлення, що робить це значним ризиком після експлуатації. +Зловмисник з правами на створення або модифікацію черг Azure Service Bus (для модифікації черги вам також знадобляться права на дію: `Microsoft.ServiceBus/namespaces/queues/read`) може використати це для перехоплення даних, порушення робочих процесів або надання несанкціонованого доступу. Вони можуть змінювати критичні конфігурації, такі як пересилання повідомлень на шкідливі кінцеві точки, налаштування TTL повідомлень для неналежного збереження або видалення даних, або активація механізму "мертвих листів" для втручання в обробку помилок. Крім того, вони можуть маніпулювати розмірами черг, тривалістю блокування або статусами, щоб порушити функціональність служби або уникнути виявлення, що робить це значним ризиком після експлуатації. ```bash az servicebus queue create --resource-group --namespace-name --name az servicebus queue update --resource-group --namespace-name --name @@ -57,12 +50,12 @@ az servicebus topic update --resource-group --namespace-name ``` ### Дії: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) -Зловмисник з правами на створення або модифікацію підписок (для модифікації підписки вам також знадобиться дія: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) в межах теми Azure Service Bus може використати це для перехоплення, перенаправлення або порушення робочих процесів повідомлень. Використовуючи команди, такі як az servicebus topic subscription update, вони можуть маніпулювати конфігураціями, такими як увімкнення мертвого листування для відволікання повідомлень, пересилання повідомлень на несанкціоновані кінцеві точки або модифікація TTL і тривалості блокування для збереження або втручання в доставку повідомлень. Крім того, вони можуть змінювати налаштування статусу або максимального ліміту доставки, щоб порушити операції або уникнути виявлення, що робить контроль підписок критично важливим аспектом сценаріїв після експлуатації. +Зловмисник з правами на створення або модифікацію підписок (для модифікації підписки вам також знадобиться дія: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) в межах теми Azure Service Bus може використати це для перехоплення, перенаправлення або порушення робочих процесів повідомлень. Використовуючи команди, такі як 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 ``` -### Дії: `AuthorizationRules` Надсилання та отримання повідомлень +### Дії: `AuthorizationRules` Відправка та отримання повідомлень Подивіться сюди: @@ -72,12 +65,12 @@ az servicebus topic subscription update --resource-group --n ## Посилання -- 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}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index d0e17231d..4465be6d0 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -4,7 +4,7 @@ ## SQL Database Post Exploitation -Для отримання додаткової інформації про SQL Database дивіться: +Для отримання додаткової інформації про SQL Database перегляньте: {{#ref}} ../az-services/az-sql.md @@ -19,10 +19,20 @@ az sql db create --resource-group --server --name # Update Database az sql db update --resource-group --server --name --max-size +``` +З цими дозволами (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) ви можете відновити видалену базу даних: +```bash +az sql db restore \ +--dest-name \ +--name \ +--resource-group \ +--server \ +--deleted-time "" + ``` ### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read` -З цими дозволами зловмисник може створювати та оновлювати elasticPools у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, потенційно порушуючи операції або дозволяючи додаткові шкідливі дії. +З цими дозволами зловмисник може створювати та оновлювати elasticPools у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, що потенційно може порушити операції або дозволити додаткові шкідливі дії. ```bash # Create Elastic Pool az sql elastic-pool create \ @@ -42,7 +52,7 @@ az sql elastic-pool update \ ``` ### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write` -З цією дозволом ви можете змінювати або активувати налаштування аудиту на Azure SQL Server. Це може дозволити зловмиснику або авторизованому користувачу маніпулювати конфігураціями аудиту, потенційно приховуючи сліди або перенаправляючи журнали аудиту в місце, що знаходиться під їх контролем. Це може заважати моніторингу безпеки або дозволити йому відстежувати дії. ПРИМІТКА: Щоб активувати аудит для Azure SQL Server, використовуючи Blob Storage, ви повинні підключити обліковий запис сховища, куди можуть зберігатися журнали аудиту. +З цією дозволом ви можете змінювати або активувати налаштування аудиту на Azure SQL Server. Це може дозволити зловмиснику або авторизованому користувачу маніпулювати конфігураціями аудиту, потенційно приховуючи сліди або перенаправляючи журнали аудиту в місце, що знаходиться під їх контролем. Це може ускладнити моніторинг безпеки або дозволити йому відстежувати дії. ПРИМІТКА: Щоб активувати аудит для Azure SQL Server, використовуючи Blob Storage, ви повинні підключити обліковий запис зберігання, куди можуть зберігатися журнали аудиту. ```bash az sql server audit-policy update \ --server \ @@ -76,7 +86,7 @@ az sql db export \ ``` ### `Microsoft.Sql/servers/databases/import/action` -З цією дозволом ви можете імпортувати базу даних у Azure SQL Server. Зловмисник або авторизований користувач з цим дозволом може потенційно завантажити шкідливі або маніпульовані бази даних. Це може призвести до отримання контролю над чутливими даними або шляхом вбудовування шкідливих скриптів або тригерів у імпортовану базу даних. Додатково ви можете імпортувати її на свій власний сервер в Azure. Примітка: Сервер повинен дозволяти доступ Azure-сервісів та ресурсів до сервера. +З цією дозволом ви можете імпортувати базу даних у Azure SQL Server. Зловмисник або авторизований користувач з цим дозволом може потенційно завантажити шкідливі або маніпульовані бази даних. Це може призвести до отримання контролю над чутливими даними або шляхом вбудовування шкідливих скриптів або тригерів у імпортовану базу даних. Додатково ви можете імпортувати її на свій власний сервер в Azure. Примітка: Сервер повинен дозволяти доступ Azure-сервісів і ресурсів до сервера. ```bash az sql db import --admin-user \ --admin-password \ @@ -87,4 +97,41 @@ az sql db import --admin-user \ --storage-key \ --storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac` ``` +### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read` + +З цими дозволами користувач може змінювати та отримувати політики підключення до сервера Azure SQL. Ці дозволи дозволяють змінювати спосіб підключення клієнтів до сервера — вибираючи між методами, такими як перенаправлення або проксі — що може бути використано для послаблення безпеки, перенаправлення трафіку або перехоплення чутливих даних у разі неправильного налаштування. +```bash +az sql server conn-policy update \ +--resource-group \ +--server \ +--connection-policy +``` +### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read` + +З цими дозволами користувач може оновлювати та отримувати ключі шифрування, пов'язані з Azure SQL Server. Ці ключі часто використовуються для захисту чутливих даних через шифрування, тому маніпуляції з ними можуть скомпрометувати безпеку даних, дозволяючи несанкціоноване розшифрування або зміни ротації ключів. +```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` + +Ця дозволена дія дозволяє вимкнути Ledger Digest для Azure SQL Database, що зупиняє періодичне завантаження криптографічних дайджестів до Azure Blob Storage, які перевіряють цілісність даних. +```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` + +Цей дозвіл дозволяє авторизованому користувачу або зловмиснику увімкнути, вимкнути або змінити налаштування Transparent Data Encryption (TDE) на базі даних Azure SQL, що може вплинути на безпеку даних шляхом зміни конфігурацій шифрування. +```bash +az sql db tde set \ +--database \ +--resource-group \ +--server \ +--status +``` {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md deleted file mode 100644 index e89c4a21c..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-container-instances-privesc.md +++ /dev/null @@ -1,64 +0,0 @@ -# Az - Azure Container Instances Privesc - -{{#include ../../../banners/hacktricks-training.md}} - -## Azure Container Instances - -Для отримання додаткової інформації перегляньте: - -{{#ref}} -../az-services/az-container-instances.md -{{#endref}} - -### `Microsoft.ContainerInstance/containerGroups/read`, `Microsoft.ContainerInstance/containerGroups/containers/exec/action` - -Ці дозволи дозволяють користувачу **виконати команду** в запущеному контейнері. Це можна використовувати для **ескалації привілеїв** у контейнері, якщо до нього прикріплено будь-яку керовану ідентичність. Звичайно, також можливо отримати доступ до вихідного коду та будь-якої іншої чутливої інформації, що зберігається всередині контейнера. - -Щоб виконати `ls` і отримати вихід, це так само просто, як: -```bash -az container exec --name --resource-group --exec-command 'ls' -``` -Також можливо **прочитати вихідні дані** контейнера за допомогою: -```bash -az container attach --name --resource-group -``` -Або отримайте журнали за допомогою: -```bash -az container logs --name --resource-group -``` -### `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Ці дозволи дозволяють **прикріпити керовану користувачем ідентичність** до групи контейнерів. Це дуже корисно для ескалації привілеїв у контейнері. - -Щоб прикріпити керовану користувачем ідентичність до групи контейнерів: -```bash -az rest \ ---method PATCH \ ---url "/subscriptions//resourceGroups//providers/Microsoft.ContainerInstance/containerGroups/?api-version=2021-09-01" \ ---body '{ -"identity": { -"type": "UserAssigned", -"userAssignedIdentities": { -"/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/": {} -} -} -}' \ ---headers "Content-Type=application/json" -``` -### `Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.ContainerInstance/containerGroups/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` - -Ці дозволи дозволяють **створювати або оновлювати групу контейнерів** з **управляємим користувачем ідентифікатором** прикріпленим до неї. Це дуже корисно для ескалації привілеїв у контейнері. -```bash -az container create \ ---resource-group > \ ---name nginx2 \ ---image mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine \ ---assign-identity "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" \ ---restart-policy OnFailure \ ---os-type Linux \ ---cpu 1 \ ---memory 1.0 -``` -Крім того, також можливо оновити існуючу групу контейнерів, додавши, наприклад, аргумент **`--command-line`** з реверс-шелом. - -{{#include ../../../banners/hacktricks-training.md}} 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 3d5b1505f..76d93af64 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 @@ -12,7 +12,7 @@ ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -Зловмисник з цим дозволом може переглядати повідомлення з Azure Storage Queue. Це дозволяє зловмиснику бачити вміст повідомлень, не позначаючи їх як оброблені або не змінюючи їхній стан. Це може призвести до несанкціонованого доступу до чутливої інформації, що дозволяє ексфільтрацію даних або збір розвідки для подальших атак. +Зловмисник з цим дозволом може переглядати повідомлення з Azure Storage Queue. Це дозволяє зловмиснику бачити вміст повідомлень, не позначаючи їх як оброблені або не змінюючи їхній стан. Це може призвести до несанкціонованого доступу до чутливої інформації, що дозволяє витік даних або збір розвідки для подальших атак. ```bash az storage message peek --queue-name --account-name ``` @@ -56,8 +56,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Посилання -- 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}} 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 27291457a..612688b4b 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 @@ -78,133 +78,208 @@ az servicebus queue authorization-rule update --resource-group --nam ``` ### 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 ``` ### Відправка повідомлень з ключами (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action АБО Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) -Ви можете отримати `PrimaryConnectionString`, який діє як облікові дані для простору імен Service Bus. З цим рядком підключення ви можете повністю автентифікуватися як простір імен Service Bus, що дозволяє вам відправляти повідомлення в будь-яку чергу або тему та потенційно взаємодіяти з системою способами, які можуть порушити роботу, видавати себе за дійсних користувачів або впроваджувати шкідливі дані в робочий процес обміну повідомленнями. +Ви можете отримати `PrimaryConnectionString`, який діє як облікові дані для простору імен Service Bus. З цим рядком підключення ви можете повністю автентифікуватися як простір імен Service Bus, що дозволяє вам відправляти повідомлення в будь-яку чергу або тему та потенційно взаємодіяти з системою способами, які можуть порушити роботу, видавати себе за дійсних користувачів або впроваджувати шкідливі дані в робочий процес обміну повідомленнями. Цей метод працює, якщо `--disable-local-auth` встановлено в false. ```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 = "" -TOPIC_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()) +``` +Додатково ви можете надсилати повідомлення за допомогою az rest, у цьому випадку вам потрібно згенерувати токен sas для використання. +```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://.servicebus.windows.net/" +key_name = "" +primary_key = "" -# 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://.servicebus.windows.net//messages" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=https%3A%2F%2F.servicebus.windows.net%2F&sig=&se=&skn=" \ +--body "" ``` -### Отримати з ключами (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) +### Receive with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action) -Ви можете отримати PrimaryConnectionString, який слугує обліковими даними для простору імен Service Bus. Використовуючи цей рядок підключення, ви можете отримувати повідомлення з будь-якої черги або підписки в межах простору імен, що дозволяє отримати доступ до потенційно чутливих або критичних даних, що дозволяє ексфільтрацію даних або втручання в обробку повідомлень і робочі процеси додатків. +Ви можете отримати PrimaryConnectionString, який слугує обліковими даними для простору імен Service Bus. Використовуючи цей рядок підключення, ви можете отримувати повідомлення з будь-якої черги або підписки в межах простору імен, що дозволяє отримати доступ до потенційно чутливих або критичних даних, що дозволяє ексфільтрацію даних або втручання в обробку повідомлень і робочі процеси додатків. Цей метод працює, якщо `--disable-local-auth` встановлено в false. ```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 = "" -TOPIC_NAME = "" -SUBSCRIPTION_NAME = "" #Topic Subscription +CONN_STR = "" +QUEUE = "" -# 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 = "" +# SUBSCRIPTION = "" -# 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") +``` +Додатково ви можете надсилати повідомлення за допомогою az rest, у цьому випадку вам потрібно згенерувати токен sas для використання. +```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://.servicebus.windows.net/queue" # For queue +# resource_uri = "https://.servicebus.windows.net//subscriptions/" # For topic subscription +sas_token = generate_sas_token(resource_uri, "", "") +print(sas_token) + +``` +Для черги ви можете отримати або переглянути повідомлення (отримання повідомлень видалить їх, тоді як перегляд не видалить): +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//messages/head?peekonly=true&timeout=60" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +Please provide the text you would like translated. +```bash +#Get a message +az rest --method post \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60" \ +--headers "Content-Type=application/atom+xml;type=entry;charset=utf-8" "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#Peek a message +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages/head?timeout=60&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" + +#You can select the meesage changing the field PreviousSequenceNumber +az rest --method get \ +--uri "https://.servicebus.windows.net//subscriptions//messages?timeout=60&PreviousSequenceNumber=&api-version=2017-04" \ +--headers "Authorization=SharedAccessSignature sr=&sig=&se=&skn=" +``` +### Відправка повідомлень. DataActions: `Microsoft.ServiceBus/namespaces/messages/send/action` + +Ви можете використовувати ці дозволи для відправки повідомлень, навіть якщо `--disable-local-auth` встановлено в true. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient +from azure.servicebus import ServiceBusMessage + +NS = ".servicebus.windows.net" # Your namespace +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()) +``` +### Отримати повідомлення. DataActions: `Microsoft.ServiceBus/namespaces/messages/receive/action` + +Ви можете використовувати ці дозволи для отримання повідомлень, навіть якщо `--disable-local-auth` встановлено в true. +```python +import asyncio +from azure.identity.aio import DefaultAzureCredential +from azure.servicebus.aio import ServiceBusClient + +NS = ".servicebus.windows.net" +QUEUE = "" + +# For a topic subscription, uncomment and set these values: +# TOPIC = "" +# 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") ``` ## Посилання -- 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}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index 39691ec8d..09108b735 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -12,7 +12,7 @@ ### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write` -З цими дозволами користувач може виконати ескалацію привілеїв, оновлюючи або створюючи Azure SQL сервери та змінюючи критичні конфігурації, включаючи адміністративні облікові дані. Цей дозвіл дозволяє користувачу оновлювати властивості сервера, включаючи пароль адміністратора SQL сервера, що дозволяє несанкціонований доступ або контроль над сервером. Вони також можуть створювати нові сервери, потенційно вводячи тіньову інфраструктуру для зловмисних цілей. Це стає особливо критичним у середовищах, де "Microsoft Entra Authentication Only" вимкнено, оскільки вони можуть використовувати SQL-аутентифікацію для отримання необмеженого доступу. +З цими дозволами користувач може виконати ескалацію привілеїв, оновлюючи або створюючи Azure SQL сервери та змінюючи критичні конфігурації, включаючи адміністративні облікові дані. Цей дозвіл дозволяє користувачу оновлювати властивості сервера, включаючи пароль адміністратора SQL сервера, що дозволяє несанкціонований доступ або контроль над сервером. Вони також можуть створювати нові сервери, потенційно вводячи тіньову інфраструктуру для зловмисних цілей. Це стає особливо критичним в середовищах, де "Microsoft Entra Authentication Only" вимкнено, оскільки вони можуть експлуатувати SQL-автентифікацію для отримання необмеженого доступу. ```bash # Change the server password az sql server update \ @@ -26,7 +26,7 @@ az sql server create \ --resource-group \ --location \ --admin-user \ ---admin-password +--admin-password ``` Крім того, необхідно увімкнути публічний доступ, якщо ви хочете отримати доступ з непри приватного кінцевого пункту, щоб увімкнути це: ```bash @@ -35,6 +35,31 @@ az sql server update \ --resource-group \ --enable-public-network true ``` +Крім того, з правами ви можете активувати призначену ідентичність, працювати з керованою ідентичністю, прикріпленою до сервера. Наприклад, тут з керованою ідентичністю, яка може отримати доступ до Azure Storage: +```bash +az sql server update \ +--name \ +--resource-group \ +--assign_identity +``` + +```sql +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://.blob.core.windows.net/', +CREDENTIAL = ManagedIdentityCredential +); +GO + +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` ### `Microsoft.Sql/servers/firewallRules/write` Зловмисник може маніпулювати правилами брандмауера на Azure SQL серверах, щоб дозволити несанкціонований доступ. Це можна використати для відкриття сервера для конкретних IP-адрес або цілих діапазонів IP, включаючи публічні IP, що дозволяє доступ для зловмисників. Ця діяльність після експлуатації може бути використана для обходу існуючих мережевих засобів безпеки, встановлення стійкості або полегшення бічного переміщення в середовищі шляхом відкриття чутливих ресурсів. diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md deleted file mode 100644 index 7e21a1946..000000000 --- a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md +++ /dev/null @@ -1,45 +0,0 @@ -# Az - Container Instances - -{{#include ../../../banners/hacktricks-training.md}} - -## Основна інформація - -Azure Container Instances (ACI) надають **безсерверний, за запитом спосіб** запуску **контейнерів** в хмарі Azure. Ви можете **розгорнути** один або кілька контейнерів у групі з **масштабованими обчисленнями**, **мережевими опціями** та гнучкістю підключення до **інших служб Azure** (таких як Storage, Virtual Networks або Container Registries). - -Оскільки це **епhemeral** навантаження, вам не потрібно керувати основною інфраструктурою ВМ — Azure займається цим за вас. Однак з точки зору **оборонної безпеки** важливо розуміти, як **дозволи**, **ідентичності**, **мережеві конфігурації** та **журнали** можуть виявити поверхні атаки та потенційні неправильні налаштування. - -### Конфігурації - -- Щоб створити контейнер, можна використовувати публічний образ, образ контейнера з Azure Container Registry або зовнішнього репозиторію, що може **вимагати налаштування пароля** для доступу до нього. -- Щодо мережі, він також може мати **публічну IP-адресу** або бути **приватними кінцевими точками**. -- Також можливо налаштувати загальні налаштування docker, такі як: -- **Змінні середовища** -- **Томи** (навіть з Azure Files) -- **Порти** -- **Обмеження CPU та пам'яті** -- **Політика перезапуску** -- **Запуск з привілегіями** -- **Командний рядок для виконання** -- ... - -## Перерахування - -> [!WARNING] -> При перерахуванні ACI ви можете виявити чутливі конфігурації, такі як **змінні середовища**, **мережеві деталі** або **керовані ідентичності**. Будьте обережні з їхнім веденням журналів або відображенням. -```bash -# List all container instances in the subscription -az container list - -# Show detailed information about a specific container instance -az container show --name --resource-group - -# Fetch logs from a container -az container logs --name --resource-group - -# Execute a command in a running container and get the output -az container exec --name --resource-group --exec-command "ls" - -# Get yaml configuration of the container group -az container export --name --resource-group -``` - diff --git a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md index 894a15f72..45021ef50 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md +++ b/src/pentesting-cloud/azure-security/az-services/az-queue-enum.md @@ -64,19 +64,19 @@ $queueMessage.Value {{#endtab }} {{#endtabs }} -### Підвищення привілеїв +### Підвищення Привілеїв {{#ref}} ../az-privilege-escalation/az-queue-privesc.md {{#endref}} -### Після експлуатації +### Постексплуатація {{#ref}} ../az-post-exploitation/az-queue-post-exploitation.md {{#endref}} -### Постійність +### Персистентність {{#ref}} ../az-persistence/az-queue-persistance.md @@ -84,8 +84,8 @@ $queueMessage.Value ## Посилання -- 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}} 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 7e875e4cf..0a6345078 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,26 +4,30 @@ ## Service Bus -Azure Service Bus - це хмарна **служба обміну повідомленнями**, призначена для забезпечення надійної **комунікації між різними частинами програми або окремими програмами**. Вона діє як безпечний посередник, забезпечуючи безпечну доставку повідомлень, навіть якщо відправник і отримувач не працюють одночасно. Відокремлюючи системи, вона дозволяє програмам працювати незалежно, при цьому обмінюючись даними або інструкціями. Це особливо корисно для сценаріїв, які вимагають балансування навантаження між кількома працівниками, надійної доставки повідомлень або складної координації, такої як обробка завдань у порядку або безпечне управління доступом. +Azure Service Bus - це хмарна **служба обміну повідомленнями**, призначена для забезпечення надійної **комунікації між різними частинами програми або окремими програмами**. Вона діє як безпечний посередник, забезпечуючи безпечну доставку повідомлень, навіть якщо відправник і отримувач не працюють одночасно. Відокремлюючи системи, вона дозволяє програмам працювати незалежно, при цьому обмінюючись даними або інструкціями. Це особливо корисно для сценаріїв, що вимагають балансування навантаження між кількома працівниками, надійної доставки повідомлень або складної координації, такої як обробка завдань у порядку або безпечне управління доступом. ### Key Concepts -1. **Queues:** її мета - зберігати повідомлення, поки отримувач не буде готовий. +1. **Namespaces:** Простір імен у системах обміну повідомленнями - це логічний контейнер, який організовує та керує компонентами обміну повідомленнями, чергами та темами. Він забезпечує ізольоване середовище, де програми можуть надсилати, отримувати та обробляти повідомлення. Черги та теми ділять одну й ту ж інфраструктуру та конфігурацію в просторі імен Service Bus, але працюють незалежно, не взаємодіючи одна з одною. +2. **Queues:** її мета - зберігати повідомлення, поки отримувач не буде готовий. - Повідомлення упорядковані, мають часові мітки та надійно зберігаються. - Доставляються в режимі витягування (за запитом). - Підтримує точкову комунікацію. -2. **Topics:** Публікація-підписка для трансляції. +3. **Topics:** Публікація-підписка для трансляції. - Кілька незалежних підписок отримують копії повідомлень. - Підписки можуть мати правила/фільтри для контролю доставки або додавання метаданих. - Підтримує комунікацію багато-до-багато. -3. **Namespaces:** Контейнер для всіх компонентів обміну повідомленнями, черг і тем, подібний до вашої власної частини потужного кластера Azure, що забезпечує виділену ємність і, за бажанням, охоплює три зони доступності. -### Advance Features +The service bus endpoint/connection string is: +```bash +https://.servicebus.windows.net:443/ +``` +### Розширені функції Деякі розширені функції: - **Message Sessions**: Забезпечує обробку FIFO та підтримує шаблони запит-відповідь. -- **Auto-Forwarding**: Переносить повідомлення між чергами або темами в одному просторі імен. +- **Auto-Forwarding**: Перенаправляє повідомлення між чергами або темами в одному просторі імен. - **Dead-Lettering**: Захоплює недоставлені повідомлення для перегляду. - **Scheduled Delivery**: Затримує обробку повідомлень для майбутніх завдань. - **Message Deferral**: Відкладає отримання повідомлень до готовності. @@ -31,23 +35,28 @@ Azure Service Bus - це хмарна **служба обміну повідом - **Filters & Actions**: Застосовує правила для фільтрації або анотації повідомлень. - **Auto-Delete on Idle**: Видаляє черги після бездіяльності (мін: 5 хвилин). - **Duplicate Detection**: Видаляє дублікати повідомлень під час повторних відправок. -- **Batch Deletion**: Масове видалення прострочених або непотрібних повідомлень. +- **Batch Deletion**: Масово видаляє прострочені або непотрібні повідомлення. ### Authorization-Rule / SAS Policy -SAS Policies визначають дозволи доступу для сутностей Azure Service Bus, простору імен (найважливіше), черг і тем. Кожна політика має такі компоненти: +SAS Policies визначають дозволи доступу для сутностей Azure Service Bus (найважливіша), черг та тем. Кожна політика має такі компоненти: - **Permissions**: Прапорці для вказівки рівнів доступу: - Manage: Надає повний контроль над сутністю, включаючи управління конфігурацією та дозволами. - Send: Дозволяє надсилати повідомлення до сутності. - Listen: Дозволяє отримувати повідомлення з сутності. - **Primary and Secondary Keys**: Це криптографічні ключі, які використовуються для генерації безпечних токенів для автентифікації доступу. -- **Primary and Secondary Connection Strings**: Попередньо налаштовані рядки підключення, які включають кінцеву точку та ключ для зручного використання в програмах. +- **Primary and Secondary Connection Strings**: Попередньо налаштовані рядки підключення, які включають кінцеву точку та ключ для зручного використання в додатках. - **SAS Policy ARM ID**: Шлях Azure Resource Manager (ARM) до політики для програмної ідентифікації. -### NameSpace +Важливо зазначити, що простір імен має єдину політику SAS, яка впливає на кожну сутність в ньому, тоді як черги та теми можуть мати свої власні індивідуальні політики SAS для більш детального контролю. -sku, authrorization rule, +### "--disable-local-auth" + +Параметр --disable-local-auth використовується для контролю того, чи увімкнено локальну автентифікацію (тобто використання ключів Shared Access Signature (SAS)) для вашого простору імен Service Bus. Ось що вам потрібно знати: + +- Коли встановлено в true: Локальна автентифікація за допомогою ключів SAS вимкнена, і дозволена автентифікація через Azure Active Directory (Azure AD). +- Коли встановлено в false: Доступні як SAS (локальна) автентифікація, так і автентифікація Azure AD, і ви можете використовувати рядки підключення з ключами SAS для доступу до ресурсів Service Bus. ### Enumeration 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 8a6672370..db91455fd 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -4,67 +4,121 @@ ## Azure SQL -Azure SQL - це сімейство керованих, безпечних та інтелектуальних продуктів, які використовують **движок бази даних SQL Server в хмарі Azure**. Це означає, що вам не потрібно турбуватися про фізичне адміністрування ваших серверів, і ви можете зосередитися на управлінні вашими даними. +Azure SQL - це сімейство керованих, безпечних та інтелектуальних продуктів, які використовують **SQL Server database engine в хмарі Azure**. Це означає, що вам не потрібно турбуватися про фізичне адміністрування ваших серверів, і ви можете зосередитися на управлінні вашими даними. -Azure SQL складається з трьох основних пропозицій: +Azure SQL складається з чотирьох основних пропозицій: -1. **Azure SQL Database**: Це **повністю керована служба бази даних**, яка дозволяє вам розміщувати окремі бази даних в хмарі Azure. Вона пропонує вбудовану інтелектуальність, яка вивчає ваші унікальні шаблони бази даних і надає індивідуальні рекомендації та автоматичну оптимізацію. -2. **Azure SQL Managed Instance**: Це для масштабних, повних розгортань SQL Server. Вона забезпечує майже 100% сумісність з останнім SQL Server на місцях (Enterprise Edition) та надає рідну реалізацію віртуальної мережі (VNet), яка вирішує загальні проблеми безпеки, а також бізнес-модель, вигідну для клієнтів SQL Server на місцях. -3. **Azure SQL Server на Azure VMs**: Це Інфраструктура як Служба (IaaS) і найкраще підходить для міграцій, де ви хочете **контролювати операційну систему та екземпляр SQL Server**, як це було б на сервері, що працює на місцях. +1. **Azure SQL Server**: Azure SQL Server - це керована реляційна база даних, яка спрощує розгортання та управління базами даних SQL Server, з вбудованими функціями безпеки та продуктивності. +2. **Azure SQL Database**: Це **повністю керована служба бази даних**, яка дозволяє вам розміщувати окремі бази даних у хмарі Azure. Вона пропонує вбудовану інтелектуальність, яка вивчає ваші унікальні шаблони бази даних і надає індивідуальні рекомендації та автоматичне налаштування. +3. **Azure SQL Managed Instance**: Це для масштабних, повних розгортань SQL Server. Вона забезпечує майже 100% сумісність з останнім SQL Server на місцях (Enterprise Edition) Database Engine, що забезпечує рідну реалізацію віртуальної мережі (VNet), яка вирішує загальні проблеми безпеки, і бізнес-модель, вигідну для клієнтів SQL Server на місцях. +4. **Azure SQL Server на Azure VMs**: Це Інфраструктура як Служба (IaaS) і найкраще підходить для міграцій, де ви хочете **контролювати операційну систему та екземпляр SQL Server**, як це було б на сервері, що працює на місцях. -### Azure SQL Database +### Azure SQL Server -**Azure SQL Database** - це **повністю керована платформа бази даних як служба (PaaS)**, яка надає масштабовані та безпечні рішення реляційних баз даних. Вона побудована на останніх технологіях SQL Server і усуває потребу в управлінні інфраструктурою, що робить її популярним вибором для хмарних додатків. +Azure SQL Server - це система управління реляційними базами даних (RDBMS), яка використовує Transact-SQL для операцій з даними і створена для обробки систем рівня підприємства. Вона пропонує потужні функції для продуктивності, безпеки, масштабованості та інтеграції з різними додатками Microsoft. Бази даних Azure SQL покладаються на цей сервер, оскільки вони побудовані на цих серверах, і це точка входу для користувачів для доступу до баз даних. -#### Основні функції +#### Мережа -- **Завжди актуальна**: Працює на останній стабільній версії SQL Server і автоматично отримує нові функції та патчі. -- **Можливості PaaS**: Вбудована висока доступність, резервне копіювання та оновлення. -- **Гнучкість даних**: Підтримує реляційні та нереляційні дані (наприклад, графіки, JSON, просторові дані та XML). +**Мережева підключеність**: Виберіть, чи дозволити доступ через публічний або приватний кінець. Якщо ви виберете Немає доступу, жодні кінцеві точки не створюються, поки не буде налаштовано вручну: +- Немає доступу: Жодні кінцеві точки не налаштовані, блокуючи вхідні з'єднання, поки не буде налаштовано вручну. +- Публічний кінець: Дозволяє прямі з'єднання через публічний інтернет, підлягаючи правилам брандмауера та іншим конфігураціям безпеки. +- Приватний кінець: Обмежує підключення до приватної мережі. -#### Моделі покупки / Рівні послуг +**Політика підключення**: Визначте, як клієнти спілкуються з сервером бази даних SQL: +- За замовчуванням: Використовує політику перенаправлення для всіх з'єднань клієнтів зсередини Azure (за винятком тих, що використовують приватні кінцеві точки) і політику проксі для з'єднань ззовні Azure. +- Проксі: Направляє всі з'єднання клієнтів через шлюз Azure SQL Database. +- Перенаправлення: Клієнти підключаються безпосередньо до вузла, що хостить базу даних. -- **vCore-based**: Вибір обчислювальних потужностей, пам'яті та зберігання незалежно. Для загального призначення, бізнес-критичних (з високою стійкістю та продуктивністю для OLTP-додатків) і масштабується до 128 ТБ зберігання. -- **DTU-based**: Об'єднує обчислювальні потужності, пам'ять та I/O в фіксовані рівні. Збалансовані ресурси для загальних завдань. -- Стандартний: Збалансовані ресурси для загальних завдань. -- Преміум: Висока продуктивність для вимогливих навантажень. +#### Методи аутентифікації +Azure SQL підтримує різні методи аутентифікації для забезпечення доступу до бази даних: + +- **Аутентифікація лише Microsoft Entra**: Використовує Microsoft Entra (раніше Azure AD) для централізованого управління ідентичністю та єдиного входу. +- **Аутентифікація SQL та Microsoft Entra**: Дозволяє використовувати традиційну аутентифікацію SQL разом з Microsoft Entra. +- **Аутентифікація SQL**: Покладається виключно на імена користувачів та паролі SQL Server. + +#### Функції безпеки + +SQL сервери мають **Керовані Ідентичності**. Керовані ідентичності дозволяють вашому серверу безпечно аутентифікуватися з іншими службами Azure без зберігання облікових даних. Це дозволяє отримувати доступ до інших служб, які будуть системно призначеними керованими ідентичностями, і бути доступними іншими службами з іншими ідентичностями, які є користувацькими призначеними керованими ідентичностями. Деякі з служб, до яких SQL може отримати доступ, включають Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB або Cosmos DB API для MongoDB, Generic ODBC, Bulk Operations та S3-сумісне об'єктне сховище. + +Інші функції безпеки, які має SQL сервер: + +- **Правила брандмауера**: Правила брандмауера контролюють доступ до вашого сервера, обмежуючи або дозволяючи трафік. Це також є функцією самих баз даних. +- **Прозоре шифрування даних (TDE)**: TDE шифрує ваші бази даних, резервні копії та журнали в спокої, щоб захистити ваші дані, навіть якщо сховище скомпрометоване. Це може бути зроблено за допомогою ключа, керованого службою, або ключа, керованого клієнтом. +- **Microsoft Defender для SQL**: Microsoft Defender для SQL може бути активований, пропонуючи оцінки вразливості та розширений захист від загроз для сервера. #### Моделі розгортання Azure SQL Database підтримує гнучкі варіанти розгортання для різних потреб: -- **Окрема база даних**: +- **Одна база даних**: - Повністю ізольована база даних з власними виділеними ресурсами. - Чудово підходить для мікросервісів або додатків, які потребують єдиного джерела даних. - **Еластичний пул**: - Дозволяє кільком базам даних ділити ресурси в межах пулу. -- Економічно вигідно для додатків з коливаннями в режимі використання через кілька баз даних. +- Економічно вигідно для додатків з коливаннями в патернах використання між кількома базами даних. -#### Масштабована продуктивність і пул +### Azure SQL Database -- **Окремі бази даних**: Кожна база даних ізольована і має свої власні виділені ресурси обчислень, пам'яті та зберігання. Ресурси можуть бути масштабовані динамічно (вгору або вниз) без простою (1–128 vCores, 32 ГБ–4 ТБ зберігання та до 128 ТБ). -- **Еластичні пул**: Ділять ресурси між кількома базами даних у пулі для максимізації ефективності та економії витрат. Ресурси також можуть бути масштабовані динамічно для всього пулу. -- **Гнучкість рівня послуг**: Почніть з невеликої бази даних у рівні загального призначення. Оновіть до бізнес-критичного або гіпермасштабного рівнів, коли потреби зростають. +**Azure SQL Database** - це **повністю керована платформа бази даних як служба (PaaS)**, яка надає масштабовані та безпечні реляційні рішення для бази даних. Вона побудована на останніх технологіях SQL Server і усуває потребу в управлінні інфраструктурою, що робить її популярним вибором для хмарних додатків. + +#### Ключові функції + +- **Завжди актуальна**: Працює на останній стабільній версії SQL Server і автоматично отримує нові функції та патчі. +- **Можливості PaaS**: Вбудована висока доступність, резервні копії та оновлення. +- **Гнучкість даних**: Підтримує реляційні та нереляційні дані (наприклад, графіки, JSON, просторові дані та XML). + +#### Мережа + +**Мережева підключеність**: Виберіть, чи дозволити доступ через публічний або приватний кінець. Якщо ви виберете Немає доступу, жодні кінцеві точки не створюються, поки не буде налаштовано вручну: +- Немає доступу: Жодні кінцеві точки не налаштовані, блокуючи вхідні з'єднання, поки не буде налаштовано вручну. +- Публічний кінець: Дозволяє прямі з'єднання через публічний інтернет, підлягаючи правилам брандмауера та іншим конфігураціям безпеки. +- Приватний кінець: Обмежує підключення до приватної мережі. + +**Політика підключення**: Визначте, як клієнти спілкуються з сервером бази даних SQL: +- За замовчуванням: Використовує політику перенаправлення для всіх з'єднань клієнтів зсередини Azure (за винятком тих, що використовують приватні кінцеві точки) і політику проксі для з'єднань ззовні Azure. +- Проксі: Направляє всі з'єднання клієнтів через шлюз Azure SQL Database. +- Перенаправлення: Клієнти підключаються безпосередньо до вузла, що хостить базу даних. + +#### Функції безпеки + +- **Microsoft Defender для SQL**: може бути активований, пропонуючи оцінки вразливості та розширений захист від загроз. +- **Ledger**: криптографічно перевіряє цілісність даних, забезпечуючи виявлення будь-якого підроблення. +- **Ідентичність сервера**: використовує системно призначені та користувацькі призначені керовані ідентичності для забезпечення централізованого доступу. +- **Управління ключами прозорого шифрування даних**: шифрує бази даних, резервні копії та журнали в спокої без необхідності вносити зміни до програми. Шифрування може бути активоване для кожної бази даних, і якщо налаштовано на рівні бази даних, ці налаштування переважають конфігурацію на рівні сервера. +- **Завжди зашифровано**: це набір розширених функцій захисту даних, які відокремлюють право власності на дані від управління даними. Це забезпечує, що адміністратори або оператори з високими привілеями не можуть отримати доступ до чутливих даних. + +#### Моделі покупки / Тарифи на послуги + +- **На основі vCore**: Виберіть обчислення, пам'ять і зберігання незалежно. Для загального призначення, бізнес-критичного (з високою стійкістю та продуктивністю для OLTP додатків) і масштабується до 128 ТБ зберігання. +- **На основі DTU**: Об'єднує обчислення, пам'ять і I/O в фіксовані тарифи. Збалансовані ресурси для загальних завдань. +- Стандартний: Збалансовані ресурси для загальних завдань. +- Преміум: Висока продуктивність для вимогливих навантажень. + +#### Масштабована продуктивність і пули + +- **Одинокі бази даних**: Кожна база даних ізольована і має свої власні виділені ресурси обчислення, пам'яті та зберігання. Ресурси можуть бути масштабовані динамічно (вгору або вниз) без простою (1–128 vCores, 32 ГБ–4 ТБ зберігання та до 128 ТБ). +- **Еластичні пули**: Ділять ресурси між кількома базами даних у пулі для максимізації ефективності та економії витрат. Ресурси також можуть бути масштабовані динамічно для всього пулу. +- **Гнучкість тарифного плану**: Почніть з маленької бази даних у тарифному плані загального призначення. Оновіть до бізнес-критичного або гіпермасштабного тарифних планів, коли потреби зростають. - **Варіанти масштабування**: Динамічне масштабування або альтернативи автоматичного масштабування. #### Вбудоване моніторинг та оптимізація -- **Сховище запитів**: Відстежує проблеми з продуктивністю, визначає основних споживачів ресурсів і пропонує практичні рекомендації. -- **Автоматична оптимізація**: Проактивно оптимізує продуктивність за допомогою функцій, таких як автоматичне індексування та корекція планів запитів. +- **Сховище запитів**: Відстежує проблеми продуктивності, визначає основних споживачів ресурсів і пропонує практичні рекомендації. +- **Автоматичне налаштування**: Проактивно оптимізує продуктивність за допомогою функцій, таких як автоматичне індексування та корекція планів запитів. - **Інтеграція телеметрії**: Підтримує моніторинг через Azure Monitor, Event Hubs або Azure Storage для індивідуальних інсайтів. #### Відновлення після катастроф та доступність -- **Автоматичні резервні копії**: SQL Database автоматично виконує повні, диференційні та резервні копії журналу транзакцій бази даних. +- **Автоматичні резервні копії**: SQL Database автоматично виконує повні, диференційні та журнали транзакцій резервних копій баз даних. - **Відновлення в точці часу**: Відновлює бази даних до будь-якого минулого стану в межах періоду зберігання резервних копій. - **Гео-резервування** -- **Групи відмови**: Спрощує відновлення після катастроф, об'єднуючи бази даних для автоматичного переключення між регіонами. +- **Групи відмови**: Спрощує відновлення після катастроф, групуючи бази даних для автоматичного переключення між регіонами. ### Azure SQL Managed Instance -**Azure SQL Managed Instance** - це платформа як служба (PaaS) для бази даних, яка пропонує майже 100% сумісність з SQL Server і автоматично виконує більшість управлінських завдань (наприклад, оновлення, патчинг, резервне копіювання, моніторинг). Вона надає хмарне рішення для міграції баз даних SQL Server на місцях з мінімальними змінами. +**Azure SQL Managed Instance** - це платформа як служба (PaaS) бази даних, яка пропонує майже 100% сумісність з SQL Server і автоматично обробляє більшість завдань управління (наприклад, оновлення, патчування, резервні копії, моніторинг). Вона забезпечує хмарне рішення для міграції баз даних SQL Server на місцях з мінімальними змінами. -#### Рівні послуг +#### Тарифи на послуги - **Загальне призначення**: Економічний варіант для додатків зі стандартними вимогами до I/O та затримки. - **Бізнес-критичний**: Високопродуктивний варіант з низькою затримкою I/O для критичних навантажень. @@ -79,27 +133,27 @@ Azure SQL Database підтримує гнучкі варіанти розгор **Azure SQL Virtual Machines** найкраще підходять для міграцій, де ви хочете **контролювати операційну систему та екземпляр SQL Server**, як це було б на сервері, що працює на місцях. Вони можуть мати різні розміри машин і широкий вибір версій та редакцій SQL Server. -#### Основні функції +#### Ключові функції -**Автоматизоване резервне копіювання**: Заплануйте резервні копії для SQL баз даних. -**Автоматичне патчування**: Автоматизує установку оновлень Windows та SQL Server під час вікна обслуговування. -**Інтеграція з Azure Key Vault**: Автоматично налаштовує Key Vault для SQL Server VMs. -**Інтеграція з Defender for Cloud**: Переглядайте рекомендації Defender for SQL у порталі. +**Автоматизоване резервне копіювання**: Заплануйте резервні копії для баз даних SQL. +**Автоматичне патчування**: Автоматизує установку оновлень Windows та SQL Server під час вікна обслуговування. +**Інтеграція з Azure Key Vault**: Автоматично налаштовує Key Vault для SQL Server VMs. +**Інтеграція з Defender for Cloud**: Переглядайте рекомендації Defender для SQL у порталі. **Гнучкість версії/редакції**: Змінюйте метадані версії або редакції SQL Server без повторного розгортання VM. #### Функції безпеки -**Microsoft Defender for SQL**: Інсайти та сповіщення про безпеку. -**Інтеграція з Azure Key Vault**: Безпечне зберігання облікових даних та ключів шифрування. +**Microsoft Defender для SQL**: Інсайти та сповіщення про безпеку. +**Інтеграція з Azure Key Vault**: Безпечне зберігання облікових даних та ключів шифрування. **Microsoft Entra (Azure AD)**: Аутентифікація та контроль доступу. -## Enumeration +## Перерахування {{#tabs}} {{#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 --resource-group ## List Server Firewalls diff --git a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md index 2fce1109d..9244fd4b4 100644 --- a/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md +++ b/src/pentesting-cloud/gcp-security/gcp-services/gcp-compute-instances-enum/gcp-compute-instance.md @@ -4,7 +4,7 @@ ## Basic Information -Google Cloud Compute Instances є **налаштовуваними віртуальними машинами на хмарній інфраструктурі Google**, що пропонують масштабовану та за запитом обчислювальну потужність для широкого спектра застосувань. Вони надають такі функції, як глобальне розгортання, постійне зберігання, гнучкий вибір ОС та потужні інтеграції мережі та безпеки, що робить їх універсальним вибором для хостингу веб-сайтів, обробки даних та ефективного виконання застосувань у хмарі. +Google Cloud Compute Instances є **налаштовуваними віртуальними машинами на хмарній інфраструктурі Google**, що пропонують масштабовану та за запитом обчислювальну потужність для широкого спектру застосувань. Вони надають такі функції, як глобальне розгортання, постійне зберігання, гнучкий вибір ОС та потужні інтеграції мережі та безпеки, що робить їх універсальним вибором для хостингу веб-сайтів, обробки даних та ефективного виконання застосувань у хмарі. ### Confidential VM @@ -31,16 +31,16 @@ Confidential VMs використовують **апаратні засоби б За замовчуванням буде використано **обліковий запис служби за замовчуванням Compute Engine**. Електронна пошта цього SA виглядає так: `-compute@developer.gserviceaccount.com`\ Цей обліковий запис служби має **роль редактора на всьому проекті (високі привілеї).** -А **стандартні області доступу** є такими: +А **стандартні області доступу** такі: - **https://www.googleapis.com/auth/devstorage.read\_only** -- Доступ на читання до бакетів :) -- 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) -Однак можливо **надати `cloud-platform` одним кліком** або вказати **кастомні**. +Однак, можливо **надати `cloud-platform` одним клацанням** або вказати **кастомні**.
@@ -60,9 +60,9 @@ Confidential VMs використовують **апаратні засоби б Ці параметри **збільшать безпеку** VM і рекомендуються: -- **Secure boot:** Secure boot допомагає захистити ваші екземпляри VM від шкідливих програм на рівні завантаження та ядра, а також руткітів. +- **Secure boot:** Secure boot допомагає захистити ваші VM екземпляри від шкідливих програм на рівні завантаження та ядра. - **Enable vTPM:** Віртуальний модуль довіреної платформи (vTPM) перевіряє цілісність вашого гостьового VM перед завантаженням та під час завантаження, а також пропонує генерацію та захист ключів. -- **Integrity supervision:** Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених екземплярів VM за допомогою звітів Stackdriver. Вимагає увімкнення vTPM. +- **Integrity supervision:** Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених VM екземплярів за допомогою звітів Stackdriver. Вимагає увімкнення vTPM. ### VM Access @@ -94,7 +94,7 @@ https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/ ### Шифрування -За замовчуванням використовується ключ шифрування, керований Google, але можна налаштувати ключ шифрування, керований клієнтом (CMEK). Ви також можете налаштувати, що робити, коли використаний CMEK відкликано: нічого не робити або вимкнути віртуальну машину. +За замовчуванням використовується ключ шифрування, керований Google, але можна налаштувати ключ шифрування, керований клієнтом (CMEK). Ви також можете налаштувати, що робити, коли використаний CMEK відкликано: нічого або вимкнути віртуальну машину.