mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-15 14:23:16 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -8,19 +8,17 @@ Azure Automation Accounts - це хмарні сервіси в Microsoft Azure,
|
||||
|
||||
### Settings
|
||||
|
||||
- **Credentials**: Пароль доступний лише в рамках runbook всередині облікового запису автоматизації, вони використовуються для **безпечного зберігання імен користувачів та паролів**.
|
||||
- **Variables**: Використовуються для зберігання **даних конфігурації**, які можуть бути використані в runbooks. Це також можуть бути чутливі дані, такі як API ключі. Якщо змінна **зберігається в зашифрованому вигляді**, вона доступна лише в рамках runbook всередині облікового запису автоматизації.
|
||||
- **Credentials**: Пароль доступний лише в рамках runbook всередині облікового запису автоматизації, вони використовуються для **зберігання імен користувачів та паролів у безпечному вигляді**.
|
||||
- **Variables**: Використовуються для зберігання **даних конфігурації**, які можуть бути використані в runbooks. Це також може бути чутлива інформація, така як API ключі. Якщо змінна **зберігається в зашифрованому вигляді**, вона доступна лише в рамках runbook всередині облікового запису автоматизації.
|
||||
- **Certificates**: Використовуються для зберігання **сертифікатів**, які можуть бути використані в runbooks.
|
||||
- **Connections**: Використовуються для зберігання **інформації про з'єднання** з зовнішніми сервісами. Це може містити **чутливу інформацію**.
|
||||
- **Network Access**: Може бути встановлено на **публічний** або **приватний**.
|
||||
|
||||
## Runbooks & Jobs
|
||||
### Runbooks & Jobs
|
||||
|
||||
Runbook в Azure Automation - це **скрипт, який автоматично виконує завдання** у вашому хмарному середовищі. Runbooks можуть бути написані на PowerShell, Python або графічних редакторах. Вони допомагають автоматизувати адміністративні завдання, такі як управління ВМ, патчинг або перевірки відповідності.
|
||||
|
||||
У **коді**, розташованому всередині **Runbooks**, можуть міститися **чутливі дані** (такі як креденціали).
|
||||
|
||||
Перейдіть до `Automation Accounts` --> `<Select Automation Account>` --> `Runbooks/Jobs/Hybrid worker groups/Watcher tasks/credentials/variables/certificates/connections`
|
||||
У **коді**, розташованому всередині **Runbooks**, можуть міститися **чутливі дані** (такі як облікові дані).
|
||||
|
||||
**Job - це екземпляр виконання Runbook**. Коли ви запускаєте Runbook, створюється Job для відстеження цього виконання. Кожен job включає:
|
||||
|
||||
@@ -35,18 +33,18 @@ Job містить **вихідні дані** виконання **Runbook**.
|
||||
Існує 3 основні способи виконання Runbook:
|
||||
|
||||
- **Schedules**: Використовуються для **тригера** Runbooks у **вказаний час** або **інтервал**.
|
||||
- **Webhooks**: Це **HTTP кінцеві точки**, які можуть бути використані для **тригера** Runbooks з **зовнішніх сервісів**. Зверніть увагу, що URL вебхука **не видимий** після створення.
|
||||
- **Webhooks**: Це **HTTP кінцеві точки**, які можуть бути використані для **тригера** Runbooks з **зовнішніх сервісів**. Зверніть увагу, що URL вебхука **не видно** після створення.
|
||||
- **Manual Trigger**: Ви можете **вручну запустити** Runbook з Azure Portal та з CLI.
|
||||
|
||||
### Source Control
|
||||
|
||||
Дозволяє імпортувати Runbooks з **Github, Azure Devops (Git) та Azure Devops (TFVC)**. Можна вказати, щоб опублікувати Runbooks з репозиторію в обліковий запис автоматизації Azure, а також можна вказати, щоб **синхронізувати зміни з репозиторію** в обліковий запис автоматизації Azure.
|
||||
Це дозволяє імпортувати Runbooks з **Github, Azure Devops (Git) та Azure Devops (TFVC)**. Можна вказати, щоб опублікувати Runbooks з репозиторію в обліковий запис автоматизації Azure, а також можна вказати, щоб **синхронізувати зміни з репозиторію** в обліковий запис автоматизації Azure.
|
||||
|
||||
Коли синхронізація увімкнена, у **репозиторії 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`**.
|
||||
Для того, щоб налаштований контроль джерела працював, **Azure Automation Account** повинен мати керовану ідентичність (системну або користувацьку) з роллю **`Contributor`**. Більше того, щоб призначити користувацьку керовану ідентичність обліковому запису автоматизації, потрібно вказати ідентифікатор клієнта користувацької MI у змінній **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
### Runtime Environments
|
||||
|
||||
@@ -59,20 +57,20 @@ Job містить **вихідні дані** виконання **Runbook**.
|
||||
- **Python 3.8**
|
||||
- **Python 2.7**
|
||||
|
||||
Однак також можливо **створити свої власні середовища**, використовуючи одне з цих як основу. У випадку з Python можливо завантажити `.whl` пакети в середовище, яке буде використовуватися. У випадку з PowerShell можливо завантажити `.zip` пакети з модулями, які потрібно мати в середовищі виконання.
|
||||
Однак також можливо **створити свої власні середовища**, використовуючи одне з цих як основу. У випадку з Python можливо завантажити пакети `.whl` в середовище, яке буде використовуватися. У випадку з PowerShell можливо завантажити пакети `.zip` з модулями, які потрібно мати в середовищі виконання.
|
||||
|
||||
### 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** в **Windows Hybrid Worker**, ви будете виконувати **произвольні команди** всередині зовнішньої машини як **System** (гарна техніка повороту).
|
||||
Отже, якщо ви можете вибрати виконання **Runbook** у **Гібридному працівнику**, ви будете виконувати **произвольні команди** всередині зовнішньої машини як **System** (гарна техніка повороту).
|
||||
|
||||
Більше того, якщо гібридний працівник працює в Azure з іншими прикріпленими керованими ідентичностями, runbook зможе отримати доступ до **керованої ідентичності runbook та всіх керованих ідентичностей ВМ з сервісу метаданих**.
|
||||
Більше того, якщо гібридний працівник працює в Azure з іншими прикріпленими керованими ідентичностями, runbook зможе отримати доступ до **керованої ідентичності runbook та всіх керованих ідентичностей ВМ з метаданих сервісу**.
|
||||
|
||||
> [!TIP]
|
||||
> Пам'ятайте, що **сервіс метаданих** має інший URL (**`http://169.254.169.254`**), ніж сервіс, з якого отримують токен керованих ідентичностей облікового запису автоматизації (**`IDENTITY_ENDPOINT`**).
|
||||
@@ -170,7 +168,7 @@ az rest --method GET \
|
||||
|
||||
# Get the source control setting of an automation account (if any)
|
||||
## inside the output it's possible to see if the autoSync is enabled, if the publishRunbook is enabled and the repo URL
|
||||
aaz automation source-control list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
|
||||
az automation source-control list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
|
||||
|
||||
# Get custom runtime environments
|
||||
## Check in defaultPackages for custom ones, by default Python envs won't have anything here and PS1 envs will have "az" and "azure cli"
|
||||
@@ -228,7 +226,7 @@ Get-AzAutomationAccount | Get-AzAutomationPython3Package
|
||||
# List hybrid workers
|
||||
Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME>
|
||||
```
|
||||
## Підвищення привілеїв та постексплуатація
|
||||
## Підвищення Привілеїв та Постексплуатація
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-automation-accounts-privesc.md
|
||||
|
||||
Reference in New Issue
Block a user