From b46c84fa7ea33d3ad5611cc2efcbeed69c47d3a3 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 12 Feb 2025 13:50:36 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-automati --- .../az-services/az-automation-accounts.md | 28 +++++++++---------- .../az-services/az-container-instances.md | 8 +++--- .../az-services/az-container-registry.md | 24 ++++++++-------- theme/ht_searcher.js | 4 +-- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md index 8cb56a390..3d2de4ef0 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md +++ b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md @@ -1,6 +1,6 @@ # Az - Automation Accounts -{{#include ../../../../banners/hacktricks-training.md}} +{{#include ../../../banners/hacktricks-training.md}} ## Basic Information @@ -9,7 +9,7 @@ Azure Automation Accounts - це хмарні сервіси в Microsoft Azure, ### Settings - **Credentials**: Пароль доступний лише в рамках runbook всередині облікового запису автоматизації, вони використовуються для **безпечного зберігання імен користувачів та паролів**. -- **Variables**: Використовуються для зберігання **даних конфігурації**, які можуть бути використані в runbooks. Це також можуть бути чутливі дані, такі як API ключі. Якщо змінна **зберігається в зашифрованому вигляді**, вона доступна лише в рамках runbook всередині облікового запису автоматизації. +- **Variables**: Використовуються для зберігання **даних конфігурації**, які можуть бути використані в runbooks. Це також може бути чутлива інформація, така як API ключі. Якщо змінна **зберігається в зашифрованому вигляді**, вона доступна лише в рамках runbook всередині облікового запису автоматизації. - **Certificates**: Використовуються для зберігання **сертифікатів**, які можуть бути використані в runbooks. - **Connections**: Використовуються для зберігання **інформації про з'єднання** з зовнішніми сервісами. Це може містити **чутливу інформацію**. - **Network Access**: Може бути встановлено на **публічний** або **приватний**. @@ -18,7 +18,7 @@ Azure Automation Accounts - це хмарні сервіси в Microsoft Azure, Runbook в Azure Automation - це **скрипт, який автоматично виконує завдання** у вашому хмарному середовищі. Runbooks можуть бути написані на PowerShell, Python або графічних редакторах. Вони допомагають автоматизувати адміністративні завдання, такі як управління ВМ, патчинг або перевірки відповідності. -У **коді**, розташованому всередині **Runbooks**, можуть міститися **чутливі дані** (такі як облікові дані). +У **коді**, розташованому всередині **Runbooks**, можуть міститися **чутливі дані** (такі як креденціали). **Job - це екземпляр виконання Runbook**. Коли ви запускаєте Runbook, створюється Job для відстеження цього виконання. Кожен job включає: @@ -33,7 +33,7 @@ Job містить **вихідні дані** виконання **Runbook**. Існує 3 основні способи виконання Runbook: - **Schedules**: Використовуються для **тригера** Runbooks у **визначений час** або **інтервал**. -- **Webhooks**: Це **HTTP кінцеві точки**, які можуть бути використані для **тригера** Runbooks з **зовнішніх сервісів**. Зверніть увагу, що URL вебхука **не видно** після створення. +- **Webhooks**: Це **HTTP кінцеві точки**, які можуть бути використані для **тригера** Runbooks з **зовнішніх сервісів**. Зверніть увагу, що URL вебхука **не видимий** після створення. - **Manual Trigger**: Ви можете **вручну запустити** Runbook з Azure Portal та з CLI. ### Source Control @@ -42,7 +42,7 @@ Job містить **вихідні дані** виконання **Runbook**. Коли синхронізація увімкнена, у **репозиторії Github створюється вебхук** для тригера синхронізації щоразу, коли відбувається подія push. Приклад URL вебхука: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d` -Зверніть увагу, що ці вебхуки **не будуть видимі** при переліку вебхуків у пов'язаних runbooks до репозиторію Github. Також зверніть увагу, що **не можна змінити URL репозиторію** джерела контролю після його створення. +Зверніть увагу, що ці вебхуки **не будуть видимі** при переліку вебхуків у відповідних runbooks до репозиторію Github. Також зверніть увагу, що **не можна змінити URL репозиторію** джерела контролю після його створення. Для того, щоб налаштований контроль джерела працював, **Azure Automation Account** повинен мати керовану ідентичність (системну або користувацьку) з роллю **`Contributor`**. Більше того, щоб призначити користувацьку керовану ідентичність обліковому запису автоматизації, потрібно вказати ідентифікатор клієнта користувацької MI в змінній **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**. @@ -61,14 +61,14 @@ Job містить **вихідні дані** виконання **Runbook**. ### Hybrid Worker Groups -В Azure Automation стандартним середовищем виконання для runbooks є **Azure Sandbox**, хмарна платформа, керована Azure, придатна для завдань, що стосуються ресурсів Azure. Однак цей пісочниця має обмеження, такі як обмежений доступ до локальних ресурсів та обмеження на час виконання та використання ресурсів. Щоб подолати ці обмеження, використовуються Групи гібридних працівників. Група гібридних працівників складається з **одного або кількох Гібридних працівників Runbook, встановлених на ваших власних машинах**, будь то локально, в інших хмарних середовищах або ВМ Azure. Ця конфігурація дозволяє runbooks виконуватися безпосередньо на цих машинах, надаючи прямий доступ до локальних ресурсів, можливість виконувати довші та більш ресурсомісткі завдання, а також гнучкість для взаємодії з середовищами, які виходять за межі безпосереднього доступу Azure. +В Azure Automation стандартним середовищем виконання для runbooks є **Azure Sandbox**, хмарна платформа, керована Azure, що підходить для завдань, пов'язаних з ресурсами Azure. Однак цей пісочниця має обмеження, такі як обмежений доступ до локальних ресурсів та обмеження на час виконання та використання ресурсів. Щоб подолати ці обмеження, використовуються Групи гібридних працівників. Група гібридних працівників складається з **одного або кількох Гібридних працівників Runbook, встановлених на ваших власних машинах**, будь то локально, в інших хмарних середовищах або ВМ Azure. Ця конфігурація дозволяє runbooks виконуватися безпосередньо на цих машинах, надаючи прямий доступ до локальних ресурсів, можливість виконувати триваліші та більш ресурсомісткі завдання, а також гнучкість для взаємодії з середовищами, які виходять за межі безпосереднього доступу Azure. -Коли створюється група гібридних працівників, потрібно вказати **облікові дані** для використання. Є 2 варіанти: +Коли створюється група гібридних працівників, потрібно вказати **креденціали** для використання. Є 2 варіанти: -- **Default credentials**: Вам не потрібно надавати облікові дані, і runbooks будуть виконуватися всередині ВМ як **System**. -- **Specific credentials**: Вам потрібно надати ім'я об'єкта облікових даних всередині облікового запису автоматизації, який буде використовуватися для виконання **runbooks всередині ВМ**. Тому в цьому випадку може бути можливим **викрасти дійсні облікові дані** для ВМ. +- **Default credentials**: Вам не потрібно надавати креденціали, і runbooks будуть виконуватися всередині ВМ як **System**. +- **Specific credentials**: Вам потрібно вказати ім'я об'єкта креденціалів всередині облікового запису автоматизації, який буде використовуватися для виконання **runbooks всередині ВМ**. Тому в цьому випадку може бути можливим **викрасти дійсні креденціали** для ВМ. -Отже, якщо ви можете вибрати виконання **Runbook** у **Гібридному працівнику**, ви будете виконувати **произвольні команди** всередині зовнішньої машини як **System** (гарна техніка повороту). +Отже, якщо ви можете вибрати виконання **Runbook** в **Hybrid Worker**, ви будете виконувати **произвольні команди** всередині зовнішньої машини як **System** (гарна техніка повороту). Більше того, якщо гібридний працівник працює в Azure з іншими прикріпленими керованими ідентичностями, runbook зможе отримати доступ до **керованої ідентичності runbook та всіх керованих ідентичностей ВМ з метаданих сервісу**. @@ -77,10 +77,10 @@ Job містить **вихідні дані** виконання **Runbook**. ### State Configuration (SC) ->[!WARNING] +> [!WARNING] > Як зазначено в [документації](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), Azure Automation State Configuration буде виведено з експлуатації 30 вересня 2027 року і замінено на [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview). -Облікові записи автоматизації також підтримують **State Configuration (SC)**, що є функцією, яка допомагає **конфігурувати** та **підтримувати** **стан** ваших ВМ. Можна **створювати** та **застосовувати** конфігурації DSC до **Windows** та **Linux** машин. +Облікові записи автоматизації також підтримують **State Configuration (SC)**, що є функцією, яка допомагає **конфігурувати** та **підтримувати** **стан** ваших ВМ. Можливо **створити** та **застосувати** конфігурації DSC до **Windows** та **Linux** машин. З точки зору атакуючого це було цікаво, оскільки це дозволяло **виконувати произвольний PS код у всіх налаштованих ВМ**, що дозволяло підвищувати привілеї до керованих ідентичностей цих ВМ, потенційно переходячи до нових мереж... Також конфігурації могли містити **чутливу інформацію**. @@ -226,7 +226,7 @@ Get-AzAutomationAccount | Get-AzAutomationPython3Package # List hybrid workers Get-AzAutomationHybridWorkerGroup -AutomationAccountName -ResourceGroupName ``` -## Підвищення привілеїв та постексплуатація +## Підвищення Привілеїв та Постексплуатація {{#ref}} ../az-privilege-escalation/az-automation-accounts-privesc.md @@ -238,4 +238,4 @@ Get-AzAutomationHybridWorkerGroup -AutomationAccountName -R - [https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview) - [https://github.com/rootsecdev/Azure-Red-Team#runbook-automation](https://github.com/rootsecdev/Azure-Red-Team#runbook-automation) -{{#include ../../../../banners/hacktricks-training.md}} +{{#include ../../../banners/hacktricks-training.md}} 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 index 2d8b819bf..7e21a1946 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-container-instances.md +++ b/src/pentesting-cloud/azure-security/az-services/az-container-instances.md @@ -1,12 +1,12 @@ # Az - Container Instances -{{#include ../../../../banners/hacktricks-training.md}} +{{#include ../../../banners/hacktricks-training.md}} ## Основна інформація Azure Container Instances (ACI) надають **безсерверний, за запитом спосіб** запуску **контейнерів** в хмарі Azure. Ви можете **розгорнути** один або кілька контейнерів у групі з **масштабованими обчисленнями**, **мережевими опціями** та гнучкістю підключення до **інших служб Azure** (таких як Storage, Virtual Networks або Container Registries). -Оскільки це **епhemeral** навантаження, вам не потрібно керувати основною інфраструктурою ВМ — Azure займається цим за вас. Однак з точки зору **оборонної безпеки** важливо розуміти, як **дозволи**, **особи**, **мережеві конфігурації** та **журнали** можуть виявити поверхні атаки та потенційні неправильні налаштування. +Оскільки це **епhemeral** навантаження, вам не потрібно керувати основною інфраструктурою ВМ — Azure займається цим за вас. Однак з точки зору **оборонної безпеки** важливо розуміти, як **дозволи**, **ідентичності**, **мережеві конфігурації** та **журнали** можуть виявити поверхні атаки та потенційні неправильні налаштування. ### Конфігурації @@ -19,13 +19,13 @@ Azure Container Instances (ACI) надають **безсерверний, за - **Обмеження CPU та пам'яті** - **Політика перезапуску** - **Запуск з привілегіями** -- **Командний рядок для запуску** +- **Командний рядок для виконання** - ... ## Перерахування > [!WARNING] -> Під час перерахування ACI ви можете виявити чутливі конфігурації, такі як **змінні середовища**, **мережеві деталі** або **керовані особи**. Будьте обережні з їхнім веденням або відображенням. +> При перерахуванні ACI ви можете виявити чутливі конфігурації, такі як **змінні середовища**, **мережеві деталі** або **керовані ідентичності**. Будьте обережні з їхнім веденням журналів або відображенням. ```bash # List all container instances in the subscription az container list diff --git a/src/pentesting-cloud/azure-security/az-services/az-container-registry.md b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md index 75f10ae23..a8f24699b 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-container-registry.md +++ b/src/pentesting-cloud/azure-security/az-services/az-container-registry.md @@ -1,12 +1,12 @@ # Az - Container Registry -{{#include ../../../../banners/hacktricks-training.md}} +{{#include ../../../banners/hacktricks-training.md}} -## Basic Information +## Основна інформація Azure Container Registry (ACR) - це безпечний, приватний реєстр, який дозволяє вам **зберігати, керувати та отримувати доступ до контейнерних зображень в хмарі Azure**. Він безшовно інтегрується з кількома службами Azure, забезпечуючи автоматизовані робочі процеси збірки та розгортання в масштабах. Завдяки таким функціям, як гео-реплікація та сканування вразливостей, ACR допомагає забезпечити безпеку та відповідність корпоративного рівня для контейнеризованих додатків. -### Permissions +### Дозволи Це **різні дозволи** [згідно з документацією](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager), які можуть бути надані над реєстром контейнерів: @@ -20,9 +20,9 @@ Azure Container Registry (ACR) - це безпечний, приватний р Існують також деякі **вбудовані ролі**, які можуть бути призначені, і також можливо створити **кастомні ролі**. -![]() +![](/images/registry_roles.png) -### Authentication +### Аутентифікація > [!WARNING] > Дуже важливо, що навіть якщо ім'я реєстру містить великі літери, ви завжди повинні використовувати **малі літери** для входу, завантаження та витягування зображень. @@ -30,9 +30,9 @@ Azure Container Registry (ACR) - це безпечний, приватний р Існує 4 способи аутентифікації до ACR: - **З Entra ID**: Це **за замовчуванням** спосіб аутентифікації до ACR. Він використовує команду **`az acr login`** для аутентифікації до ACR. Ця команда **зберігає облікові дані** у файлі **`~/.docker/config.json`**. Більше того, якщо ви виконуєте цю команду з середовища без доступу до сокета docker, як у **хмарному терміналі**, можливо використовувати прапорець **`--expose-token`** для отримання **токена** для аутентифікації до ACR. Потім для аутентифікації потрібно використовувати як ім'я користувача `00000000-0000-0000-0000-000000000000`, наприклад: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN` -- **З обліковим записом адміністратора**: Обліковий запис адміністратора за замовчуванням вимкнений, але його можна увімкнути, і тоді буде можливість отримати доступ до реєстру з **ім'ям користувача** та **паролем** адміністратора з повними правами на реєстр. Це все ще підтримується, оскільки деякі служби Azure використовують його. Зверніть увагу, що для цього користувача створюються **2 паролі**, і обидва є дійсними. Ви можете увімкнути його за допомогою `az acr update -n --admin-enabled true`. Зверніть увагу, що ім'я користувача зазвичай є ім'ям реєстру (а не `admin`). +- **З обліковим записом адміністратора**: Обліковий запис адміністратора за замовчуванням вимкнений, але його можна увімкнути, і тоді буде можливість отримати доступ до реєстру з **ім'ям користувача** та **паролем** облікового запису адміністратора з повними правами на реєстр. Це все ще підтримується, оскільки деякі служби Azure його використовують. Зверніть увагу, що для цього користувача створюються **2 паролі**, і обидва є дійсними. Ви можете увімкнути його за допомогою `az acr update -n --admin-enabled true`. Зверніть увагу, що ім'я користувача зазвичай є ім'ям реєстру (а не `admin`). - **З токеном**: Можливо створити **токен** з **конкретною `scope map`** (дозволами) для доступу до реєстру. Потім можливо використовувати це ім'я токена як ім'я користувача та деякий згенерований пароль для аутентифікації до реєстру за допомогою `docker login -u -p aregistry-url>` -- **З Service Principal**: Можливо створити **service principal** і призначити роль, таку як **`AcrPull`**, для витягування зображень. Потім буде можливість **увійти до реєстру**, використовуючи appId SP як ім'я користувача та згенерований секрет як пароль. +- **З сервісним принципалом**: Можливо створити **сервісний принципал** і призначити роль, таку як **`AcrPull`**, для витягування зображень. Потім буде можливість **увійти до реєстру**, використовуючи appId SP як ім'я користувача та згенерований секрет як пароль. Приклад скрипта з [документації](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) для генерації SP з доступом до реєстру: ```bash @@ -67,7 +67,7 @@ echo "Service principal password: $PASSWORD" ### Вебхуки -Можливо **створити вебхуки** всередині реєстрів. У цьому вебхуці потрібно вказати URL, куди **буде надіслано запит щоразу, коли виконується дія push або delete**. Більше того, вебхуки можуть вказувати область, щоб вказати репозиторії (зображення), які будуть підлягати впливу. Наприклад, 'foo:*' означає події під репозиторієм 'foo'. +Можливо **створити вебхуки** всередині реєстрів. У цьому вебхуці потрібно вказати URL, куди **буде надіслано запит щоразу, коли виконується дія push або delete**. Більше того, вебхуки можуть вказувати область, щоб вказати репозиторії (зображення), які будуть підлягати впливу. Наприклад, 'foo:\*' означає події під репозиторієм 'foo'. З точки зору атакуючого цікаво перевірити це **перед виконанням будь-якої дії** в реєстрі та тимчасово видалити його, якщо це необхідно, щоб уникнути виявлення. @@ -94,11 +94,11 @@ az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world ``` Однак це викличе запуски, які не є надто цікавими з точки зору атакуючого, оскільки до них не прикріплено жодної керованої ідентичності. -Однак **tasks** можуть мати **системну та користувацьку керовану ідентичність**. Ці завдання є корисними для **ескалації привілеїв** у контейнері. У розділі ескалації привілеїв можна побачити, як використовувати завдання для ескалації привілеїв. +Однак **tasks** можуть мати прикріплену **системну та користувацьку керовану ідентичність**. Ці завдання є корисними для **ескалації привілеїв** у контейнері. У розділі ескалації привілеїв можна побачити, як використовувати завдання для ескалації привілеїв. ### Cache -Функція кешу дозволяє **завантажувати зображення з зовнішнього репозиторію** та зберігати нові версії в реєстрі. Це вимагає наявності деяких **налаштованих облікових даних**, вибираючи облікові дані з Azure Vault. +Функція кешу дозволяє **завантажувати зображення з зовнішнього репозиторію** та зберігати нові версії в реєстрі. Це вимагає наявності деяких **налаштованих облікових даних**, вибравши облікові дані з Azure Vault. Це дуже цікаво з точки зору атакуючого, оскільки це дозволяє **переходити на зовнішню платформу**, якщо атакуючий має достатні дозволи для доступу до облікових даних, **завантажувати зображення з зовнішнього репозиторію** та налаштування кешу також може бути використано як **механізм збереження**. @@ -143,7 +143,7 @@ az acr cache list --registry # Get cache details az acr cache show --name --registry ``` -## Підвищення привілеїв та постексплуатація +## Підвищення Привілеїв та Після Експлуатації {{#ref}} ../az-privilege-escalation/az-automation-accounts-privesc.md @@ -154,4 +154,4 @@ az acr cache show --name --registry - [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli) - [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager) -{{#include ../../../../banners/hacktricks-training.md}} +{{#include ../../../banners/hacktricks-training.md}} diff --git a/theme/ht_searcher.js b/theme/ht_searcher.js index 1cee01a8c..276bbfe6a 100644 --- a/theme/ht_searcher.js +++ b/theme/ht_searcher.js @@ -471,12 +471,12 @@ window.search = window.search || {}; showResults(true); } - fetch(path_to_root + 'searchindex.json') + fetch('https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.json') .then(response => response.json()) .then(json => init(json)) .catch(error => { // Try to load searchindex.js if fetch failed var script = document.createElement('script'); - script.src = path_to_root + 'searchindex.js'; + script.src = 'https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.js'; script.onload = () => init(window.search); document.head.appendChild(script); });