diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index c39a9cc91..e3e18e17d 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -3,8 +3,8 @@
# 👽 Welcome!
- [HackTricks Cloud](README.md)
-- [About the Author$$external:https://book.hacktricks.xyz/welcome/about-the-author$$]()
-- [HackTricks Values & faq$$external:https://book.hacktricks.xyz/welcome/hacktricks-values-and-faq$$]()
+- [About the Author$$external:https://book.hacktricks.wiki/en/welcome/about-the-author.html$$]()
+- [HackTricks Values & faq$$external:https://book.hacktricks.wiki/en/welcome/hacktricks-values-and-faq.html$$]()
# 🏭 Pentesting CI/CD
@@ -408,12 +408,15 @@
- [Az - ARM Templates / Deployments](pentesting-cloud/azure-security/az-services/az-arm-templates.md)
- [Az - Automation Accounts](pentesting-cloud/azure-security/az-services/az-automation-accounts.md)
- [Az - Azure App Services](pentesting-cloud/azure-security/az-services/az-app-services.md)
+ - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md)
- [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md)
- [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md)
- [Az - Function Apps](pentesting-cloud/azure-security/az-services/az-function-apps.md)
- [Az - Key Vault](pentesting-cloud/azure-security/az-services/az-keyvault.md)
- [Az - Logic Apps](pentesting-cloud/azure-security/az-services/az-logic-apps.md)
- [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md)
+ - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md)
+ - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md)
- [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue-enum.md)
- [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus-enum.md)
- [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md)
@@ -442,9 +445,12 @@
- [Az - Primary Refresh Token (PRT)](pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md)
- [Az - Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/README.md)
- [Az - Blob Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md)
+ - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-post-exploitation.md)
- [Az - File Share Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md)
- [Az - Function Apps Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-function-apps-post-exploitation.md)
- [Az - Key Vault Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md)
+ - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql-post-exploitation.md)
+ - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql-post-exploitation.md)
- [Az - Queue Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md)
- [Az - Service Bus Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md)
- [Az - Table Storage Post Exploitation](pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md)
@@ -454,17 +460,20 @@
- [Az - Azure IAM Privesc (Authorization)](pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md)
- [Az - App Services Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md)
- [Az - Automation Accounts Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md)
+ - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB-privesc.md)
- [Az - EntraID Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md)
- [Az - Conditional Access Policies & MFA Bypass](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md)
- [Az - Dynamic Groups Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md)
- [Az - Functions App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md)
- [Az - Key Vault Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md)
+ - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql-privesc.md)
+ - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql-privesc.md)
- [Az - Queue Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md)
- [Az - Service Bus Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md)
- - [Az - Virtual Machines & Network Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md)
- [Az - Static Web App Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-static-web-apps-privesc.md)
- [Az - Storage Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md)
- [Az - SQL Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md)
+ - [Az - Virtual Machines & Network Privesc](pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md)
- [Az - Persistence](pentesting-cloud/azure-security/az-persistence/README.md)
- [Az - Queue Storage Persistence](pentesting-cloud/azure-security/az-persistence/az-queue-persistance.md)
- [Az - VMs Persistence](pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md)
@@ -501,8 +510,8 @@
# 🛫 Pentesting Network Services
-- [HackTricks Pentesting Network$$external:https://book.hacktricks.xyz/generic-methodologies-and-resources/pentesting-network$$]()
-- [HackTricks Pentesting Services$$external:https://book.hacktricks.xyz/network-services-pentesting/pentesting-ssh$$]()
+- [HackTricks Pentesting Network$$external:https://book.hacktricks.wiki/en/generic-methodologies-and-resources/pentesting-network/index.html$$]()
+- [HackTricks Pentesting Services$$external:https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ssh.html$$]()
diff --git a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
index fccc9073b..788730958 100644
--- a/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
+++ b/src/pentesting-ci-cd/cloudflare-security/cloudflare-domains.md
@@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
-У кожному TLD, налаштованому в Cloudflare, є деякі **загальні налаштування та сервіси**, які можна налаштувати. На цій сторінці ми будемо **аналізувати налаштування, пов'язані з безпекою, кожного розділу:**
+В кожному TLD, налаштованому в Cloudflare, є деякі **загальні налаштування та сервіси**, які можна налаштувати. На цій сторінці ми будемо **аналізувати налаштування, пов'язані з безпекою, кожного розділу:**
@@ -24,13 +24,13 @@
- [ ] Перевірити, що **DNSSEC** **увімкнено**
- [ ] Перевірити, що **CNAME Flattening** **використовується** в **усіх CNAME**
- Це може бути корисно для **приховування вразливостей захоплення субдоменів** та покращення часу завантаження
-- [ ] Перевірити, що домени [**не вразливі до спуфінгу**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-smtp#mail-spoofing)
+- [ ] Перевірити, що домени [**не вразливі до спуфінгу**](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html#mail-spoofing)
### **Електронна пошта**
TODO
-### Спектр
+### Spectrum
TODO
@@ -38,8 +38,8 @@ TODO
#### **Огляд**
-- [ ] **Шифрування SSL/TLS** має бути **Повним** або **Повним (Суворим)**. Будь-який інший варіант на деякому етапі відправить **трафік у відкритому тексті**.
-- [ ] **Рекомендатор SSL/TLS** має бути увімкнено
+- [ ] **SSL/TLS шифрування** має бути **Повним** або **Повним (Суворим)**. Будь-який інший варіант на деякому етапі відправить **трафік у відкритому тексті**.
+- [ ] **SSL/TLS Рекомендатор** має бути увімкнено
#### Сертифікати Edge
@@ -65,7 +65,7 @@ TODO
#### **Захист DDoS CloudFlare**
-- Якщо можливо, увімкніть **Bot Fight Mode** або **Super Bot Fight Mode**. Якщо ви захищаєте якийсь API, доступний програмно (наприклад, з JS фронтенд-сторінки). Ви можете не мати можливості увімкнути це, не зламавши цей доступ.
+- Якщо можливо, увімкніть **Bot Fight Mode** або **Super Bot Fight Mode**. Якщо ви захищаєте якийсь API, доступний програмно (наприклад, з JS фронтенд-сторінки). Ви можете не зможете увімкнути це, не зламавши цей доступ.
- У **WAF**: Ви можете створити **обмеження швидкості за URL-адресою** або для **перевірених ботів** (правила обмеження швидкості), або **блокувати доступ** на основі IP, Cookie, реферера...). Таким чином, ви можете блокувати запити, які не надходять з веб-сторінки або не мають cookie.
- Якщо атака з **перевіреного бота**, принаймні **додайте обмеження швидкості** для ботів.
- Якщо атака на **конкретний шлях**, як механізм запобігання, додайте **обмеження швидкості** в цьому шляху.
@@ -74,8 +74,8 @@ TODO
- У розділі **Інструменти** ви можете **блокувати або ставити виклик конкретним IP** та **агентам користувача.**
- У DDoS ви можете **перезаписати деякі правила, щоб зробити їх більш обмежувальними**.
- **Налаштування**: Встановіть **Security Level** на **Високий** та на **Під атакою**, якщо ви під атакою, і щоб **Browser Integrity Check був увімкнений**.
-- У Cloudflare Domains -> Analytics -> Security -> Перевірте, чи **увімкнено обмеження швидкості**
-- У Cloudflare Domains -> Security -> Events -> Перевірте наявність **виявлених шкідливих подій**
+- У Cloudflare Domains -> Аналітика -> Безпека -> Перевірте, чи **обмеження швидкості** увімкнено
+- У Cloudflare Domains -> Безпека -> Події -> Перевірте наявність **виявлених шкідливих подій**
### Доступ
@@ -93,7 +93,7 @@ _Я не зміг знайти жодної опції, пов'язаної з
### **Маршрути Workers**
-_Ви вже повинні були перевірити_ [_cloudflare workers_](./#workers)
+_Ви вже повинні були перевірити_ [_cloudflare workers_](#workers)
### Правила
@@ -119,7 +119,7 @@ TODO
### Scrape Shield
-- [ ] Перевірте, що **обфускація електронної пошти** **увімкнена**
+- [ ] Перевірте, що **обфускація адрес електронної пошти** **увімкнена**
- [ ] Перевірте, що **виключення на стороні сервера** **увімкнені**
### **Zaraz**
diff --git a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md
index e6e71ed56..a73b54ca9 100644
--- a/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md
+++ b/src/pentesting-ci-cd/github-security/abusing-github-actions/README.md
@@ -6,24 +6,24 @@
На цій сторінці ви знайдете:
-- **резюме всіх впливів** атаки, якщо зловмисник зможе отримати доступ до Github Action
+- **резюме всіх наслідків** для зловмисника, який зміг отримати доступ до Github Action
- Різні способи **отримати доступ до дії**:
- Маючи **дозволи** на створення дії
- Зловживання тригерами, пов'язаними з **pull request**
- Зловживання **іншими зовнішніми техніками доступу**
-- **Півотинг** з уже скомпрометованого репозиторію
-- Нарешті, розділ про **техніки пост-експлуатації для зловживання дією зсередини** (оскільки згадані впливи)
+- **Півотування** з уже скомпрометованого репозиторію
+- Нарешті, розділ про **техніки пост-експлуатації для зловживання дією зсередини** (оскільки згадані наслідки)
-## Резюме впливів
+## Резюме наслідків
Для введення про [**Github Actions перевірте основну інформацію**](../basic-github-information.md#github-actions).
Якщо ви можете **виконувати довільний код у GitHub Actions** в межах **репозиторію**, ви можете:
-- **Викрасти секрети**, змонтовані в конвеєрі, та **зловживати привілеями конвеєра** для отримання несанкціонованого доступу до зовнішніх платформ, таких як AWS та GCP.
+- **Викрасти секрети**, змонтовані до конвеєра, та **зловживати привілеями конвеєра** для отримання несанкціонованого доступу до зовнішніх платформ, таких як AWS та GCP.
- **Скомпрометувати розгортання** та інші **артефакти**.
- Якщо конвеєр розгортає або зберігає активи, ви можете змінити кінцевий продукт, що дозволяє здійснити атаку на ланцюг постачання.
-- **Виконувати код у кастомних робітниках** для зловживання обчислювальною потужністю та півотингу до інших систем.
+- **Виконувати код у кастомних робітниках** для зловживання обчислювальною потужністю та півотування до інших систем.
- **Перезаписати код репозиторію**, залежно від дозволів, пов'язаних з `GITHUB_TOKEN`.
## GITHUB_TOKEN
@@ -32,10 +32,10 @@
-Цей токен є тим самим, що і **Github Application буде використовувати**, тому він може отримати доступ до тих самих кінцевих точок: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps)
+Цей токен є тим самим, який використовуватиме **Github Application**, тому він може отримати доступ до тих самих кінцевих точок: [https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps](https://docs.github.com/en/rest/overview/endpoints-available-for-github-apps)
> [!WARNING]
-> Github має випустити [**потік**](https://github.com/github/roadmap/issues/74), який **дозволяє крос-репозиторний** доступ у GitHub, щоб репозиторій міг отримати доступ до інших внутрішніх репозиторіїв, використовуючи `GITHUB_TOKEN`.
+> Github повинен випустити [**потік**](https://github.com/github/roadmap/issues/74), який **дозволяє крос-репозиторний** доступ у GitHub, щоб репозиторій міг отримати доступ до інших внутрішніх репозиторіїв, використовуючи `GITHUB_TOKEN`.
Ви можете побачити можливі **дозволи** цього токена за адресою: [https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
@@ -143,7 +143,7 @@ secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
> [!NOTE]
> Це був би найпростіший спосіб скомпрометувати Github дії, оскільки цей випадок передбачає, що у вас є доступ до **створення нового репозиторію в організації** або є **права на запис у репозиторії**.
>
-> Якщо ви в цьому сценарії, ви можете просто перевірити [техніки постексплуатації](./#post-exploitation-techniques-from-inside-an-action).
+> Якщо ви в цьому сценарії, ви можете просто перевірити [техніки постексплуатації](#post-exploitation-techniques-from-inside-an-action).
### Виконання з створення репозиторію
@@ -167,25 +167,25 @@ branches:
```
---
-## Витягнуте виконання
+## Forked Execution
> [!NOTE]
-> Існують різні тригери, які можуть дозволити зловмиснику **виконати Github Action з іншого репозиторію**. Якщо ці тригери налаштовані неналежним чином, зловмисник може зуміти їх скомпрометувати.
+> Є різні тригери, які можуть дозволити зловмиснику **виконати Github Action з іншого репозиторію**. Якщо ці тригери налаштовані неналежним чином, зловмисник може зуміти їх скомпрометувати.
### `pull_request`
-Тригер робочого процесу **`pull_request`** буде виконувати робочий процес щоразу, коли отримується запит на злиття з деякими винятками: за замовчуванням, якщо це **перший раз**, коли ви **співпрацюєте**, деякий **керівник** повинен **схвалити** **виконання** робочого процесу:
+Тригер робочого процесу **`pull_request`** буде виконувати робочий процес щоразу, коли отримується запит на злиття з деякими винятками: за замовчуванням, якщо це **перше** співробітництво, деякий **керівник** повинен **схвалити** **виконання** робочого процесу:
> [!NOTE]
-> Оскільки **за замовчуванням обмеження** стосується **нових** учасників, ви можете внести **виправлення дійсної помилки/друкарської помилки** і потім надіслати **інші PR, щоб зловживати вашими новими привілеями `pull_request`**.
+> Оскільки **за замовчуванням обмеження** стосується **перших** учасників, ви можете внести **виправлення дійсної помилки/друкарської помилки** і потім надіслати **інші PR, щоб зловживати вашими новими привілеями `pull_request`**.
>
> **Я це протестував, і це не працює**: ~~Інший варіант - створити обліковий запис з ім'ям когось, хто вніс внесок у проект і видалив свій обліковий запис.~~
Більше того, за замовчуванням **запобігає запису прав** і **доступу до секретів** цільового репозиторію, як зазначено в [**документації**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories):
-> За винятком `GITHUB_TOKEN`, **секрети не передаються виконавцю**, коли робочий процес запускається з **вилученого** репозиторію. **`GITHUB_TOKEN` має права лише на читання** у запитах на злиття **з вилучених репозиторіїв**.
+> За винятком `GITHUB_TOKEN`, **секрети не передаються виконавцю**, коли робочий процес запускається з **форкнутого** репозиторію. **`GITHUB_TOKEN` має права лише на читання** у запитах на злиття **з форкнутими репозиторіями**.
Зловмисник може змінити визначення Github Action, щоб виконати довільні дії та додати довільні дії. Однак він не зможе вкрасти секрети або перезаписати репозиторій через зазначені обмеження.
@@ -209,7 +209,7 @@ branches:
Тригер [**workflow_run**](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run) дозволяє запустити робочий процес з іншого, коли він `завершено`, `запитано` або `в процесі`.
-У цьому прикладі робочий процес налаштовано на виконання після завершення окремого "Запустити тести" робочого процесу:
+У цьому прикладі робочий процес налаштовано на виконання після завершення окремого робочого процесу "Запустити тести":
```yaml
on:
workflow_run:
@@ -217,7 +217,7 @@ workflows: [Run Tests]
types:
- completed
```
-Більше того, відповідно до документації: Робочий процес, розпочатий подією `workflow_run`, може **доступатися до секретів і записувати токени, навіть якщо попередній робочий процес не**.
+Крім того, відповідно до документації: Робочий процес, розпочатий подією `workflow_run`, може **доступатися до секретів і записувати токени, навіть якщо попередній робочий процес не був**.
Такий робочий процес може бути атакований, якщо він **залежить** від **робочого процесу**, який може бути **запущений** зовнішнім користувачем через **`pull_request`** або **`pull_request_target`**. Кілька вразливих прикладів можна [**знайти в цьому блозі**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability)**.** Перший з них полягає в тому, що **`workflow_run`** запущений робочий процес завантажує код атакуючого: `${{ github.event.pull_request.head.sha }}`\
Другий полягає в **передачі** артефакту з **недовіреного** коду до робочого процесу **`workflow_run`** та використанні вмісту цього артефакту таким чином, що він стає **вразливим до RCE**.
@@ -230,18 +230,18 @@ TODO: Перевірити, чи при виконанні з `pull_request` в
## Зловживання виконанням з форку
-Ми згадали всі способи, якими зовнішній атакуючий може змусити робочий процес github виконатися, тепер давайте розглянемо, як ці виконання, якщо погано налаштовані, можуть бути зловживані:
+Ми згадали всі способи, якими зовнішній атакуючий може змусити робочий процес GitHub виконуватися, тепер давайте розглянемо, як ці виконання, якщо погано налаштовані, можуть бути зловживані:
### Виконання недовіреного чекауту
-У випадку **`pull_request`** робочий процес буде виконуватися в **контексті PR** (тому він виконає **код шкідливого PR**), але хтось повинен **спочатку його авторизувати**, і він буде виконуватися з деякими [обмеженнями](./#pull_request).
+У випадку **`pull_request`** робочий процес буде виконуватися в **контексті PR** (тому він виконає **код шкідливого PR**), але хтось повинен **спочатку його авторизувати**, і він буде виконуватися з деякими [обмеженнями](#pull_request).
У випадку робочого процесу, що використовує **`pull_request_target` або `workflow_run`**, який залежить від робочого процесу, що може бути запущений з **`pull_request_target` або `pull_request`**, код з оригінального репозиторію буде виконуватися, тому **атакуючий не може контролювати виконуваний код**.
> [!CAUTION]
> Однак, якщо **дія** має **явний чекаут PR**, який **отримає код з PR** (а не з бази), вона використовуватиме код, контрольований атакуючим. Наприклад (перевірте рядок 12, де завантажується код PR):
-
# НЕБЕЗПЕЧНО. Наведено лише як приклад.
+
# INSECURE. Provided as an example only.
on:
pull_request_target
@@ -266,17 +266,17 @@ arg1: ${{ secrets.supersecret }}
- uses: fakerepo/comment-on-pr@v1
with:
message: |
-Дякую!
+Thank you!
-Потенційно **недовірений код виконується під час `npm install` або `npm build`**, оскільки скрипти збірки та згадані **пакети контролюються автором PR**.
+Потенційно **недовірений код виконується під час `npm install` або `npm build`**, оскільки скрипти збірки та посилання на **пакети контролюються автором PR**.
> [!WARNING]
-> Github dork для пошуку вразливих дій: `event.pull_request pull_request_target extension:yml`, однак існують різні способи налаштування робочих процесів для безпечного виконання, навіть якщо дія налаштована небезпечно (наприклад, використовуючи умовні оператори про те, хто є актором, що генерує PR).
+> GitHub dork для пошуку вразливих дій: `event.pull_request pull_request_target extension:yml`, однак існують різні способи налаштування робочих процесів для безпечного виконання, навіть якщо дія налаштована ненадійно (наприклад, використовуючи умовності про те, хто є актором, що генерує PR).
### Впровадження скриптів у контексті
-Зверніть увагу, що є певні [**контексти github**](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context), значення яких **контролюються** **користувачем**, що створює PR. Якщо github action використовує ці **дані для виконання чого-небудь**, це може призвести до **випадкового виконання коду:**
+Зверніть увагу, що є певні [**контексти GitHub**](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context), значення яких **контролюються** **користувачем**, що створює PR. Якщо дія GitHub використовує ці **дані для виконання чого-небудь**, це може призвести до **виконання довільного коду:**
{{#ref}}
gh-actions-context-script-injections.md
@@ -286,17 +286,17 @@ gh-actions-context-script-injections.md
З документації: Ви можете зробити **змінну середовища доступною для будь-яких наступних кроків** у робочому процесі, визначивши або оновивши змінну середовища та записавши це у файл середовища **`GITHUB_ENV`**.
-Якщо атакуючий може **впровадити будь-яке значення** в цю **змінну** середовища, він може впровадити змінні середовища, які можуть виконувати код у наступних кроках, таких як **LD_PRELOAD** або **NODE_OPTIONS**.
+Якщо атакуючий може **впровадити будь-яке значення** в цю **змінну** середовища, він може впровадити змінні середовища, які можуть виконувати код у наступних кроках, такі як **LD_PRELOAD** або **NODE_OPTIONS**.
Наприклад ([**це**](https://www.legitsecurity.com/blog/github-privilege-escalation-vulnerability-0) і [**це**](https://www.legitsecurity.com/blog/-how-we-found-another-github-action-environment-injection-vulnerability-in-a-google-project)), уявіть робочий процес, який довіряє завантаженому артефакту для зберігання його вмісту в змінній середовища **`GITHUB_ENV`**. Атакуючий може завантажити щось на зразок цього, щоб скомпрометувати його:
-### Вразливі дії третьої сторони Github
+### Вразливі сторонні дії GitHub
#### [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact)
-Як згадано в [**цьому блозі**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), ця дія Github дозволяє отримувати артефакти з різних робочих процесів і навіть репозиторіїв.
+Як згадувалося в [**цьому блозі**](https://www.legitsecurity.com/blog/github-actions-that-open-the-door-to-cicd-pipeline-attacks), ця дія GitHub дозволяє отримувати артефакти з різних робочих процесів і навіть репозиторіїв.
Проблема в тому, що якщо параметр **`path`** не встановлений, артефакт витягується в поточний каталог, і він може перезаписати файли, які можуть бути пізніше використані або навіть виконані в робочому процесі. Тому, якщо артефакт вразливий, атакуючий може зловживати цим, щоб скомпрометувати інші робочі процеси, які довіряють артефакту.
@@ -342,14 +342,14 @@ path: ./script.py
## Інший зовнішній доступ
-### Викрадення видаленого репозиторію простору імен
+### Викрадення видаленого простору імен репозиторію
Якщо обліковий запис змінює своє ім'я, інший користувач може зареєструвати обліковий запис з цим ім'ям через деякий час. Якщо репозиторій мав **менше 100 зірок до зміни імені**, Github дозволить новому зареєстрованому користувачу з таким же ім'ям створити **репозиторій з таким же ім'ям**, як і той, що був видалений.
> [!CAUTION]
> Тому, якщо дія використовує репозиторій з неіснуючого облікового запису, все ще можливо, що зловмисник може створити цей обліковий запис і скомпрометувати дію.
-Якщо інші репозиторії використовували **залежності з репозиторіїв цього користувача**, зловмисник зможе їх викрасти. Ось більш детальне пояснення: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/)
+Якщо інші репозиторії використовували **залежності з репозиторіїв цього користувача**, зловмисник зможе їх викрасти. Тут ви маєте більш детальне пояснення: [https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/](https://blog.nietaanraken.nl/posts/gitub-popular-repository-namespace-retirement-bypass/)
---
@@ -421,6 +421,8 @@ secret_myql_pass: ${{secrets.MYSQL_PASSWORD}}
secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
```
+
+
Отримати зворотний шелл з секретами
@@ -450,7 +452,7 @@ secret_postgress_pass: ${{secrets.POSTGRESS_PASSWORDyaml}}
- ```bash
cat /home/runner/work/_temp/*
```
-- Для JavaScript дій секрети передаються через змінні середовища
+- Для JavaScript дій секрети передаються через змінні середовища.
- ```bash
ps axe | grep node
```
@@ -464,9 +466,9 @@ key: ${{ secrets.PUBLISH_KEY }}
### Зловживання самостійно хостованими виконавцями
-Спосіб знайти, які **Github Actions виконуються в не-Github інфраструктурі**, - це шукати **`runs-on: self-hosted`** в конфігураційному yaml файлі Github Action.
+Спосіб знайти, які **Github Actions виконуються в не-Github інфраструктурі**, - це шукати **`runs-on: self-hosted`** у конфігураційному yaml файлі Github Action.
-**Самостійно хостовані** виконавці можуть мати доступ до **додаткової чутливої інформації**, до інших **мережевих систем** (вразливі кінцеві точки в мережі? служба метаданих?) або, навіть якщо вони ізольовані та знищені, **більше ніж одна дія може виконуватися одночасно** і зловмисна може **вкрасти секрети** іншої.
+**Самостійно хостовані** виконавці можуть мати доступ до **додаткової чутливої інформації**, до інших **мережевих систем** (вразливі кінцеві точки в мережі? служба метаданих?) або, навіть якщо вони ізольовані та знищені, **більше ніж одна дія може виконуватися одночасно** і зловмисна може **викрасти секрети** іншої.
У самостійно хостованих виконавцях також можливо отримати **секрети з процесу \_Runner.Listener**\_\*\* який міститиме всі секрети робочих процесів на будь-якому етапі, скидаючи його пам'ять:
```bash
@@ -482,7 +484,7 @@ sudo gcore -o k.dump "$(ps ax | grep 'Runner.Listener' | head -n 1 | awk '{ prin
-Github Action Build & Push Docker Image
+Github Action Build & Push Docker Image
```yaml
[...]
@@ -523,7 +525,7 @@ docker pull ghcr.io//:
Тоді користувач може шукати **викрадені секрети в шарах Docker-образу:**
{{#ref}}
-https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
+https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.html
{{#endref}}
### Чутлива інформація в журналах Github Actions
@@ -534,7 +536,7 @@ https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-m
(Техніка з [**тут**](https://divyanshu-mehta.gitbook.io/researchs/hijacking-cloud-ci-cd-systems-for-fun-and-profit)) По-перше, будь-який PR, що подається, чітко видимий для публіки в Github і для цільового облікового запису GitHub. У GitHub за замовчуванням ми **не можемо видалити PR з інтернету**, але є нюанс. Для облікових записів GitHub, які **припинені** GitHub, всі їхні **PR автоматично видаляються** і зникають з інтернету. Тож, щоб приховати свою активність, вам потрібно або отримати **припинення облікового запису GitHub, або отримати позначку на вашому обліковому записі**. Це **сховає всі ваші активності** на GitHub з інтернету (по суті видалить всі ваші експлуатаційні PR)
-Організація в GitHub дуже активно повідомляє про облікові записи в GitHub. Все, що вам потрібно зробити, це поділитися "деякими речами" в Issue, і вони подбають про те, щоб ваш обліковий запис був припинений протягом 12 годин :p і ось, ви зробили свою експлуатацію невидимою на github.
+Організація в GitHub дуже активно повідомляє про облікові записи в GitHub. Все, що вам потрібно зробити, це поділитися "деякими речами" в Issue, і вони подбають про те, щоб ваш обліковий запис був припинений за 12 годин :p і ось, ви зробили свою експлуатацію невидимою на github.
> [!WARNING]
> Єдиний спосіб для організації дізнатися, що вони стали мішенню, - це перевірити журнали GitHub з SIEM, оскільки з інтерфейсу GitHub PR буде видалено.
diff --git a/src/pentesting-cloud/aws-security/README.md b/src/pentesting-cloud/aws-security/README.md
index d68052293..7db737312 100644
--- a/src/pentesting-cloud/aws-security/README.md
+++ b/src/pentesting-cloud/aws-security/README.md
@@ -4,9 +4,9 @@
## Основна інформація
-**Перед початком тестування на проникнення** в **AWS** середовище є кілька **основних речей, які вам потрібно знати** про те, як працює AWS, щоб допомогти вам зрозуміти, що потрібно робити, як знаходити неправильні налаштування та як їх експлуатувати.
+**Перед початком пентестингу** середовища **AWS** є кілька **основних речей, які вам потрібно знати** про те, як працює AWS, щоб допомогти вам зрозуміти, що потрібно робити, як знаходити неправильні налаштування та як їх експлуатувати.
-Концепції, такі як ієрархія організації, IAM та інші основні концепції, пояснюються в:
+Концепції, такі як ієрархія організації, IAM та інші базові концепції, пояснюються в:
{{#ref}}
aws-basic-information/
@@ -29,21 +29,21 @@ aws-basic-information/
## Методологія AWS Pentester/Red Team
-Для аудиту AWS середовища дуже важливо знати: які **послуги використовуються**, що **експонується**, хто має **доступ** до чого, і як внутрішні AWS послуги та **зовнішні послуги** з'єднані.
+Для аудиту середовища AWS дуже важливо знати: які **послуги використовуються**, що **експонується**, хто має **доступ** до чого, і як внутрішні AWS послуги та **зовнішні послуги** з'єднані.
-З точки зору Red Team, **перший крок до компрометації AWS середовища** - це отримати деякі **облікові дані**. Ось кілька ідей, як це зробити:
+З точки зору Red Team, **перший крок до компрометації середовища AWS** - це отримати деякі **облікові дані**. Ось кілька ідей, як це зробити:
- **Витоки** в github (або подібних) - OSINT
- **Соціальна** інженерія
- Повторне використання **паролів** (витоки паролів)
- Вразливості в AWS-розміщених додатках
-- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) з доступом до метаданих
+- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) з доступом до метаданих
- **Читання локальних файлів**
- `/home/USERNAME/.aws/credentials`
- `C:\Users\USERNAME\.aws\credentials`
- 3-ті сторони **зламані**
-- **Внутрішній** працівник
-- [**Cognito** ](aws-services/aws-cognito-enum/#cognito)облікові дані
+- **Внутрішній** співробітник
+- [**Cognito** ](aws-services/aws-cognito-enum/index.html#cognito)облікові дані
Або шляхом **компрометації неавтентифікованої служби**, що експонується:
@@ -67,12 +67,12 @@ aws-permissions-for-a-pentest.md
Якщо ви знайшли SSRF на машині всередині AWS, перевірте цю сторінку для трюків:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
+https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
### Whoami
-Однією з перших речей, які вам потрібно знати, є те, хто ви є (в якому обліковому записі ви знаходитесь та інша інформація про AWS середовище):
+Однією з перших речей, які вам потрібно знати, є те, хто ви (в якому обліковому записі ви знаходитесь та інша інформація про середовище AWS):
```bash
# Easiest way, but might be monitored?
aws sts get-caller-identity
@@ -92,18 +92,18 @@ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic
> Зверніть увагу, що компанії можуть використовувати **canary tokens** для виявлення, коли **токени крадуться та використовуються**. Рекомендується перевірити, чи є токен canary token, перш ніж його використовувати.\
> Для отримання додаткової інформації [**перевірте цю сторінку**](aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md#honeytokens-bypass).
-### Перерахування організацій
+### Org Enumeration
{{#ref}}
aws-services/aws-organizations-enum.md
{{#endref}}
-### Перерахування IAM
+### IAM Enumeration
-Якщо у вас достатньо прав, **перевірка привілеїв кожної сутності всередині облікового запису AWS** допоможе вам зрозуміти, що ви та інші ідентичності можете робити і як **підвищити привілеї**.
+Якщо у вас достатньо прав, **перевірка привілеїв кожної сутності в обліковому записі AWS** допоможе вам зрозуміти, що ви та інші ідентичності можете робити і як **підвищити привілеї**.
-Якщо у вас недостатньо прав для перерахування IAM, ви можете **викрасти їх за допомогою брутфорсу**, щоб їх виявити.\
-Перевірте **як виконати перерахування та брутфорс** в:
+Якщо у вас недостатньо прав для перерахунку IAM, ви можете **викрасти їх за допомогою брутфорсу**, щоб їх виявити.\
+Перевірте **як виконати нумерацію та брутфорс** в:
{{#ref}}
aws-services/aws-iam-enum.md
@@ -111,17 +111,17 @@ aws-services/aws-iam-enum.md
> [!NOTE]
> Тепер, коли ви **маєте деяку інформацію про свої облікові дані** (і якщо ви червона команда, сподіваюся, ви **не були виявлені**). Час з'ясувати, які сервіси використовуються в середовищі.\
-> У наступному розділі ви можете перевірити деякі способи **перерахування деяких загальних сервісів.**
+> У наступному розділі ви можете перевірити деякі способи **перерахунку деяких загальних сервісів.**
-## Перерахування сервісів, пост-експлуатація та стійкість
+## Services Enumeration, Post-Exploitation & Persistence
-AWS має вражаючу кількість сервісів, на наступній сторінці ви знайдете **основну інформацію, перерахування** шпаргалок\*\*,\*\* як **уникнути виявлення**, отримати **стійкість** та інші **пост-експлуатаційні** трюки про деякі з них:
+AWS має вражаючу кількість сервісів, на наступній сторінці ви знайдете **базову інформацію, нумерацію** cheatsheets\*\*,\*\* як **уникнути виявлення**, отримати **постійність** та інші **післяексплуатаційні** трюки про деякі з них:
{{#ref}}
aws-services/
{{#endref}}
-Зверніть увагу, що вам **не потрібно** виконувати всю роботу **вручну**, нижче в цьому пості ви можете знайти **розділ про** [**автоматичні інструменти**](./#automated-tools).
+Зверніть увагу, що вам **не потрібно** виконувати всю роботу **вручну**, нижче в цьому пості ви можете знайти **розділ про** [**автоматичні інструменти**](#automated-tools).
Більше того, на цьому етапі ви могли виявити **більше сервісів, доступних для неавтентифікованих користувачів**, ви можете мати можливість їх експлуатувати:
@@ -129,43 +129,43 @@ aws-services/
aws-unauthenticated-enum-access/
{{#endref}}
-## Підвищення привілеїв
+## Privilege Escalation
-Якщо ви можете **перевірити принаймні свої власні права** на різні ресурси, ви могли б **перевірити, чи можете ви отримати додаткові права**. Вам слід зосередитися принаймні на правах, вказаних у:
+Якщо ви можете **перевірити принаймні свої власні права** на різні ресурси, ви могли б **перевірити, чи можете ви отримати додаткові права**. Вам слід зосередитися принаймні на правах, зазначених у:
{{#ref}}
aws-privilege-escalation/
{{#endref}}
-## Публічно доступні сервіси
+## Publicly Exposed Services
-Під час перерахування сервісів AWS ви могли знайти деякі з них, **які відкривають елементи в Інтернет** (порти VM/контейнерів, бази даних або сервіси черг, знімки або кошики...).\
-Як пентестер/червона команда, ви завжди повинні перевіряти, чи можете ви знайти **чутливу інформацію / вразливості** на них, оскільки вони можуть надати вам **додатковий доступ до облікового запису AWS**.
+Під час перерахунку сервісів AWS ви могли знайти деякі з них, **які відкривають елементи в Інтернеті** (порти VM/контейнерів, бази даних або сервіси черг, знімки або кошики...).\
+Як pentester/red teamer, ви завжди повинні перевіряти, чи можете ви знайти **чутливу інформацію / вразливості** на них, оскільки вони можуть надати вам **додатковий доступ до облікового запису AWS**.
У цій книзі ви повинні знайти **інформацію** про те, як знайти **відкриті сервіси AWS та як їх перевірити**. Щодо того, як знайти **вразливості у відкритих мережевих сервісах**, я б рекомендував вам **шукати** конкретний **сервіс** в:
{{#ref}}
-https://book.hacktricks.xyz/
+https://book.hacktricks.wiki/
{{#endref}}
-## Компрометація організації
+## Compromising the Organization
-### З облікового запису root/управління
+### From the root/management account
-Коли обліковий запис управління створює нові облікові записи в організації, у новому обліковому записі створюється **нова роль**, за замовчуванням називана **`OrganizationAccountAccessRole`** та надає політику **AdministratorAccess** обліковому запису **управління** для доступу до нового облікового запису.
+Коли обліковий запис управління створює нові облікові записи в організації, у новому обліковому записі створюється **нова роль**, за замовчуванням називана **`OrganizationAccountAccessRole`**, і надається політика **AdministratorAccess** для **облікового запису управління** для доступу до нового облікового запису.
-Отже, для доступу як адміністратор до дочірнього облікового запису вам потрібно:
+Отже, щоб отримати доступ як адміністратор до дочірнього облікового запису, вам потрібно:
-- **Компрометувати** обліковий запис **управління** та знайти **ID** **дочірніх облікових записів** та **імена** **ролі** (за замовчуванням OrganizationAccountAccessRole), що дозволяє обліковому запису управління отримати доступ як адміністратор.
+- **Скомпрометувати** **управлінський** обліковий запис і знайти **ID** **дочірніх облікових записів** та **імена** **ролі** (за замовчуванням OrganizationAccountAccessRole), що дозволяє обліковому запису управління отримати доступ як адміністратор.
- Щоб знайти дочірні облікові записи, перейдіть до розділу організацій у консолі aws або виконайте `aws organizations list-accounts`
- Ви не можете знайти назви ролей безпосередньо, тому перевірте всі користувацькі політики IAM і шукайте будь-які, що дозволяють **`sts:AssumeRole` над раніше виявленими дочірніми обліковими записами**.
-- **Компрометувати** **принципала** в обліковому записі управління з **дозволом `sts:AssumeRole` над роллю в дочірніх облікових записах** (навіть якщо обліковий запис дозволяє будь-кому з облікового запису управління видавати себе, оскільки це зовнішній обліковий запис, специфічні дозволи `sts:AssumeRole` є необхідними).
+- **Скомпрометувати** **принципала** в управлінському обліковому записі з **дозволом `sts:AssumeRole` над роллю в дочірніх облікових записах** (навіть якщо обліковий запис дозволяє будь-кому з управлінського облікового запису видавати себе, оскільки це зовнішній обліковий запис, специфічні дозволи `sts:AssumeRole` є необхідними).
-## Автоматизовані інструменти
+## Automated Tools
-### Рекон
+### Recon
- [**aws-recon**](https://github.com/darkbitio/aws-recon): Багатопотоковий інструмент для збору **інвентаризації**, орієнтований на безпеку AWS, написаний на Ruby.
```bash
@@ -178,7 +178,7 @@ AWS_PROFILE= aws_recon \
--regions global,us-east-1,us-east-2 \
--verbose
```
-- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist є **інструментом для багатьох хмар для отримання активів** (імен хостів, IP-адрес) від постачальників хмар.
+- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist є **інструментом для багатохмарного отримання активів** (імен хостів, IP-адрес) від постачальників хмар.
- [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper допомагає вам аналізувати ваші середовища Amazon Web Services (AWS). Тепер він містить набагато більше функцій, включаючи аудит на предмет проблем безпеки.
```bash
# Installation steps in github
@@ -224,7 +224,7 @@ python3 cloudmapper.py public --accounts dev
python cloudmapper.py prepare #Prepare webserver
python cloudmapper.py webserver #Show webserver
```
-- [**cartography**](https://github.com/lyft/cartography): Cartography - це інструмент на Python, який об'єднує інфраструктурні активи та відносини між ними в інтуїтивно зрозумілому графічному вигляді, що працює на базі бази даних Neo4j.
+- [**cartography**](https://github.com/lyft/cartography): Cartography - це інструмент на Python, який об'єднує інфраструктурні активи та відносини між ними в інтуїтивно зрозумілому графічному вигляді, що працює на базі Neo4j.
```bash
# Install
pip install cartography
@@ -233,14 +233,14 @@ pip install cartography
# Get AWS info
AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt --neo4j-user neo4j
```
-- [**starbase**](https://github.com/JupiterOne/starbase): Starbase збирає активи та взаємозв'язки з сервісів та систем, включаючи хмарну інфраструктуру, SaaS-додатки, засоби безпеки та інше в інтуїтивно зрозумілому графічному вигляді, підтримуваному базою даних Neo4j.
+- [**starbase**](https://github.com/JupiterOne/starbase): Starbase збирає активи та зв'язки з сервісів та систем, включаючи хмарну інфраструктуру, SaaS додатки, засоби безпеки та інше в інтуїтивно зрозумілому графічному вигляді, підтримуваному базою даних Neo4j.
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Використовує python2) Це інструмент, який намагається **виявити всі** [**ресурси AWS**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource), створені в обліковому записі.
-- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Це інструмент для **отримання всіх публічних IP-адрес** (як IPv4, так і IPv6), пов'язаних з обліковим записом AWS.
+- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Це інструмент для **отримання всіх публічних IP-адрес** (як IPv4/IPv6), пов'язаних з обліковим записом AWS.
### Privesc & Exploiting
-- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Виявляє найбільш привілейованих користувачів у сканованому середовищі AWS, включаючи AWS Shadow Admins. Він використовує powershell. Ви можете знайти **визначення привілейованих політик** у функції **`Check-PrivilegedPolicy`** в [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1).
-- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu - це відкритий **фреймворк експлуатації AWS**, призначений для тестування наступальних заходів безпеки проти хмарних середовищ. Він може **перераховувати**, знаходити **неправильні конфігурації** та **експлуатувати** їх. Ви можете знайти **визначення привілейованих дозволів** в [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134) всередині словника **`user_escalation_methods`**.
+- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Виявляє найбільш привілейованих користувачів у відсканованому середовищі AWS, включаючи AWS Shadow Admins. Він використовує powershell. Ви можете знайти **визначення привілейованих політик** у функції **`Check-PrivilegedPolicy`** в [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1).
+- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu - це відкритий **фреймворк експлуатації AWS**, розроблений для тестування безпеки в наступальних цілях проти хмарних середовищ. Він може **перераховувати**, знаходити **неправильні конфігурації** та **експлуатувати** їх. Ви можете знайти **визначення привілейованих дозволів** в [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134) всередині словника **`user_escalation_methods`**.
- Зверніть увагу, що pacu **перевіряє лише ваші власні шляхи privesc** (не в межах облікового запису).
```bash
# Install
@@ -255,7 +255,7 @@ pacu
> exec iam__enum_permissions # Get permissions
> exec iam__privesc_scan # List privileged permissions
```
-- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) - це скрипт і бібліотека для виявлення ризиків у конфігурації AWS Identity and Access Management (IAM) для облікового запису AWS або організації AWS. Він моделює різних IAM Users та Roles в обліковому записі як орієнтований граф, що дозволяє перевіряти **підвищення привілеїв** та альтернативні шляхи, якими зловмисник може отримати доступ до ресурсу або дії в AWS. Ви можете перевірити **дозволи, використані для знаходження шляхів privesc** у файлах, що закінчуються на `_edges.py` в [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing)
+- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) - це скрипт і бібліотека для виявлення ризиків у конфігурації AWS Identity and Access Management (IAM) для облікового запису AWS або організації AWS. Він моделює різних IAM користувачів і ролей в обліковому записі як орієнтований граф, що дозволяє перевіряти **підвищення привілеїв** та альтернативні шляхи, якими зловмисник може отримати доступ до ресурсу або дії в AWS. Ви можете перевірити **дозволи, використані для знаходження шляхів privesc**, у файлах, що закінчуються на `_edges.py` в [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing)
```bash
# Install
pip install principalmapper
@@ -278,7 +278,7 @@ pmapper --profile dev orgs create
pmapper --profile dev orgs display
```
- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining - це інструмент оцінки безпеки AWS IAM, який виявляє порушення принципу найменших привілеїв і генерує звіт у форматі HTML з пріоритетом ризику.\
-Він покаже вам потенційно **переповнені** права доступу клієнта, вбудовані та aws **політики** та які **принципи мають доступ до них**. (Він не лише перевіряє на privesc, але й інші цікаві дозволи, рекомендовано використовувати).
+Він покаже вам потенційно **переповнені привілеї** клієнта, вбудовані та aws **політики** та які **принципи мають доступ до них**. (Він не тільки перевіряє на privesc, але й інші цікаві дозволи, рекомендовано використовувати).
```bash
# Install
pip install cloudsplaining
@@ -291,7 +291,7 @@ cloudsplaining download --profile dev
cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /tmp/files/
```
- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack оцінює облікові записи AWS на наявність **вразливостей перехоплення піддоменів** внаслідок розділених конфігурацій Route53 та CloudFront.
-- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Список репозиторіїв ECR -> Витягти репозиторій ECR -> Задній доступ -> Завантажити зламаний образ
+- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Список репозиторіїв ECR -> Завантажити репозиторій ECR -> Встановити бекдор -> Завантажити з бекдором зображення
- [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag - це інструмент, який **шукає** через публічні знімки Elastic Block Storage (**EBS**) на наявність секретів, які могли бути випадково залишені.
### Аудит
@@ -318,7 +318,7 @@ prowler aws --profile custom-profile [-M csv json json-asff html]
```bash
cloudfox aws --profile [profile-name] all-checks
```
-- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite - це інструмент для аудиту безпеки в мульти-хмарному середовищі з відкритим кодом, який дозволяє оцінювати безпекову позицію хмарних середовищ.
+- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite - це інструмент для аудиту безпеки в мульти-хмарних середовищах з відкритим кодом, який дозволяє оцінювати безпекову позицію хмарних середовищ.
```bash
# Install
virtualenv -p python3 venv
@@ -335,8 +335,8 @@ scout aws -p dev
### Постійний аудит
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian - це механізм правил для управління обліковими записами та ресурсами публічного хмари. Він дозволяє користувачам **визначати політики для забезпечення добре керованої хмарної інфраструктури**, яка є як безпечною, так і оптимізованою за витратами. Він консолідує багато з тих випадкових скриптів, які мають організації, в легкий і гнучкий інструмент з єдиними метриками та звітністю.
-- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** - це платформа для **безперервного моніторингу відповідності, звітності про відповідність та автоматизації безпеки для хмари**. У PacBot політики безпеки та відповідності реалізовані як код. Всі ресурси, виявлені PacBot, оцінюються відповідно до цих політик для оцінки відповідності політикам. Рамки **автоматичного виправлення** PacBot надають можливість автоматично реагувати на порушення політик, вживаючи попередньо визначені дії.
-- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert - це безсерверна, **реальна** система аналізу даних, яка дозволяє вам **інтегрувати, аналізувати та сповіщати** про дані з будь-якого середовища, **використовуючи джерела даних та логіку сповіщення, які ви визначаєте**. Команди комп'ютерної безпеки використовують StreamAlert для сканування терабайтів журналів щодня для виявлення інцидентів та реагування.
+- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** - це платформа для **безперервного моніторингу відповідності, звітності про відповідність та автоматизації безпеки для хмари**. У PacBot політики безпеки та відповідності реалізуються як код. Всі ресурси, виявлені PacBot, оцінюються відповідно до цих політик для оцінки відповідності політикам. Рамка **автоматичного виправлення** PacBot надає можливість автоматично реагувати на порушення політик, вживаючи попередньо визначені дії.
+- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert - це безсерверна, **реальна** система аналізу даних, яка дозволяє вам **збирати, аналізувати та сповіщати** про дані з будь-якого середовища, **використовуючи джерела даних та логіку сповіщення, які ви визначаєте**. Команди комп'ютерної безпеки використовують StreamAlert для сканування терабайтів журналів щодня для виявлення інцидентів та реагування.
## DEBUG: Захоплення запитів AWS cli
```bash
diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
index 25a57e5e5..3d426bf3c 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
@@ -4,17 +4,17 @@
## SAML
-Для отримання інформації про SAML, будь ласка, перевірте:
+Для отримання інформації про SAML, будь ласка, перегляньте:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/saml-attacks
+https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
{{#endref}}
-Щоб налаштувати **федерацію ідентичності через SAML**, вам потрібно лише надати **ім'я** та **метадані XML**, що містять усю конфігурацію SAML (**кінцеві точки**, **сертифікат** з відкритим ключем)
+Щоб налаштувати **федерацію особи через SAML**, вам потрібно лише вказати **ім'я** та **метадані XML**, що містять усю конфігурацію SAML (**кінцеві точки**, **сертифікат** з відкритим ключем)
## OIDC - Зловживання GitHub Actions
-Щоб додати дію GitHub як постачальника ідентичності:
+Щоб додати дію GitHub як постачальника ідентифікації:
1. Для _Типу постачальника_ виберіть **OpenID Connect**.
2. Для _URL постачальника_ введіть `https://token.actions.githubusercontent.com`
@@ -45,7 +45,7 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks
}
```
6. Зверніть увагу в попередній політиці, як лише **гілка** з **репозиторію** **організації** була авторизована з конкретним **тригером**.
-7. **ARN** ролі, яку дія GitHub зможе **використовувати**, буде "секретом", який дія GitHub повинна знати, тому **зберігайте** його в **секреті** всередині **середовища**.
+7. **ARN** **ролі**, яку дія GitHub зможе **використовувати**, буде "секретом", який дія GitHub повинна знати, тому **зберігайте** його в **секреті** всередині **середовища**.
8. Нарешті, використовуйте дію GitHub для налаштування облікових даних AWS, які будуть використовуватися робочим процесом:
```yaml
name: "test AWS Access"
@@ -88,7 +88,7 @@ eksctl create cluster --name demo --fargate
# Create an Identity Provider for an EKS cluster
eksctl utils associate-iam-oidc-provider --cluster Testing --approve
```
-Можливо створити **OIDC providers** у кластері **EKS**, просто встановивши **OIDC URL** кластера як **нового постачальника ідентичності Open ID**. Це звичайна стандартна політика:
+Можливо створити **OIDC providers** у кластері **EKS**, просто встановивши **OIDC URL** кластера як **нового постачальника ідентичності Open ID**. Це загальна стандартна політика:
```json
{
"Version": "2012-10-17",
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
index aec874255..af9f2cfcb 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
@@ -1,4 +1,4 @@
-# AWS - EC2, EBS, SSM & VPC Постексплуатація
+# AWS - EC2, EBS, SSM & VPC Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
@@ -49,8 +49,8 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west
```
### EBS Snapshot dump
-**Снапшоти є резервними копіями томів**, які зазвичай міститимуть **чутливу інформацію**, тому їх перевірка повинна розкрити цю інформацію.\
-Якщо ви знайдете **том без снапшота**, ви можете: **Створити снапшот** і виконати наступні дії або просто **підключити його до екземпляра** в обліковому записі:
+**Снімки є резервними копіями томів**, які зазвичай міститимуть **чутливу інформацію**, тому їх перевірка повинна розкрити цю інформацію.\
+Якщо ви знайдете **том без снімка**, ви можете: **Створити снімок** і виконати наступні дії або просто **підключити його до екземпляра** в обліковому записі:
{{#ref}}
aws-ebs-snapshot-dump.md
@@ -60,7 +60,7 @@ aws-ebs-snapshot-dump.md
#### DNS Exfiltration
-Навіть якщо ви заблокуєте EC2, щоб жоден трафік не міг вийти, він все ще може **екстрагуватися через DNS**.
+Навіть якщо ви заблокуєте EC2, щоб жоден трафік не міг вийти, він все ще може **екстрагувати дані через DNS**.
- **VPC Flow Logs не зафіксують це**.
- У вас немає доступу до AWS DNS журналів.
@@ -74,7 +74,7 @@ aws-ebs-snapshot-dump.md
### Open Security Group
-Ви можете отримати подальший доступ до мережевих сервісів, відкривши порти таким чином:
+Ви можете отримати подальший доступ до мережевих служб, відкривши порти таким чином:
```bash
aws ec2 authorize-security-group-ingress --group-id --protocol tcp --port 80 --cidr 0.0.0.0/0
# Or you could just open it to more specific ips or maybe th einternal network if you have already compromised an EC2 in the VPC
@@ -83,7 +83,7 @@ aws ec2 authorize-security-group-ingress --group-id --protocol tcp --por
Можливо запустити EC2 екземпляр і зареєструвати його для використання для запуску ECS екземплярів, а потім вкрасти дані ECS екземплярів.
-Для [**додаткової інформації перевірте це**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
+Для [**додаткової інформації перегляньте це**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
### Remove VPC flow logs
```bash
@@ -104,9 +104,9 @@ aws ec2 delete-flow-logs --flow-log-ids --region
```shell
aws ssm start-session --target "$INSTANCE_ID"
```
-3. Отримайте тимчасові облікові дані Bastion EC2 AWS за допомогою скрипта [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment)
+3. Отримайте тимчасові облікові дані Bastion EC2 AWS за допомогою скрипта [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#abusing-ssrf-in-aws-ec2-environment)
4. Перенесіть облікові дані на свій комп'ютер у файл `$HOME/.aws/credentials` як профіль `[bastion-ec2]`
-5. Увійдіть до EKS як Bastion EC2:
+5. Увійдіть в EKS як Bastion EC2:
```shell
aws eks update-kubeconfig --profile bastion-ec2 --region --name
```
@@ -115,13 +115,13 @@ aws eks update-kubeconfig --profile bastion-ec2 --region --
```shell
sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"host":[""],"portNumber":["443"], "localPortNumber":["443"]}' --region
```
-8. Трафік з інструменту `kubectl` тепер перенаправляється через тунель SSM через Bastion EC2, і ви можете отримати доступ до приватного EKS кластера з вашого власного комп'ютера, запустивши:
+8. Трафік з інструменту `kubectl` тепер перенаправляється через тунель SSM через Bastion EC2, і ви можете отримати доступ до приватного EKS кластера з вашої власної машини, запустивши:
```shell
kubectl get pods --insecure-skip-tls-verify
```
Зверніть увагу, що SSL-з'єднання не вдасться встановити, якщо ви не встановите прапорець `--insecure-skip-tls-verify` (або його еквівалент у K8s audit tools). Оскільки трафік тунелюється через безпечний AWS SSM тунель, ви захищені від будь-яких атак MitM.
-Нарешті, ця техніка не є специфічною для атак на приватні EKS кластери. Ви можете встановити довільні домени та порти для переходу до будь-якої іншої служби AWS або до власного застосунку.
+Нарешті, ця техніка не є специфічною для атак на приватні EKS кластери. Ви можете встановити довільні домени та порти для переходу до будь-якої іншої служби AWS або до власного додатку.
### Share AMI
```bash
@@ -129,7 +129,7 @@ aws ec2 modify-image-attribute --image-id --launch-permission "Add=[{
```
### Пошук чутливої інформації в публічних та приватних AMI
-- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel - це інструмент, призначений для **пошуку чутливої інформації в публічних або приватних образах машин Amazon (AMIs)**. Він автоматизує процес запуску екземплярів з цільових AMI, монтування їх томів та сканування на наявність потенційних секретів або чутливих даних.
+- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel - це інструмент, призначений для **пошуку чутливої інформації в публічних або приватних образах Amazon Machine Images (AMIs)**. Він автоматизує процес запуску екземплярів з цільових AMI, монтування їхніх томів та сканування на наявність потенційних секретів або чутливих даних.
### Поділитися знімком EBS
```bash
@@ -137,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
```
### EBS Ransomware PoC
-Доказ концепції, подібний до демонстрації Ransomware, показаної в нотатках з пост-експлуатації S3. KMS слід перейменувати на RMS для Ransomware Management Service, враховуючи, як легко його використовувати для шифрування різних сервісів AWS.
+Доказ концепції, подібний до демонстрації Ransomware, показаної в нотатках з пост-експлуатації S3. KMS слід перейменувати на RMS для Ransomware Management Service через те, як легко його використовувати для шифрування різних сервісів AWS.
-Спочатку з облікового запису 'атакуючого' AWS створіть ключ, керований клієнтом, у KMS. Для цього прикладу ми просто дозволимо AWS керувати даними ключа, але в реалістичному сценарії зловмисник зберігатиме дані ключа поза контролем AWS. Змініть політику ключа, щоб дозволити будь-якому обліковому запису AWS Principal використовувати ключ. Для цієї політики ключа ім'я облікового запису було 'AttackSim', а правило політики, що дозволяє весь доступ, називається 'Outside Encryption'
+Спочатку з облікового запису 'атакуючого' AWS створіть ключ, керований користувачем, у KMS. Для цього прикладу ми просто дозволимо AWS керувати даними ключа, але в реалістичному сценарії зловмисник зберіг би дані ключа поза контролем AWS. Змініть політику ключа, щоб дозволити будь-якому Principal облікового запису AWS використовувати ключ. Для цієї політики ключа ім'я облікового запису було 'AttackSim', а правило політики, що дозволяє весь доступ, називається 'Outside Encryption'
```
{
"Version": "2012-10-17",
@@ -231,7 +231,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
]
}
```
-Правило політики ключа потребує активації наступних параметрів, щоб дозволити його використання для шифрування обсягу EBS:
+Правило політики ключа потребує активації наступних дозволів, щоб мати можливість використовувати його для шифрування обсягу EBS:
- `kms:CreateGrant`
- `kms:Decrypt`
@@ -239,17 +239,17 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
- `kms:GenerateDataKeyWithoutPlainText`
- `kms:ReEncrypt`
-Тепер, маючи публічно доступний ключ для використання. Ми можемо використовувати обліковий запис 'жертви', в якому запущені деякі EC2 екземпляри з прикріпленими нешифрованими обсягами EBS. Обсяги EBS цього 'жертви' є нашою метою для шифрування, ця атака здійснюється за припущенням про злом облікового запису AWS з високими привілеями.
+Тепер, маючи публічно доступний ключ для використання. Ми можемо використовувати обліковий запис 'жертви', в якому запущено кілька екземплярів EC2 з прикріпленими нешифрованими обсягами EBS. Обсяги EBS цього 'жертви' є нашою ціллю для шифрування, ця атака здійснюється за припущенням про злом облікового запису AWS з високими привілеями.
 
-Подібно до прикладу з програмою-вимагачем S3. Ця атака створить копії прикріплених обсягів EBS, використовуючи знімки, використає публічно доступний ключ з облікового запису 'зловмисника' для шифрування нових обсягів EBS, потім від'єднає оригінальні обсяги EBS від EC2 екземплярів і видалить їх, а потім нарешті видалить знімки, використані для створення нових зашифрованих обсягів EBS. 
+Подібно до прикладу з програмами-вимагачами S3. Ця атака створить копії прикріплених обсягів EBS за допомогою знімків, використає публічно доступний ключ з облікового запису 'зловмисника' для шифрування нових обсягів EBS, потім від'єднає оригінальні обсяги EBS від екземплярів EC2 і видалить їх, а потім нарешті видалить знімки, використані для створення нових зашифрованих обсягів EBS. 
В результаті залишаться лише зашифровані обсяги EBS, доступні в обліковому записі.

-Також варто зазначити, що скрипт зупинив EC2 екземпляри, щоб від'єднати та видалити оригінальні обсяги EBS. Оригінальні нешифровані обсяги тепер зникли.
+Також варто зазначити, що скрипт зупинив екземпляри EC2, щоб від'єднати та видалити оригінальні обсяги EBS. Оригінальні нешифровані обсяги тепер зникли.

@@ -324,15 +324,15 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
]
}
```
-Зачекайте момент, поки нова політика ключа не пошириться. Потім поверніться до облікового запису 'жертви' і спробуйте приєднати один з нових зашифрованих EBS-томів. Ви виявите, що можете приєднати том.
+Зачекайте момент, поки нова політика ключа не пошириться. Потім поверніться до облікового запису 'жертви' і спробуйте приєднати один з нових зашифрованих EBS томів. Ви виявите, що можете приєднати том.
 
-Але коли ви спробуєте фактично запустити EC2-екземпляр з зашифрованим EBS-томом, він просто зазнає невдачі і знову перейде з стану 'очікування' в стан 'зупинено' назавжди, оскільки приєднаний EBS-том не може бути розшифрований за допомогою ключа, оскільки політика ключа більше не дозволяє це.
+Але коли ви спробуєте фактично запустити EC2 інстанс з зашифрованим EBS томом, він просто не вдасться і перейде з стану 'очікування' назад у стан 'зупинено' назавжди, оскільки приєднаний EBS том не може бути розшифрований за допомогою ключа, оскільки політика ключа більше не дозволяє це.
 
-Це скрипт на python, який використовується. Він приймає AWS облікові дані для облікового запису 'жертви' та загальнодоступне значення AWS ARN для ключа, який буде використовуватися для шифрування. Скрипт створить зашифровані копії ВСІХ доступних EBS-томів, приєднаних до ВСІХ EC2-екземплярів у цільовому обліковому записі AWS, потім зупинить кожен EC2-екземпляр, від'єднає оригінальні EBS-томи, видалить їх і, нарешті, видалить всі знімки, використані під час процесу. Це залишить лише зашифровані EBS-томи в цільовому обліковому записі 'жертви'. ВИКОРИСТОВУЙТЕ ЦЕЙ СКРИПТ ТІЛЬКИ В ТЕСТОВОМУ СЕРЕДОВИЩІ, ВІН ДЕСТРУКТИВНИЙ І ВИДАЛИТЬ УСІ ОРИГІНАЛЬНІ EBS-ТОМИ. Ви можете відновити їх, використовуючи використаний KMS-ключ, і відновити їх до їхнього початкового стану через знімки, але просто хочу, щоб ви знали, що в кінцевому підсумку це є PoC програм-вимагачів.
+Це python-скрипт, який використовується. Він приймає AWS облікові дані для облікового запису 'жертви' та публічно доступне значення AWS ARN для ключа, який буде використовуватися для шифрування. Скрипт створить зашифровані копії ВСІХ доступних EBS томів, приєднаних до ВСІХ EC2 інстансів у цільовому AWS обліковому записі, потім зупинить кожен EC2 інстанс, від'єднає оригінальні EBS томи, видалить їх і, нарешті, видалить всі знімки, використані під час процесу. Це залишить лише зашифровані EBS томи в цільовому обліковому записі 'жертви'. ВИКОРИСТОВУЙТЕ ЦЕЙ СКРИПТ ТІЛЬКИ В ТЕСТОВОМУ СЕРЕДОВИЩІ, ВІН ДЕСТРУКТИВНИЙ І ВИДАЛИТЬ УСІ ОРИГІНАЛЬНІ EBS ТОМИ. Ви можете відновити їх, використовуючи KMS ключ, і відновити їх до їхнього початкового стану через знімки, але просто хочу, щоб ви знали, що це в кінцевому підсумку є PoC для програм-вимагачів.
```
import boto3
import argparse
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
index 3e2982c0c..36a88861c 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecr-post-exploitation.md
@@ -4,7 +4,7 @@
## ECR
-Для отримання додаткової інформації перевірте
+Для отримання додаткової інформації перегляньте
{{#ref}}
../aws-services/aws-ecr-enum.md
@@ -49,7 +49,7 @@ aws ecr get-download-url-for-layer \
Після завантаження зображень ви повинні **перевірити їх на наявність чутливої інформації**:
{{#ref}}
-https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
+https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.html
{{#endref}}
### `ecr:PutLifecyclePolicy` | `ecr:DeleteRepository` | `ecr-public:DeleteRepository` | `ecr:BatchDeleteImage` | `ecr-public:BatchDeleteImage`
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
index 0177b6c59..1a3822d54 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
@@ -16,19 +16,19 @@
Це означає, що якщо вам вдасться **зламати** екземпляр ECS, ви потенційно можете **отримати IAM роль, пов'язану з ECR та EC2 екземпляром**. Для отримання додаткової інформації про те, як отримати ці облікові дані, перегляньте:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
+https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
> [!CAUTION]
-> Зверніть увагу, що якщо EC2 екземпляр застосовує IMDSv2, [**згідно з документацією**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **відповідь на PUT запит** матиме **обмеження на кількість переходів 1**, що ускладнює доступ до метаданих EC2 з контейнера всередині EC2 екземпляра.
+> Зверніть увагу, що якщо EC2 екземпляр застосовує IMDSv2, [**згідно з документацією**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **відповідь на PUT запит** матиме **обмеження на кількість пересилок 1**, що ускладнює доступ до метаданих EC2 з контейнера всередині EC2 екземпляра.
### Privesc to node to steal other containers creds & secrets
-Більше того, EC2 використовує docker для виконання завдань ECs, тому якщо ви зможете втекти на вузол або **отримати доступ до сокета docker**, ви зможете **перевірити**, які **інші контейнери** запущені, і навіть **потрапити всередину них** та **вкрасти їх IAM ролі**.
+Більше того, EC2 використовує docker для виконання завдань EC, тому якщо ви зможете втекти до вузла або **отримати доступ до сокета docker**, ви зможете **перевірити**, які **інші контейнери** запущені, і навіть **потрапити всередину них** та **вкрасти їх IAM ролі**.
#### Making containers run in current host
-Крім того, **роль EC2 екземпляра** зазвичай матиме достатньо **дозволів** для **оновлення стану контейнерного екземпляра** EC2 екземплярів, що використовуються як вузли всередині кластера. Зловмисник може змінити **стан екземпляра на DRAINING**, тоді ECS **видалить всі завдання з нього**, а ті, що виконуються як **REPLICA**, будуть **виконуватися в іншому екземплярі**, потенційно всередині **екземпляра зловмисника**, щоб він міг **вкрасти їх IAM ролі** та потенційно чутливу інформацію зсередини контейнера.
+Крім того, **роль EC2 екземпляра** зазвичай матиме достатньо **дозволів** для **оновлення стану контейнерного екземпляра** EC2 екземплярів, що використовуються як вузли в кластері. Зловмисник може змінити **стан екземпляра на DRAINING**, тоді ECS **видалить всі завдання з нього**, а ті, що виконуються як **REPLICA**, будуть **виконуватися в іншому екземплярі**, потенційно всередині **екземпляра зловмисника**, щоб він міг **вкрасти їх IAM ролі** та потенційно чутливу інформацію зсередини контейнера.
```bash
aws ecs update-container-instances-state \
--cluster --status DRAINING --container-instances
@@ -38,7 +38,7 @@ aws ecs update-container-instances-state \
aws ecs deregister-container-instance \
--cluster --container-instance --force
```
-Остання техніка для примусового повторного виконання завдань полягає в тому, щоб вказати ECS, що **завдання або контейнер були зупинені**. Існує 3 потенційних API для цього:
+Остання техніка для примусового повторного виконання завдань полягає в тому, щоб вказати ECS, що **завдання або контейнер були зупинені**. Існує 3 потенційні API для цього:
```bash
# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster \
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md
index f662872b8..6943145c8 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc.md
@@ -14,7 +14,7 @@
Користувачі з правами **`iam:PassRole`, `lambda:CreateFunction` та `lambda:InvokeFunction`** можуть підвищити свої привілеї.\
Вони можуть **створити нову Lambda функцію та призначити їй існуючу IAM роль**, надаючи функції дозволи, пов'язані з цією роллю. Користувач може потім **написати та завантажити код до цієї Lambda функції (наприклад, з rev shell)**.\
-Після налаштування функції користувач може **запустити її виконання** та заплановані дії, викликавши Lambda функцію через AWS API. Цей підхід ефективно дозволяє користувачу виконувати завдання опосередковано через Lambda функцію, працюючи з рівнем доступу, наданим IAM роллю, пов'язаною з нею.\\
+Після налаштування функції користувач може **запустити її виконання** та заплановані дії, викликавши Lambda функцію через AWS API. Цей підхід ефективно дозволяє користувачу виконувати завдання непрямо через Lambda функцію, працюючи з рівнем доступу, наданим IAM роллю, пов'язаною з нею.\\
Зловмисник може зловживати цим, щоб отримати **rev shell та вкрасти токен**:
```python:rev.py
@@ -46,8 +46,8 @@ aws lambda invoke --function-name my_function output.txt
# List roles
aws iam list-attached-user-policies --user-name
```
-Ви також могли б **зловживати дозволами ролі lambda** з самої функції lambda.\
-Якщо роль lambda мала б достатньо дозволів, ви могли б використати її для надання адміністративних прав собі:
+Ви також можете **зловживати дозволами ролі lambda** з самої функції lambda.\
+Якщо роль lambda мала достатньо дозволів, ви могли б використати її для надання адміністративних прав собі:
```python
import boto3
def lambda_handler(event, context):
@@ -89,10 +89,10 @@ aws --profile "$NON_PRIV_PROFILE_USER" lambda add-permission --function-name my_
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateEventSourceMapping`
-Користувачі з дозволами **`iam:PassRole`, `lambda:CreateFunction` та `lambda:CreateEventSourceMapping`** (і потенційно `dynamodb:PutItem` та `dynamodb:CreateTable`) можуть непрямо **підвищити привілеї**, навіть без `lambda:InvokeFunction`.\
-Вони можуть створити **функцію Lambda з шкідливим кодом і призначити їй існуючу роль IAM**.
+Користувачі з дозволами **`iam:PassRole`, `lambda:CreateFunction` та `lambda:CreateEventSourceMapping`** (а також потенційно `dynamodb:PutItem` та `dynamodb:CreateTable`) можуть непрямо **підвищити привілеї**, навіть без `lambda:InvokeFunction`.\
+Вони можуть створити **функцію Lambda з шкідливим кодом і призначити їй існуючу IAM роль**.
-Замість того, щоб безпосередньо викликати Lambda, користувач налаштовує або використовує існуючу таблицю DynamoDB, пов'язуючи її з Lambda через мапування джерела подій. Це налаштування забезпечує автоматичний **тригер функції Lambda при додаванні нового елемента** в таблицю, або через дію користувача, або інший процес, таким чином непрямо викликаючи функцію Lambda та виконуючи код з дозволами переданої ролі IAM.
+Замість того, щоб безпосередньо викликати Lambda, користувач налаштовує або використовує існуючу таблицю DynamoDB, пов'язуючи її з Lambda через картографування джерела подій. Це налаштування забезпечує автоматичний **тригер функції Lambda при додаванні нового елемента** в таблицю, або через дію користувача, або інший процес, таким чином непрямо викликаючи функцію Lambda та виконуючи код з дозволами переданої IAM ролі.
```bash
aws lambda create-function --function-name my_function \
--runtime python3.8 --role \
@@ -143,10 +143,10 @@ aws lambda add-layer-version-permission --layer-name ExternalBackdoor --statemen
### `lambda:UpdateFunctionCode`
-Користувачі, які мають дозвіл **`lambda:UpdateFunctionCode`**, мають потенціал **модифікувати код існуючої функції Lambda, яка пов'язана з роллю IAM.**\
+Користувачі, які мають дозвіл **`lambda:UpdateFunctionCode`**, мають можливість **модифікувати код існуючої Lambda-функції, яка пов'язана з роллю IAM.**\
Зловмисник може **модифікувати код lambda для ексфільтрації облікових даних IAM**.
-Хоча зловмисник може не мати прямої можливості викликати функцію, якщо функція Lambda вже існує і працює, ймовірно, що вона буде активована через існуючі робочі процеси або події, тим самим непрямо сприяючи виконанню модифікованого коду.
+Хоча зловмисник може не мати прямої можливості викликати функцію, якщо Lambda-функція вже існує і працює, ймовірно, що вона буде активована через існуючі робочі процеси або події, тим самим непрямо сприяючи виконанню модифікованого коду.
```bash
# The zip should contain the lambda code (trick: Download the current one and add your code there)
aws lambda update-function-code --function-name target_function \
@@ -170,12 +170,12 @@ aws --profile none-priv lambda update-function-configuration --function-name ::layer:boto3:1 \
--timeout 300 #5min for rev shells
```
-Наступним кроком буде або **виклик функції** самостійно, якщо ми можемо, або чекати, поки її **викличуть** звичайним способом – що є більш безпечним методом.
+Наступним кроком буде або **виклик функції** самостійно, якщо ми можемо, або чекати, поки **вона буде викликана** звичайними засобами – що є більш безпечним методом.
**Більш прихований спосіб експлуатації цієї вразливості** можна знайти в:
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md
index 21cf56465..ebbdbfba6 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-documentdb-enum.md
@@ -24,7 +24,7 @@ aws --region us-east-1 --profile ad docdb describe-db-cluster-snapshot-attribute
Оскільки DocumentDB є сумісною з MongoDB базою даних, ви можете уявити, що вона також вразлива до поширених атак NoSQL injection:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/nosql-injection
+https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
{{#endref}}
### DocumentDB
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md
index 1fe460f8e..706b6c4b6 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-dynamodb-enum.md
@@ -18,9 +18,9 @@ Amazon DynamoDB представлений AWS як **повністю керо
### Резервні копії та експорт до S3
-Можна **планувати** створення **резервних копій таблиць** або створювати їх за **запитом**. Крім того, також можливо активувати **відновлення на момент часу (PITR) для таблиці.** Відновлення на момент часу забезпечує безперервні **резервні копії** ваших даних DynamoDB протягом **35 днів**, щоб допомогти вам захиститися від випадкових операцій запису або видалення.
+Можливо **планувати** створення **резервних копій таблиць** або створювати їх **за запитом**. Крім того, також можливо активувати **відновлення на момент часу (PITR) для таблиці.** Відновлення на момент часу забезпечує безперервні **резервні копії** ваших даних DynamoDB протягом **35 днів**, щоб допомогти вам захиститися від випадкових операцій запису або видалення.
-Також можливо експортувати **дані таблиці до S3**, але таблиця повинна мати **активоване PITR**.
+Також можливо експортувати **дані таблиці до S3**, але таблиця повинна мати **активований PITR**.
### GUI
@@ -84,7 +84,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
Існують способи доступу до даних DynamoDB з використанням **SQL-синтаксису**, тому типові **SQL-ін'єкції також можливі**.
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/sql-injection
+https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
{{#endref}}
### NoSQL-ін'єкція
@@ -95,7 +95,7 @@ https://book.hacktricks.xyz/pentesting-web/sql-injection
Зверніть увагу, що **різні умови** підтримуються, якщо дані отримуються через **`query`** або через **`scan`**.
> [!NOTE]
-> Насправді, дії **Query** повинні вказувати **умову "EQ" (дорівнює)** в **первинному** ключі, щоб працювати, що робить їх набагато **менш вразливими до NoSQL-ін'єкцій** (і також обмежує операцію).
+> Насправді, **Query** дії повинні вказувати **умову "EQ" (дорівнює)** у **первинному** ключі, щоб працювати, що робить їх набагато **менш вразливими до NoSQL-ін'єкцій** (і також обмежує операцію).
Якщо ви можете **змінити порівняння**, що виконується, або додати нові, ви могли б отримати більше даних.
```bash
@@ -105,7 +105,7 @@ https://book.hacktricks.xyz/pentesting-web/sql-injection
"GT": " " #All strings are greater than a space
```
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/nosql-injection
+https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
{{#endref}}
### Сира ін'єкція Json
@@ -113,19 +113,19 @@ https://book.hacktricks.xyz/pentesting-web/nosql-injection
> [!CAUTION]
> **Ця вразливість базується на Scan Filter dynamodb, який тепер застарілий!**
-**DynamoDB** приймає **Json** об'єкти для **пошуку** даних у БД. Якщо ви виявите, що можете записувати в json об'єкт, надісланий для пошуку, ви можете зробити дамп БД, всієї її вмісту.
+**DynamoDB** приймає **Json** об'єкти для **пошуку** даних у БД. Якщо ви виявите, що можете записувати в json об'єкт, надісланий для пошуку, ви зможете зробити дамп БД, всієї її вмісту.
Наприклад, ін'єкція в запит, як:
```bash
'{"Id": {"ComparisonOperator": "EQ","AttributeValueList": [{"N": "' + user_input + '"}]}}'
```
-зловмисник міг би ввести щось на зразок:
+зловмисник міг би ввести щось на кшталт:
`1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0`
-виправити умову "EQ", шукаючи ID 1000, а потім шукати всі дані з рядком Id, що перевищує 0, що є всіма.
+виправити умову "EQ", шукаючи ID 1000, а потім шукати всі дані з рядком Id, більшим за 0, що є всіма.
-Ще один **вразливий приклад з використанням входу** може бути:
+Ще один **вразливий приклад з використанням входу** міг би бути:
```python
scan_filter = """{
"username": {
@@ -152,7 +152,7 @@ password: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none
```java
new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap)
```
-Вам потрібно знати, що пошук у DynamoDB для **заміни** значення **атрибута** в **виразах фільтрації** під час сканування елементів, токени повинні **починатися** з символу **`:`**. Такі токени будуть **замінені** на фактичне **значення атрибута під час виконання**.
+Вам потрібно знати, що при пошуку в DynamoDB для **заміни** значення **атрибута** в **виразах фільтра** під час сканування елементів, токени повинні **починатися** з символу **`:`**. Такі токени будуть **замінені** на фактичне **значення атрибута під час виконання**.
Отже, вхід, подібний до попереднього, можна обійти за допомогою чогось на зразок:
```bash
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md
index 1f12e8ef1..3d4139a66 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md
@@ -35,10 +35,10 @@ Amazon EC2 використовується для ініціювання **ві
### Metadata Endpoint
-AWS EC2 метадані - це інформація про інстанс Amazon Elastic Compute Cloud (EC2), яка доступна інстансу під час виконання. Ці метадані використовуються для надання інформації про інстанс, такої як його ідентифікатор інстансу, зона доступності, в якій він працює, IAM роль, пов'язана з інстансом, та ім'я хоста інстансу.
+AWS EC2 метадані - це інформація про інстанс Amazon Elastic Compute Cloud (EC2), яка доступна інстансу під час виконання. Ці метадані використовуються для надання інформації про інстанс, такої як його ID інстансу, зона доступності, в якій він працює, IAM роль, пов'язана з інстансом, та ім'я хоста інстансу.
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
+https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
### Enumeration
@@ -149,13 +149,13 @@ aws ec2 describe-vpc-peering-connections
## EBS
-Amazon **EBS** (Elastic Block Store) **знімки** - це, по суті, статичні **резервні копії** обсягів AWS EBS. Іншими словами, це **копії** **дисків**, підключених до **EC2** екземпляра в певний момент часу. Знімки EBS можна копіювати між регіонами та обліковими записами або навіть завантажувати та запускати локально.
+Amazon **EBS** (Elastic Block Store) **знімки** в основному є статичними **резервними копіями** обсягів AWS EBS. Іншими словами, це **копії** **дисків**, підключених до **EC2** екземпляра в певний момент часу. Знімки EBS можуть бути скопійовані між регіонами та обліковими записами або навіть завантажені та запущені локально.
-Знімки можуть містити **чутливу інформацію**, таку як **джерельний код або ключі API**, тому, якщо у вас є можливість, рекомендується перевірити це.
+Знімки можуть містити **чутливу інформацію**, таку як **джерельний код або ключі API**, тому, якщо у вас є можливість, рекомендується перевірити їх.
### Різниця AMI та EBS
-**AMI** використовується для **запуску EC2 екземпляра**, тоді як **знімок EC2** використовується для **резервного копіювання та відновлення даних, збережених на обсязі EBS**. Хоча знімок EC2 можна використовувати для створення нового AMI, це не те саме, що AMI, і він не містить інформації про операційну систему, сервер додатків або інше програмне забезпечення, необхідне для запуску програми.
+**AMI** використовується для **запуску EC2 екземпляра**, тоді як **знімок EC2** використовується для **резервного копіювання та відновлення даних, збережених на обсязі EBS**. Хоча знімок EC2 може бути використаний для створення нового AMI, це не те саме, що AMI, і він не містить інформації про операційну систему, сервер додатків або інше програмне забезпечення, необхідне для запуску програми.
### Підвищення привілеїв
@@ -171,7 +171,7 @@ Amazon **EBS** (Elastic Block Store) **знімки** - це, по суті, с
**SSM Agent** дозволяє Systems Manager оновлювати, керувати та налаштовувати ці ресурси. Агент **обробляє запити від служби Systems Manager в AWS Cloud** і потім виконує їх відповідно до запиту.
-**SSM Agent постачається**[ **попередньо встановленим в деяких AMI**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) або вам потрібно [**встановити їх вручну**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) на екземплярах. Також роль IAM, що використовується всередині екземпляра, повинна мати політику **AmazonEC2RoleforSSM**, щоб мати можливість спілкуватися.
+**SSM Agent постачається**[ **попередньо встановленим у деяких AMI**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) або вам потрібно [**встановити їх вручну**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) на екземплярах. Також IAM роль, що використовується всередині екземпляра, повинна мати політику **AmazonEC2RoleforSSM**, щоб мати можливість спілкуватися.
### Перерахування
```bash
@@ -211,7 +211,7 @@ aws elbv2 describe-listeners --load-balancer-arn
```
## Шаблони запуску та групи автоскалювання
-### Перерахунок
+### Перерахування
```bash
# Launch templates
aws ec2 describe-launch-templates
@@ -228,7 +228,7 @@ aws autoscaling describe-load-balancers
```
## Nitro
-AWS Nitro - це набір **інноваційних технологій**, які формують базову платформу для AWS EC2 інстансів. Введений Amazon для **покращення безпеки, продуктивності та надійності**, Nitro використовує спеціальні **апаратні компоненти та легкий гіпервізор**. Він абстрагує більшість традиційних функцій віртуалізації на спеціалізоване апаратне та програмне забезпечення, **мінімізуючи поверхню атаки** та покращуючи ефективність ресурсів. Відвантажуючи функції віртуалізації, Nitro дозволяє EC2 інстансам забезпечувати **практично продуктивність bare-metal**, що робить його особливо корисним для ресурсомістких додатків. Крім того, Nitro Security Chip спеціально забезпечує **безпеку апаратного забезпечення та прошивки**, ще більше зміцнюючи його надійну архітектуру.
+AWS Nitro - це набір **інноваційних технологій**, які формують базову платформу для AWS EC2 інстансів. Введений Amazon для **покращення безпеки, продуктивності та надійності**, Nitro використовує спеціальні **апаратні компоненти та легкий гіпервізор**. Він абстрагує більшість традиційних функцій віртуалізації на спеціалізоване апаратне та програмне забезпечення, **мінімізуючи поверхню атаки** та покращуючи ефективність ресурсів. Завдяки перенесенню функцій віртуалізації, Nitro дозволяє EC2 інстансам забезпечувати **практично продуктивність bare-metal**, що робить його особливо корисним для ресурсомістких додатків. Крім того, Nitro Security Chip спеціально забезпечує **безпеку апаратного забезпечення та прошивки**, ще більше зміцнюючи його надійну архітектуру.
Отримайте більше інформації та дізнайтеся, як його перерахувати з:
@@ -238,7 +238,7 @@ aws-nitro-enum.md
## VPN
-VPN дозволяє підключити вашу **локальну мережу (site-to-site VPN)** або **ноутбуки працівників (Client VPN)** до **AWS VPC**, щоб сервіси могли бути доступні без необхідності їх відкриття в інтернеті.
+VPN дозволяє підключити вашу **локальну мережу (site-to-site VPN)** або **ноутбуки працівників (Client VPN)** до **AWS VPC**, щоб сервіси могли бути доступні без необхідності їх відкриття в Інтернеті.
#### Основні компоненти AWS VPN
@@ -255,12 +255,12 @@ VPN дозволяє підключити вашу **локальну мереж
3. **Site-to-Site VPN Connection**:
- З'єднання Site-to-Site VPN з'єднує вашу локальну мережу з VPC через безпечний IPsec VPN тунель.
- Цей тип з'єднання вимагає Customer Gateway та Virtual Private Gateway.
-- Він використовується для безпечної, стабільної та послідовної комунікації між вашим дата-центром або мережею та вашим AWS середовищем.
+- Використовується для безпечної, стабільної та послідовної комунікації між вашим дата-центром або мережею та вашим AWS середовищем.
- Зазвичай використовується для регулярних, довгострокових з'єднань і оплачується на основі обсягу даних, переданих через з'єднання.
4. **Client VPN Endpoint**:
- Кінцева точка Client VPN - це ресурс, який ви створюєте в AWS для активації та управління сесіями клієнтського VPN.
-- Він використовується для дозволу окремим пристроям (таким як ноутбуки, смартфони тощо) безпечно підключатися до ресурсів AWS або вашої локальної мережі.
-- Він відрізняється від Site-to-Site VPN тим, що призначений для окремих клієнтів, а не для підключення цілих мереж.
+- Використовується для дозволу окремим пристроям (таким як ноутбуки, смартфони тощо) безпечно підключатися до ресурсів AWS або вашої локальної мережі.
+- Вона відрізняється від Site-to-Site VPN тим, що призначена для окремих клієнтів, а не для підключення цілих мереж.
- З Client VPN кожен клієнтський пристрій використовує програмне забезпечення VPN-клієнта для встановлення безпечного з'єднання.
Ви можете [**знайти більше інформації про переваги та компоненти AWS VPN тут**](aws-vpc-and-networking-basic-information.md#vpn).
@@ -293,13 +293,13 @@ aws ec2 describe-vpn-connections
**Локальні Тимчасові Облікові Дані**
-Коли використовується AWS VPN Client для підключення до VPN, користувач зазвичай **входить в AWS**, щоб отримати доступ до VPN. Потім деякі **облікові дані AWS створюються та зберігаються** локально для встановлення VPN-з'єднання. Ці облікові дані **зберігаються в** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` і містять **AccessKey**, **SecretKey** та **Token**.
+Коли AWS VPN Client використовується для підключення до VPN, користувач зазвичай **входить в AWS**, щоб отримати доступ до VPN. Потім деякі **облікові дані AWS створюються та зберігаються** локально для встановлення VPN-з'єднання. Ці облікові дані **зберігаються в** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` і містять **AccessKey**, **SecretKey** та **Token**.
Облікові дані належать користувачу `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: дослідити більше про дозволи цих облікових даних).
-**файли конфігурації opvn**
+**opvn конфігураційні файли**
-Якщо **VPN-з'єднання було встановлено**, вам слід шукати **`.opvn`** файли конфігурації в системі. Більше того, одне місце, де ви можете знайти **конфігурації**, це **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
+Якщо **VPN-з'єднання було встановлено**, вам слід шукати **`.opvn`** конфігураційні файли в системі. Більше того, одне з місць, де ви можете знайти **конфігурації**, це **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
#### **Постексплуатація**
diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md
index ec9560ca7..77150993b 100644
--- a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md
@@ -1,4 +1,4 @@
-# AWS - Перерахунок реляційної бази даних (RDS)
+# AWS - Relational Database (RDS) Enum
{{#include ../../../banners/hacktricks-training.md}}
@@ -20,7 +20,7 @@ AWS RDS підтримує різні широко використовуван
## Облікові дані
-При створенні кластера БД майстерний **ім'я користувача** може бути налаштований (**`admin`** за замовчуванням). Щоб згенерувати пароль цього користувача, ви можете:
+При створенні кластера DB майстер **ім'я користувача** може бути налаштоване (**`admin`** за замовчуванням). Щоб згенерувати пароль цього користувача, ви можете:
- **Вказати** **пароль** самостійно
- Сказати RDS **автоматично згенерувати** його
@@ -30,17 +30,17 @@ AWS RDS підтримує різні широко використовуван
### Аутентифікація
-Існує 3 типи варіантів аутентифікації, але використання **майстерного пароля завжди дозволено**:
+Існує 3 типи варіантів аутентифікації, але використання **майстер-пароля завжди дозволено**:
### Публічний доступ та VPC
-За замовчуванням **публічний доступ не надається** базам даних, однак він **може бути наданий**. Тому за замовчуванням лише машини з тієї ж VPC зможуть отримати доступ до неї, якщо вибрана **група безпеки** (зберігається в EC2 SG) дозволяє це.
+За замовчуванням **публічний доступ не надається** базам даних, однак він **може бути наданий**. Тому за замовчуванням лише машини з тієї ж VPC зможуть отримати доступ до неї, якщо вибрана **група безпеки** (зберігається в EC2 SG) це дозволяє.
-Замість того, щоб відкривати екземпляр БД, можна створити **RDS Proxy**, який **покращує** **масштабованість** та **доступність** кластера БД.
+Замість того, щоб відкривати екземпляр бази даних, можна створити **RDS Proxy**, який **покращує** **масштабованість** та **доступність** кластера бази даних.
-Більше того, **порт бази даних також може бути змінений**.
+Крім того, **порт бази даних також може бути змінений**.
### Шифрування
@@ -53,24 +53,24 @@ AWS RDS підтримує різні широко використовуван
#### Прозоре шифрування даних (TDE)
-Поряд з можливостями шифрування, властивими RDS на рівні програми, RDS також підтримує **додаткові механізми шифрування на платформі** для захисту даних у спокої. Це включає **Прозоре шифрування даних (TDE)** для Oracle та SQL Server. Однак важливо зазначити, що хоча TDE підвищує безпеку, шифруючи дані в спокої, це також може **вплинути на продуктивність бази даних**. Цей вплив на продуктивність особливо помітний при використанні разом з криптографічними функціями MySQL або криптографічними функціями Microsoft Transact-SQL.
+Окрім можливостей шифрування, властивих RDS на рівні програми, RDS також підтримує **додаткові механізми шифрування на платформі** для захисту даних у спокої. Це включає **Прозоре шифрування даних (TDE)** для Oracle та SQL Server. Однак важливо зазначити, що хоча TDE підвищує безпеку, шифруючи дані в спокої, це також може **вплинути на продуктивність бази даних**. Цей вплив на продуктивність особливо помітний при використанні разом з криптографічними функціями MySQL або криптографічними функціями Microsoft Transact-SQL.
Щоб використовувати TDE, необхідні певні попередні кроки:
1. **Асоціація групи параметрів**:
-- База даних повинна бути асоційована з групою параметрів. Групи параметрів служать контейнерами для налаштувань і функцій, полегшуючи управління базою даних, включаючи покращення безпеки.
+- База даних повинна бути асоційована з групою параметрів. Групи параметрів слугують контейнерами для налаштувань і функцій, полегшуючи управління базою даних, включаючи покращення безпеки.
- Однак важливо зазначити, що групи параметрів доступні лише для певних движків бази даних і версій.
2. **Включення TDE в групу параметрів**:
- Після асоціації з групою параметрів опція Oracle Transparent Data Encryption повинна бути включена в цю групу.
-- Важливо усвідомлювати, що після додавання опції TDE до групи параметрів вона стає постійною частиною і не може бути видалена.
+- Важливо усвідомлювати, що після додавання опції TDE до групи параметрів вона стає постійною і не може бути видалена.
3. **Режими шифрування TDE**:
- TDE пропонує два різні режими шифрування:
- **Шифрування таблиць TDE**: Цей режим шифрує цілі таблиці, забезпечуючи ширший обсяг захисту даних.
- **Шифрування стовпців TDE**: Цей режим зосереджується на шифруванні конкретних, окремих елементів у базі даних, що дозволяє більш детально контролювати, які дані шифруються.
-Розуміння цих попередніх вимог і оперативних тонкощів TDE є важливим для ефективного впровадження та управління шифруванням у RDS, забезпечуючи як безпеку даних, так і відповідність необхідним стандартам.
+Розуміння цих передумов і оперативних тонкощів TDE є важливим для ефективного впровадження та управління шифруванням у RDS, забезпечуючи як безпеку даних, так і відповідність необхідним стандартам.
-### Перерахунок
+### Перерахування
```bash
# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
@@ -117,7 +117,7 @@ aws rds modify-db-instance --db-instance-identifier --master-user-password
../aws-privilege-escalation/aws-rds-privesc.md
{{#endref}}
-### Після експлуатації
+### Постексплуатація
{{#ref}}
../aws-post-exploitation/aws-rds-post-exploitation.md
@@ -134,7 +134,7 @@ aws rds modify-db-instance --db-instance-identifier --master-user-password
Існують способи доступу до даних DynamoDB з використанням **SQL-синтаксису**, отже, типові **SQL-ін'єкції також можливі**.
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/sql-injection
+https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}
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 0f4a4fe88..1877dab7e 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 - Кореневий користувач облікового запису
@@ -22,7 +22,7 @@ AWS CloudTrail **реєструє та моніторить активність
Події записуються в новий файл журналу **приблизно кожні 5 хвилин у файлі JSON**, вони зберігаються CloudTrail, а в кінцевому підсумку файли журналів **доставляються в S3 приблизно через 15 хвилин**.\
Журнали CloudTrail можуть бути **агреговані між обліковими записами та регіонами.**\
CloudTrail дозволяє використовувати **цілісність файлів журналів, щоб мати можливість перевірити, що ваші файли журналів залишилися незмінними** з моменту їх доставки вам. Він створює SHA-256 хеш журналів у файлі дайджесту. SHA-256 хеш нових журналів створюється щогодини.\
-При створенні Trail селектори подій дозволять вам вказати, які події журналювати: управлінські, дані або інсайти.
+При створенні Trail селектори подій дозволять вам вказати, які події реєструвати: управлінські, дані або події аналітики.
Журнали зберігаються в кошику S3. За замовчуванням використовується шифрування на стороні сервера (SSE-S3), тому AWS розшифрує вміст для людей, які мають до нього доступ, але для додаткової безпеки ви можете використовувати SSE з KMS та вашими власними ключами.
@@ -55,7 +55,7 @@ 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: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Безпека
-| Цілісність файлів логів CloudTrail |
Перевірити, чи логи були підроблені (змінені або видалені)
Використовує файли дайджесту (створює хеш для кожного файлу)
SHA-256 хешування
SHA-256 з RSA для цифрового підпису
приватний ключ, що належить Amazon
Створення файлу дайджесту займає 1 годину (здійснюється щогодини)
|
+| Цілісність файлів логів CloudTrail |
Перевірити, чи не були змінені логи (модифіковані або видалені)
Використовує файли дайджесту (створює хеш для кожного файлу)
SHA-256 хешування
SHA-256 з RSA для цифрового підпису
приватний ключ, що належить Amazon
Створення файлу дайджесту займає 1 годину (виконується щогодини)
Використовуйте політики IAM та політики бакетів S3
команда безпеки —> адміністраторський доступ
аудитори —> доступ лише для читання
Використовуйте SSE-S3/SSE-KMS для шифрування логів
|
-| Запобігти видаленню файлів логів |
Обмежити доступ до видалення за допомогою IAM та політик бакетів
Налаштувати видалення S3 MFA
Перевірити за допомогою валідації файлів логів
|
+| Запобігти видаленню файлів логів |
Обмежити доступ до видалення за допомогою IAM та політик бакетів
Налаштувати S3 MFA видалення
Перевірити за допомогою валідації файлів логів
|
## Консультант доступу
-AWS Access Advisor покладається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Консультант доступу використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Консультант доступу може визначити, які сервіси AWS використовував IAM користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
+AWS Access Advisor спирається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Access Advisor використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Access Advisor може визначити, які сервіси AWS використовував IAM-користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
> [!TIP]
-> Отже, Консультант доступу інформує про **необхідні дозволи, що надаються користувачам**, щоб адміністратор міг їх видалити
+> Отже, Access Advisor інформує про **необхідні дозволи, що надаються користувачам**, щоб адміністратор міг їх видалити
@@ -139,7 +139,7 @@ print(response)
Для отримання додаткової інформації про CSV-ін'єкції перегляньте сторінку:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/formula-injection
+https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
{{#endref}}
Для отримання додаткової інформації про цю конкретну техніку перегляньте [https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/](https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/)
@@ -148,17 +148,17 @@ https://book.hacktricks.xyz/pentesting-web/formula-injection
### HoneyTokens **обхід**
-Honeytokens створюються для **виявлення ексфільтрації чутливої інформації**. У випадку з AWS, це **ключі AWS, використання яких моніториться**, якщо щось викликає дію з цим ключем, то хтось, напевно, вкрали цей ключ.
+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`** з'являється в імені ролі в повідомленні про помилку
-- **SpaceSiren** використовує **uuids** для генерації імен користувачів: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
-- Якщо **ім'я виглядає як випадково згенероване**, є високі ймовірності, що це HoneyToken.
+- Якщо **`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,24 +189,24 @@ 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>)
> [!CAUTION]
> Зверніть увагу, що всі публічні API, виявлені як такі, що не створюють журнали CloudTrail, тепер виправлені, тому, можливо, вам потрібно знайти свої власні...
>
-> Для отримання додаткової інформації перевірте [**оригінальне дослідження**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
+> Для отримання додаткової інформації перегляньте [**оригінальне дослідження**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
### Доступ до третьої інфраструктури
-Деякі служби AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **кластери Kubernetes** (EKS). Користувач, **який безпосередньо спілкується з цими службами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
+Деякі сервіси AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **Kubernetes** кластери (EKS). Користувач, **який безпосередньо спілкується з цими сервісами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
-Отже, користувач з доступом до EKS, який виявив URL API EKS, може згенерувати токен локально та **спілкуватися з API-сервісом без виявлення 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 **не буде перевіряти події запису**, наприклад).
Ви можете налаштувати селектор подій відповідно до ваших конкретних вимог.
@@ -249,14 +249,14 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration
- Видалити S3 бакет
- Змінити політику бакету, щоб заборонити будь-які записи з сервісу CloudTrail
- Додати політику життєвого циклу до S3 бакету для видалення об'єктів
-- Вимкнути ключ kms, який використовується для шифрування журналів CloudTrail
+- Вимкнути ключ kms, що використовується для шифрування журналів CloudTrail
### Ransomware Cloudtrail
#### Ransomware S3
Ви можете **згенерувати асиметричний ключ** і змусити **CloudTrail зашифрувати дані** цим ключем і **видалити приватний ключ**, щоб вміст CloudTrail не можна було відновити.\
-Це в основному **S3-KMS ransomware**, пояснене в:
+Це, по суті, **S3-KMS ransomware**, пояснене в:
{{#ref}}
../../aws-post-exploitation/aws-s3-post-exploitation.md
@@ -264,7 +264,7 @@ aws s3api put-bucket-lifecycle --bucket --lifecycle-configuration
**KMS ransomware**
-Це найпростіший спосіб виконати попередню атаку з різними вимогами до дозволів:
+Це найпростіший спосіб виконати попередню атаку з іншими вимогами до дозволів:
{{#ref}}
../../aws-post-exploitation/aws-kms-post-exploitation.md
diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md
index 1d958be0f..c9d4fe450 100644
--- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md
+++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum.md
@@ -1,8 +1,8 @@
-# AWS - EC2 Універсальний Перелік
+# AWS - EC2 Unauthenticated Enum
{{#include ../../../banners/hacktricks-training.md}}
-## EC2 та Супутні Сервіси
+## EC2 та пов'язані сервіси
Перевірте на цій сторінці більше інформації про це:
@@ -10,19 +10,19 @@
../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
{{#endref}}
-### Публічні Порти
+### Публічні порти
-Можливо **вивести будь-який порт віртуальних машин в інтернет**. Залежно від **того, що працює** на відкритому порту, зловмисник може зловживати цим.
+Можливо **вивести будь-який порт віртуальних машин в інтернет**. Залежно від **того, що працює** на відкритому порту, зловмисник може це зловживати.
#### SSRF
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
+https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
-### Публічні AMI та EBS Снапшоти
+### Публічні AMI та знімки EBS
-AWS дозволяє **надавати доступ будь-кому для завантаження AMI та Снапшотів**. Ви можете дуже легко перерахувати ці ресурси зі свого облікового запису:
+AWS дозволяє **надавати доступ будь-кому для завантаження AMI та знімків**. Ви можете дуже легко перерахувати ці ресурси зі свого облікового запису:
```bash
# Public AMIs
aws ec2 describe-images --executable-users all
@@ -37,7 +37,7 @@ aws ec2 describe-images --executable-users all --query 'Images[?contains(ImageLo
aws ec2 describe-snapshots --restorable-by-user-ids all
aws ec2 describe-snapshots --restorable-by-user-ids all | jq '.Snapshots[] | select(.OwnerId == "099720109477")'
```
-Якщо ви знайдете знімок, який може бути відновлений будь-ким, обов'язково перевірте [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) для отримання інструкцій щодо завантаження та грабежу знімка.
+Якщо ви знайдете знімок, який може бути відновлений будь-ким, обов'язково перевірте [AWS - EBS Snapshot Dump](https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/index.html#ebs-snapshot-dump) для отримання інструкцій щодо завантаження та грабежу знімка.
#### Шаблон публічного URL
```bash
diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md
index 2e0cabded..8d9256bb0 100644
--- a/src/pentesting-cloud/azure-security/README.md
+++ b/src/pentesting-cloud/azure-security/README.md
@@ -10,30 +10,30 @@ az-basic-information/
## Методологія Azure Pentester/Red Team
-Для аудиту середовища AZURE дуже важливо знати: які **послуги використовуються**, що **експонується**, хто має **доступ** до чого, і як внутрішні Azure сервіси та **зовнішні сервіси** з'єднані.
+Щоб провести аудит середовища AZURE, дуже важливо знати: які **послуги використовуються**, що **виставлено на показ**, хто має **доступ** до чого, і як внутрішні служби Azure та **зовнішні служби** з'єднані.
З точки зору Red Team, **перший крок для компрометації середовища Azure** - це отримати деякі **облікові дані** для Azure AD. Ось кілька ідей, як це зробити:
- **Витоки** в github (або подібних) - OSINT
- **Соціальна** інженерія
- Повторне використання **паролів** (витоки паролів)
-- Вразливості в Azure-Hosted Applications
-- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) з доступом до метаданих
+- Вразливості в Azure-розміщених додатках
+- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) з доступом до метаданих
- **Читання локальних файлів**
- `/home/USERNAME/.azure`
- `C:\Users\USERNAME\.azure`
- Файл **`accessTokens.json`** в `az cli` до 2.30 - січень 2022 - зберігав **токени доступу у відкритому тексті**
-- Файл **`azureProfile.json`** містить **інформацію** про увійшлого користувача.
+- Файл **`azureProfile.json`** містить **інформацію** про увійшого користувача.
- **`az logout`** видаляє токен.
-- Старі версії **`Az PowerShell`** зберігали **токени доступу** у **відкритому** тексті в **`TokenCache.dat`**. Він також зберігає **ServicePrincipalSecret** у **відкритому** тексті в **`AzureRmContext.json`**. Командлет **`Save-AzContext`** можна використовувати для **зберігання** **токенів**.\
+- Старі версії **`Az PowerShell`** зберігали **токени доступу** у **відкритому** тексті в **`TokenCache.dat`**. Він також зберігає **ServicePrincipalSecret** у **відкритому** тексті в **`AzureRmContext.json`**. Команда **`Save-AzContext`** може бути використана для **зберігання** **токенів**.\
Використовуйте `Disconnect-AzAccount`, щоб видалити їх.
- 3-ті сторони **зламані**
- **Внутрішній** співробітник
-- [**Звичайне фішинг**](https://book.hacktricks.xyz/generic-methodologies-and-resources/phishing-methodology) (облікові дані або Oauth App)
+- [**Загальний фішинг**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (облікові дані або Oauth App)
- [Фішинг аутентифікації за кодом пристрою](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
- [Azure **Password Spraying**](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
-Навіть якщо ви **не компрометували жодного користувача** всередині Azure тенанту, який ви атакуєте, ви можете **зібрати деяку інформацію** з нього:
+Навіть якщо ви **не зламали жодного користувача** всередині Azure-оренди, яку ви атакуєте, ви можете **зібрати деяку інформацію** з неї:
{{#ref}}
az-unauthenticated-enum-and-initial-entry/
@@ -52,19 +52,19 @@ az-unauthenticated-enum-and-initial-entry/
Якщо ви знайшли SSRF на машині всередині Azure, перевірте цю сторінку на трюки:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
+https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html
{{#endref}}
### Обхід умов входу
-У випадках, коли у вас є дійсні облікові дані, але ви не можете увійти, ось кілька загальних захистів, які можуть бути на місці:
+У випадках, коли у вас є дійсні облікові дані, але ви не можете увійти, ось деякі загальні захисти, які можуть бути на місці:
- **IP-білий список** -- Вам потрібно зламати дійсний IP
-- **Гео обмеження** -- Дізнайтеся, де живе користувач або де знаходяться офіси компанії, і отримайте IP з того ж міста (або країни принаймні)
+- **Гео-обмеження** -- Дізнайтеся, де живе користувач або де знаходяться офіси компанії, і отримайте IP з того ж міста (або країни, принаймні)
- **Браузер** -- Можливо, лише браузер з певної ОС (Windows, Linux, Mac, Android, iOS) дозволений. Дізнайтеся, яку ОС використовує жертва/компанія.
-- Ви також можете спробувати **зламати облікові дані Service Principal**, оскільки вони зазвичай менш обмежені, і їх вхід менш перевіряється.
+- Ви також можете спробувати **зламати облікові дані Service Principal**, оскільки вони зазвичай менш обмежені, і їх вхід менш перевіряється
Після обходу ви можете повернутися до вашої початкової налаштування і все ще мати доступ.
@@ -120,13 +120,13 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user
{{#endtabs }}
> [!CAUTION]
-> Одна з найважливіших команд для перерахунку Azure - це **`Get-AzResource`** з Az PowerShell, оскільки вона дозволяє вам **дізнатися, які ресурси ваш поточний користувач може бачити**.
+> Один з найважливіших команд для перерахунку Azure - це **`Get-AzResource`** з Az PowerShell, оскільки вона дозволяє вам **дізнатися, які ресурси ваш поточний користувач має видимість**.
>
> Ви можете отримати ту ж інформацію в **веб-консолі**, перейшовши за посиланням [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) або шукаючи "Усі ресурси".
### ENtra ID Enumeration
-За замовчуванням будь-який користувач повинен мати **достатньо прав для перерахунку** таких речей, як користувачі, групи, ролі, служби... (перевірте [стандартні дозволи AzureAD](az-basic-information/#default-user-permissions)).\
+За замовчуванням будь-який користувач повинен мати **достатньо прав для перерахунку** таких речей, як користувачі, групи, ролі, служби-принципали... (перевірте [стандартні дозволи AzureAD](az-basic-information/index.html#default-user-permissions)).\
Тут ви можете знайти посібник:
{{#ref}}
@@ -134,8 +134,8 @@ az-services/az-azuread.md
{{#endref}}
> [!NOTE]
-> Тепер, коли ви **маєте деяку інформацію про свої облікові дані** (і якщо ви червона команда, сподіваюся, ви **не були виявлені**). Час з'ясувати, які сервіси використовуються в середовищі.\
-> У наступному розділі ви можете перевірити кілька способів **перерахувати деякі загальні сервіси.**
+> Тепер, коли ви **маєте деяку інформацію про свої облікові дані** (і якщо ви червона команда, сподіваюсь, ви **не були виявлені**). Час з'ясувати, які сервіси використовуються в середовищі.\
+> У наступному розділі ви можете перевірити деякі способи **перерахунку деяких загальних сервісів.**
## App Service SCM
@@ -147,7 +147,7 @@ az-services/az-azuread.md
## Azure DevOps
-Azure DevOps відокремлений від Azure. Він має репозиторії, конвеєри (yaml або release), дошки, вікі та інше. Групи змінних використовуються для зберігання значень змінних і секретів.
+Azure DevOps відокремлений від Azure. Він має репозиторії, конвеєри (yaml або реліз), дошки, вікі та інше. Групи змінних використовуються для зберігання значень змінних і секретів.
## Debug | MitM az cli
@@ -155,7 +155,7 @@ Azure DevOps відокремлений від Azure. Він має репози
```bash
az account management-group list --output table --debug
```
-Щоб виконати **MitM** для інструменту та **перевірити всі запити**, які він надсилає вручну, ви можете зробити:
+Щоб виконати **MitM** для інструменту та **перевірити всі запити**, які він надсилає вручну, ви можете зробити:
{{#tabs }}
{{#tab name="Bash" }}
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md
index 617996c01..a314aa3c1 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.md
@@ -9,15 +9,15 @@
Ви можете побачити, де знаходяться **браузерні куки** в:
{{#ref}}
-https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts?q=browse#google-chrome
+https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.html#google-chrome
{{#endref}}
## Атака
-Складна частина полягає в тому, що ці **куки зашифровані** для **користувача** через Microsoft Data Protection API (**DPAPI**). Це зашифровано за допомогою криптографічних [ключів, пов'язаних з користувачем](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords), до яких належать куки. Ви можете знайти більше інформації про це в:
+Складна частина полягає в тому, що ці **куки зашифровані** для **користувача** через Microsoft Data Protection API (**DPAPI**). Це зашифровано за допомогою криптографічних [ключів, пов'язаних з користувачем](https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html), до яких належать куки. Ви можете знайти більше інформації про це в:
{{#ref}}
-https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords
+https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html
{{#endref}}
З Mimikatz в руках, я можу **екстрактувати куки користувача**, навіть якщо вони зашифровані, за допомогою цієї команди:
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
index a9aa9e14e..19e083047 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
@@ -4,15 +4,15 @@
## Основна інформація
-[З документів:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Федерація** - це колекція **доменів**, які встановили **довіру**. Рівень довіри може варіюватися, але зазвичай включає **аутентифікацію** і майже завжди включає **авторизацію**. Типова федерація може включати **кілька організацій**, які встановили **довіру** для **спільного доступу** до набору ресурсів.
+[З документації:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Федерація** - це колекція **доменів**, які встановили **довіру**. Рівень довіри може варіюватися, але зазвичай включає **аутентифікацію** і майже завжди включає **авторизацію**. Типова федерація може включати **кілька організацій**, які встановили **довіру** для **спільного доступу** до набору ресурсів.
Ви можете **федеративно з'єднати ваше локальне** середовище **з Azure AD** і використовувати цю федерацію для аутентифікації та авторизації. Цей метод входу забезпечує, що вся **аутентифікація користувачів відбувається локально**. Цей метод дозволяє адміністраторам впроваджувати більш суворі рівні контролю доступу. Федерація з **AD FS** та PingFederate доступна.
-В основному, у Федерації вся **аутентифікація** відбувається в **локальному** середовищі, і користувачі отримують SSO у всіх довірених середовищах. Тому користувачі можуть **доступати** **хмарні** додатки, використовуючи свої **локальні облікові дані**.
+В основному, у Федерації вся **аутентифікація** відбувається в **локальному** середовищі, і користувачі отримують SSO у всіх довірених середовищах. Тому користувачі можуть **доступати** до **хмарних** додатків, використовуючи свої **локальні облікові дані**.
-**Мова розмітки безпеки (SAML)** використовується для **обміну** всією інформацією про аутентифікацію та авторизацію між постачальниками.
+**Мова маркування безпеки (SAML)** використовується для **обміну** всією інформацією про аутентифікацію та авторизацію між постачальниками.
У будь-якій конфігурації федерації є три сторони:
@@ -24,21 +24,21 @@
-1. Спочатку користувач отримує доступ до програми (Постачальник послуг або SP, наприклад, консоль AWS або веб-клієнт vSphere). Цей крок може бути пропущений, що призводить до безпосереднього переходу клієнта до IdP (Постачальник ідентичності) залежно від конкретної реалізації.
-2. Потім SP визначає відповідний IdP (наприклад, AD FS, Okta) для аутентифікації користувача. Потім він формує запит SAML (Мова розмітки безпеки) AuthnRequest і перенаправляє клієнта до вибраного IdP.
+1. Спочатку користувач отримує доступ до програми (Постачальник послуг або SP, наприклад, консоль AWS або веб-клієнт vSphere). Цей крок може бути пропущений, що призводить клієнта безпосередньо до IdP (Постачальник ідентичності) залежно від конкретної реалізації.
+2. Потім SP визначає відповідний IdP (наприклад, AD FS, Okta) для аутентифікації користувача. Потім він формує SAML (Мова маркування безпеки) AuthnRequest і перенаправляє клієнта до вибраного IdP.
3. IdP бере на себе аутентифікацію користувача. Після аутентифікації IdP формує SAMLResponse і пересилає його до SP через користувача.
-4. Нарешті, SP оцінює SAMLResponse. Якщо валідація пройшла успішно, що означає довірчі відносини з IdP, користувачу надається доступ. Це позначає завершення процесу входу, що дозволяє користувачу використовувати сервіс.
+4. Нарешті, SP оцінює SAMLResponse. Якщо валідація пройшла успішно, що означає довірчі відносини з IdP, користувачу надається доступ. Це завершує процес входу, дозволяючи користувачу використовувати сервіс.
**Якщо ви хочете дізнатися більше про аутентифікацію SAML та поширені атаки, перейдіть за посиланням:**
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/saml-attacks
+https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
{{#endref}}
## Півтування
- AD FS є моделлю ідентичності на основі заяв.
-- "..заяви - це просто твердження (наприклад, ім'я, особа, група), зроблені про користувачів, які використовуються в основному для авторизації доступу до заявлених додатків, розташованих де завгодно в Інтернеті."
+- "..заяви - це просто твердження (наприклад, ім'я, особистість, група), зроблені про користувачів, які використовуються в основному для авторизації доступу до заявлених додатків, розташованих де завгодно в Інтернеті."
- Заяви для користувача записуються всередині SAML токенів і потім підписуються для забезпечення конфіденційності IdP.
- Користувач ідентифікується за допомогою ImmutableID. Він є глобально унікальним і зберігається в Azure AD.
- ImmutableID зберігається локально як ms-DS-ConsistencyGuid для користувача і/або може бути отриманий з GUID користувача.
@@ -54,13 +54,13 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks
### Golden SAML
-Процес, у якому **Постачальник ідентичності (IdP)** генерує **SAMLResponse** для авторизації входу користувача, є надзвичайно важливим. Залежно від конкретної реалізації IdP, **відповідь** може бути **підписана** або **зашифрована** за допомогою **приватного ключа IdP**. Ця процедура дозволяє **Постачальнику послуг (SP)** підтвердити автентичність SAMLResponse, забезпечуючи, що він дійсно був виданий довіреним IdP.
+Процес, за яким **Постачальник ідентичності (IdP)** генерує **SAMLResponse** для авторизації входу користувача, є надзвичайно важливим. Залежно від конкретної реалізації IdP, **відповідь** може бути **підписана** або **зашифрована** за допомогою **приватного ключа IdP**. Ця процедура дозволяє **Постачальнику послуг (SP)** підтвердити автентичність SAMLResponse, забезпечуючи, що він дійсно був виданий довіреним IdP.
-Можна провести паралель з [атакою золотого квитка](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/golden-ticket), де ключ, що аутентифікує особу та права користувача (KRBTGT для золотих квитків, приватний ключ підпису токенів для золотого SAML), може бути маніпульований для **підробки об'єкта аутентифікації** (TGT або SAMLResponse). Це дозволяє видавати себе за будь-якого користувача, надаючи несанкціонований доступ до SP.
+Можна провести паралель з [атакою золотого квитка](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/index.html#golden-ticket), де ключ, що аутентифікує особу та дозволи користувача (KRBTGT для золотих квитків, приватний ключ підпису токенів для золотого SAML), може бути маніпульований для **підробки об'єкта аутентифікації** (TGT або SAMLResponse). Це дозволяє видавати себе за будь-якого користувача, надаючи несанкціонований доступ до SP.
Золоті SAML мають певні переваги:
-- Вони можуть бути **створені віддалено**, без необхідності бути частиною домену або федерації.
+- Їх можна **створити віддалено**, без необхідності бути частиною домену або федерації.
- Вони залишаються ефективними навіть при **включеній двофакторній аутентифікації (2FA)**.
- Приватний ключ підпису токенів **не оновлюється автоматично**.
- **Зміна пароля користувача не анулює** вже згенерований SAML.
@@ -69,7 +69,7 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks
[Служби федерації Active Directory (AD FS)]() - це служба Microsoft, яка полегшує **безпечний обмін інформацією про особу** між довіреними бізнес-партнерами (федерація). Вона дозволяє службі домену ділитися ідентичностями користувачів з іншими постачальниками послуг у федерації.
-З AWS, що довіряє скомпрометованому домену (в федерації), цю вразливість можна експлуатувати для потенційного **отримання будь-яких прав у середовищі AWS**. Атака вимагає **приватного ключа, що використовується для підпису SAML об'єктів**, подібно до необхідності мати KRBTGT в атаці золотого квитка. Доступ до облікового запису користувача AD FS є достатнім для отримання цього приватного ключа.
+З AWS, що довіряє скомпрометованому домену (в федерації), цю вразливість можна експлуатувати для потенційного **отримання будь-яких дозволів у середовищі AWS**. Атака вимагає **приватного ключа, що використовується для підпису SAML об'єктів**, подібно до необхідності мати KRBTGT в атаці золотого квитка. Доступ до облікового запису користувача AD FS є достатнім для отримання цього приватного ключа.
Вимоги для виконання атаки Golden SAML включають:
@@ -83,7 +83,7 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks
_Тільки елементи, виділені жирним, є обов'язковими. Інші можуть бути заповнені за бажанням._
-Щоб отримати **приватний ключ**, необхідний доступ до **облікового запису користувача AD FS**. Звідти приватний ключ можна **експортувати з особистого сховища** за допомогою таких інструментів, як [mimikatz](https://github.com/gentilkiwi/mimikatz). Щоб зібрати іншу необхідну інформацію, ви можете використовувати модуль Microsoft.Adfs.Powershell наступним чином, переконавшись, що ви увійшли як користувач ADFS:
+Щоб отримати **приватний ключ**, необхідний доступ до **облікового запису користувача AD FS**. Звідти приватний ключ можна **експортувати з особистого сховища** за допомогою таких інструментів, як [mimikatz](https://github.com/gentilkiwi/mimikatz). Щоб зібрати іншу необхідну інформацію, ви можете використовувати Microsoft.Adfs.Powershell snapin наступним чином, переконавшись, що ви увійшли як користувач ADFS:
```powershell
# From an "AD FS" session
# After having exported the key with mimikatz
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
index e57976ffa..55b4a9ad3 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
@@ -12,17 +12,17 @@ az-primary-refresh-token-prt.md
```
Dsregcmd.exe /status
```
-У розділі SSO State ви повинні бачити **`AzureAdPrt`**, встановлений на **YES**.
+У розділі SSO State ви повинні побачити **`AzureAdPrt`**, встановлений на **YES**.
-У тому ж виході ви також можете побачити, чи **пристрій приєднано до Azure** (в полі `AzureAdJoined`):
+У тому ж виході ви також можете побачити, чи **пристрій приєднано до Azure** (у полі `AzureAdJoined`):
## PRT Cookie
-PRT cookie насправді називається **`x-ms-RefreshTokenCredential`** і це JSON Web Token (JWT). JWT містить **3 частини**, **заголовок**, **вантаж** і **підпис**, розділені `.` і всі закодовані в base64, безпечному для URL. Типовий PRT cookie містить наступний заголовок і тіло:
+PRT cookie насправді називається **`x-ms-RefreshTokenCredential`** і це JSON Web Token (JWT). JWT містить **3 частини**, **заголовок**, **корисне навантаження** та **підпис**, розділені `.` і всі закодовані в base64, безпечному для URL. Типовий PRT cookie містить наступний заголовок і тіло:
```json
{
"alg": "HS256",
@@ -40,7 +40,7 @@ PRT cookie насправді називається **`x-ms-RefreshTokenCredent
Процес **LSASS** надішле до TPM **KDF context**, а TPM використає **session key** (зібраний під час реєстрації пристрою в AzureAD і збережений у TPM) та попередній контекст для **виведення** **ключа**, і цей **виведений ключ** використовується для **підписання куки PRT (JWT).**
-**KDF context** - це nonce з AzureAD і PRT, що створює **JWT**, змішаний з **контекстом** (випадкові байти).
+**KDF context** - це nonce з AzureAD та PRT, що створює **JWT**, змішаний з **контекстом** (випадкові байти).
Отже, навіть якщо PRT не можна витягти, оскільки він знаходиться всередині TPM, можливо зловживати LSASS для **запиту виведених ключів з нових контекстів і використання згенерованих ключів для підписання куки**.
@@ -49,15 +49,15 @@ PRT cookie насправді називається **`x-ms-RefreshTokenCredent
## Сценарії зловживання PRT
Як **звичайний користувач**, можливо **запитати використання PRT**, звернувшись до LSASS за даними SSO.\
-Це можна зробити, як **рідні додатки**, які запитують токени у **Web Account Manager** (посередник токенів). WAM передає запит до **LSASS**, який запитує токени, використовуючи підписане твердження PRT. Або це можна зробити за допомогою **браузерних (веб) потоків**, де **PRT cookie** використовується як **заголовок** для автентифікації запитів до сторінок входу Azure AS.
+Це можна зробити як **нативні додатки**, які запитують токени у **Web Account Manager** (брокер токенів). WAM передає запит до **LSASS**, який запитує токени, використовуючи підписане твердження PRT. Або це можна зробити за допомогою **браузерних (веб) потоків**, де **PRT cookie** використовується як **заголовок** для автентифікації запитів до сторінок входу Azure AS.
-Як **SYSTEM** ви могли б **викрасти PRT, якщо він не захищений** TPM або **взаємодіяти з ключами PRT у LSASS**, використовуючи крипто API.
+Як **SYSTEM** ви можете **викрасти PRT, якщо він не захищений** TPM або **взаємодіяти з ключами PRT у LSASS**, використовуючи крипто API.
-## Приклади атаки Pass-the-PRT
+## Приклади атак Pass-the-PRT
### Атака - ROADtoken
-Для отримання додаткової інформації про цей спосіб [**перевірте цей пост**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken запустить **`BrowserCore.exe`** з правильного каталогу та використає його для **отримання куки PRT**. Цю куки можна потім використовувати з ROADtools для автентифікації та **отримання постійного токена оновлення**.
+Для отримання додаткової інформації про цей спосіб [**перевірте цей пост**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken запустить **`BrowserCore.exe`** з правильного каталогу та використає його для **отримання куки PRT**. Цю куки можна використовувати з ROADtools для автентифікації та **отримання постійного токена оновлення**.
Щоб згенерувати дійсну куки PRT, перше, що вам потрібно, це nonce.\
Ви можете отримати це за допомогою:
@@ -80,7 +80,7 @@ AwABAAAAAAACAOz_BAD0_8vU8dH9Bb0ciqF_haudN2OkDdyluIE2zHStmEQdUVbiSUaQi_EdsWfi1 9-
```powershell
roadrecon auth prt-init
```
-Тоді ви можете використовувати [**roadtoken**](https://github.com/dirkjanm/ROADtoken), щоб отримати новий PRT (запустіть інструмент з процесу користувача для атаки):
+Тоді ви можете використовувати [**roadtoken**](https://github.com/dirkjanm/ROADtoken), щоб отримати новий PRT (запустіть у інструменті з процесу користувача для атаки):
```powershell
.\ROADtoken.exe
```
@@ -96,11 +96,11 @@ roadrecon auth --prt-cookie
# Connect
Connect-AzureAD --AadAccessToken --AccountId
```
-### Атака - Використання roadrecon
+### Attack - Using roadrecon
-### Атака - Використання AADInternals та витоку PRT
+### Attack - Using AADInternals and a leaked PRT
-`Get-AADIntUserPRTToken` **отримує PRT токен користувача** з комп'ютера, приєднаного до Azure AD або гібридного приєднання. Використовує `BrowserCore.exe` для отримання PRT токена.
+`Get-AADIntUserPRTToken` **отримує PRT токен користувача** з комп'ютера, приєднаного до Azure AD або гібридного комп'ютера. Використовує `BrowserCore.exe` для отримання PRT токена.
```powershell
# Get the PRToken
$prtToken = Get-AADIntUserPRTToken
@@ -146,21 +146,21 @@ HttpOnly: Set to True (checked)
Тоді перейдіть на [https://portal.azure.com](https://portal.azure.com)
> [!CAUTION]
-> Решта повинна бути за замовчуванням. Переконайтеся, що ви можете оновити сторінку, і кукі не зникне, якщо це станеться, ви могли зробити помилку і повинні пройти процес знову. Якщо ні, то все має бути добре.
+> Решта повинна бути за замовчуванням. Переконайтеся, що ви можете оновити сторінку, і кукі не зникне, якщо це станеться, ви могли зробити помилку і повинні пройти процес знову. Якщо ні, то все має бути в порядку.
### Атака - Mimikatz
#### Кроки
1. **PRT (Primary Refresh Token) витягується з LSASS** (Local Security Authority Subsystem Service) і зберігається для подальшого використання.
-2. **Наступним витягується Session Key**. Оскільки цей ключ спочатку видається, а потім повторно шифрується локальним пристроєм, це вимагає розшифровки за допомогою DPAPI masterkey. Докладну інформацію про DPAPI (Data Protection API) можна знайти в цих ресурсах: [HackTricks](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords), а для розуміння його застосування зверніться до [Pass-the-cookie attack](az-pass-the-cookie.md).
-3. Після розшифровки Session Key, **отримуються похідний ключ і контекст для PRT**. Вони є критично важливими для **створення кукі PRT**. Зокрема, похідний ключ використовується для підписання JWT (JSON Web Token), що складає кукі. Докладне пояснення цього процесу надано Дірком-Яном, доступне [тут](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/).
+2. **Наступним витягується Session Key**. Оскільки цей ключ спочатку видається, а потім повторно шифрується локальним пристроєм, це вимагає розшифрування за допомогою DPAPI masterkey. Детальну інформацію про DPAPI (Data Protection API) можна знайти в цих ресурсах: [HackTricks](https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.html), а для розуміння його застосування зверніться до [Pass-the-cookie attack](az-pass-the-cookie.md).
+3. Після розшифрування Session Key, **отримуються похідний ключ і контекст для PRT**. Вони є критично важливими для **створення кукі PRT**. Зокрема, похідний ключ використовується для підписання JWT (JSON Web Token), що складає кукі. Комплексне пояснення цього процесу надано Дірком-Яном, доступне [тут](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/).
> [!CAUTION]
-> Зверніть увагу, що якщо PRT знаходиться всередині TPM і не всередині `lsass`, **mimikatz не зможе його витягти**.\
+> Зверніть увагу, що якщо PRT знаходиться всередині TPM, а не всередині `lsass`, **mimikatz не зможе його витягти**.\
> Однак, буде можливим **отримати ключ з похідного ключа з контексту** з TPM і використовувати його для **підписання кукі (перевірте опцію 3).**
-Ви можете знайти **докладне пояснення виконаного процесу** для витягнення цих деталей тут: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/)
+Ви можете знайти **детальне пояснення виконаного процесу** для витягнення цих деталей тут: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/)
> [!WARNING]
> Це не буде точно працювати після виправлень серпня 2021 року для отримання PRT токенів інших користувачів, оскільки тільки користувач може отримати свій PRT (локальний адміністратор не може отримати PRT інших користувачів), але може отримати свій.
@@ -180,14 +180,14 @@ Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::cloudap"'
**Скопіюйте** частину, позначену **Prt**, і збережіть її.\
-Також витягніть ключ сесії (значення **`KeyValue`** поля **`ProofOfPossesionKey`**), яке ви можете побачити, виділене нижче. Це зашифровано, і нам потрібно буде використовувати наші майстер-ключі DPAPI для його розшифровки.
+Також витягніть ключ сесії (**`KeyValue`** поля **`ProofOfPossesionKey`**), який ви можете побачити, виділеним нижче. Це зашифровано, і нам потрібно буде використати наші майстер-ключі DPAPI для його розшифровки.
> [!NOTE]
> Якщо ви не бачите жодних даних PRT, це може бути тому, що у вас **немає жодних PRT** через те, що ваш пристрій не приєднаний до Azure AD, або ви **використовуєте стару версію** Windows 10.
-Щоб **розшифрувати** ключ сесії, вам потрібно **підвищити** свої привілеї до **SYSTEM**, щоб працювати в контексті комп'ютера, щоб мати можливість використовувати **майстер-ключ DPAPI для його розшифровки**. Ви можете використовувати наступні команди для цього:
+Щоб **розшифрувати** ключ сесії, вам потрібно **підвищити** свої привілеї до **SYSTEM**, щоб працювати в контексті комп'ютера і мати можливість використовувати **майстер-ключ DPAPI для його розшифровки**. Ви можете використовувати наступні команди для цього:
```
token::elevate
dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect
@@ -196,7 +196,7 @@ dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect
#### Варіант 1 - Повний Mimikatz
-- Тепер ви хочете скопіювати значення Context:
+- Тепер ви хочете скопіювати обидва значення Context:
@@ -219,10 +219,10 @@ HttpOnly: Set to True (checked)
```
- Потім перейдіть на [https://portal.azure.com](https://portal.azure.com)
-> [!УВАГА]
-> Решта повинна бути за замовчуванням. Переконайтеся, що ви можете оновити сторінку, і кукі не зникне, якщо це станеться, ви могли зробити помилку і вам доведеться пройти процес знову. Якщо ні, то все має бути добре.
+> [!CAUTION]
+> Решта повинна бути за замовчуванням. Переконайтеся, що ви можете оновити сторінку, і кукі не зникне, якщо це станеться, ви могли зробити помилку і вам доведеться пройти процес знову. Якщо ні, то все має бути в порядку.
-#### Варіант 2 - roadrecon з використанням PRT
+#### Option 2 - roadrecon using PRT
- Спочатку оновіть PRT, що зберегти його в `roadtx.prt`:
```bash
@@ -235,7 +235,7 @@ roadtx describe < .roadtools_auth
```
-#### Варіант 3 - roadrecon з використанням похідних ключів
+#### Option 3 - roadrecon використовуючи похідні ключі
Маючи контекст і похідний ключ, вивантажений за допомогою mimikatz, можна використовувати roadrecon для генерації нового підписаного cookie з:
```bash
diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md
index 492ccad51..c265ce234 100644
--- a/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md
+++ b/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md
@@ -19,7 +19,7 @@
Зловмисник може отримати доступ до екземплярів і встановити бекдор:
- Використовуючи традиційний **rootkit**, наприклад
-- Додаючи новий **публічний SSH ключ** (перевірте [EC2 privesc options](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc))
+- Додаючи новий **публічний SSH ключ** (перевірте [EC2 privesc options](https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.html))
- Встановлюючи бекдор у **User Data**
{{#include ../../../banners/hacktricks-training.md}}
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
new file mode 100644
index 000000000..4387a2e1c
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-cosmosDB-post-exploitation.md
@@ -0,0 +1,243 @@
+# Az - CosmosDB Post Exploitation
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
+
+## CosmosDB Post Exploitation
+Для отримання додаткової інформації про SQL Database перевірте:
+
+{% content-ref url="../az-services/az-cosmosDB.md" %}
+[az-cosmosDB.md](../az-services/az-cosmosDB.md)
+{% endcontent-ref %}
+
+
+### "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"
+З цією дозволом ви можете створювати або змінювати контейнери (колекції) в SQL базі даних облікового запису Azure Cosmos DB. Контейнери використовуються для зберігання даних, а зміни в них можуть вплинути на структуру бази даних та шаблони доступу.
+
+{% code overflow="wrap" %}
+```bash
+# Create
+az cosmosdb sql container create \
+--account-name \
+--resource-group \
+--database-name \
+--name \
+--partition-key-path
+
+#Update
+az cosmosdb sql container update \
+--account-name \
+--resource-group \
+--database-name \
+--name \
+--ttl 3600
+```
+{% endcode %}
+
+### "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
+З цією дозволом ви можете створювати або змінювати SQL бази даних в обліковому записі Azure Cosmos DB. Це дозволяє керувати структурою бази даних та додавати нові бази даних до облікового запису. Хоча цей дозвіл дозволяє створення бази даних, неналежне або несанкціоноване використання може призвести до непотрібного споживання ресурсів, збільшення витрат або операційних неефективностей.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb sql database create \
+--account-name \
+--resource-group \
+--name
+```
+{% endcode %}
+
+### "Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
+
+З цією дозволом ви можете змінити пріоритет відмови регіонів для облікового запису бази даних Azure Cosmos DB. Ця дія визначає порядок, у якому регіони стають основними під час події відмови. Неправильне використання цього дозволу може порушити високу доступність бази даних або призвести до непередбачених операційних наслідків.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb failover-priority-change \
+--name \
+--resource-group \
+--failover-policies
+
+```
+{% endcode %}
+
+### "Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
+З цією дозволом ви можете регенерувати основні або вторинні ключі для облікового запису Azure Cosmos DB. Це зазвичай використовується для підвищення безпеки шляхом заміни старих ключів, але це може порушити доступ для служб або додатків, які покладаються на поточні ключі.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb keys regenerate \
+--name \
+--resource-group \
+--key-kind
+
+```
+{% endcode %}
+
+### "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 \
+--resource-group \
+--database-name \
+--container-name \
+--name \
+--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
+--type Pre \
+--operation All
+```
+{% endcode %}
+
+### "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 \
+--resource-group \
+--database-name \
+--container-name \
+--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" %}
+```bash
+az cosmosdb sql trigger create \
+--account-name \
+--resource-group \
+--database-name \
+--container-name \
+--name \
+--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
+--type Pre \
+--operation All
+```
+{% endcode %}
+
+### "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
+З цією дозволом ви можете створювати або змінювати колекції в базах даних MongoDB в обліковому записі Azure Cosmos DB. Колекції використовуються для зберігання документів та визначення структури і розподілу даних.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb mongodb collection create \
+--account-name \
+--resource-group \
+--database-name \
+--name
+```
+{% endcode %}
+
+### "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"
+З цією дозволом ви можете створювати нові визначення ролей MongoDB в обліковому записі Azure Cosmos DB. Це дозволяє визначати користувацькі ролі з конкретними дозволами для користувачів MongoDB.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb mongodb role definition create \
+--account-name \
+--resource-group \
+--body '{
+"Id": ".readWriteRole",
+"RoleName": "readWriteRole",
+"Type": "CustomRole",
+"DatabaseName": "",
+"Privileges": [
+{
+"Resource": {
+"Db": "",
+"Collection": "mycollection"
+},
+"Actions": [
+"insert",
+"find",
+"update"
+]
+}
+],
+"Roles": []
+}'
+```
+{% endcode %}
+
+### "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 \
+--resource-group \
+--body '{
+"Id": ".myUser",
+"UserName": "myUser",
+"Password": "mySecurePassword",
+"DatabaseName": "",
+"CustomData": "TestCustomData",
+"Mechanisms": "SCRAM-SHA-256",
+"Roles": [
+{
+"Role": "readWriteRole",
+"Db": ""
+}
+]
+}'
+```
+{% endcode %}
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
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
new file mode 100644
index 000000000..102196cf9
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-mysql-post-exploitation.md
@@ -0,0 +1,167 @@
+# Az - MySQL Post Exploitation
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
+
+## MySQL Database Post Exploitation
+Для отримання додаткової інформації про MySQL Database перевірте:
+
+{% content-ref url="../az-services/az-mysql.md" %}
+[az-mysql.md](../az-services/az-mysql.md)
+{% endcontent-ref %}
+
+### "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"
+
+З цією дозволом ви можете ініціювати створення резервних копій для екземпляра 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"
+
+З цією дозволом ви можете налаштувати або оновити параметри 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"
+
+З цією дозволом ви можете створювати або змінювати правила брандмауера для екземпляра MySQL Flexible Server на Azure. Це дозволяє контролювати, які IP-адреси або діапазони можуть отримати доступ до сервера. Несанкціоноване або неналежне використання цього дозволу може піддати сервер небажаному або шкідливому доступу.
+
+{% code overflow="wrap" %}
+```bash
+# Create Rule
+az mysql flexible-server firewall-rule create \
+--name \
+--resource-group \
+--rule-name \
+--start-ip-address \
+--end-ip-address
+
+# Update Rule
+az mysql flexible-server firewall-rule update \
+--name \
+--resource-group \
+--rule-name \
+--start-ip-address \
+--end-ip-address
+```
+{% endcode %}
+
+### "Microsoft.DBforMySQL/flexibleServers/resetGtid/action"
+
+З цією дозволом ви можете скинути GTID (Глобальний Ідентифікатор Транзакції) для екземпляра MySQL Flexible Server на Azure. Скидання GTID зробить недійсними всі автоматизовані, за запитом резервні копії та гео-резервні копії, які були зроблені до дії скидання. Після скидання GTID ви не зможете виконати PITR (відновлення в точці часу) за допомогою найшвидшої точки відновлення або за допомогою користувацької точки відновлення, якщо вибраний час відновлення є до часу скидання GTID. І успішне гео-відновлення буде можливим лише через 5 днів.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server reset-gtid \
+--name \
+--resource-group \
+--gtid-set
+```
+{% endcode %}
+
+### "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" %}
+```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"
+
+З цією дозволом ви можете призначити керовану ідентичність, призначену користувачем, для гнучких серверів MySQL.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server identity assign \
+--resource-group \
+--server-name \
+--identity
+```
+{% endcode %}
+
+### "Microsoft.DBforMySQL/flexibleServers/stop/action"
+
+З цією дозволом ви можете зупинити екземпляр PostgreSQL Flexible Server на Azure. Зупинка сервера може призвести до тимчасового переривання обслуговування, що вплине на програми та користувачів, які залежать від бази даних.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server stop \
+--name \
+--resource-group
+```
+{% endcode %}
+
+### "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"
+
+With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
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
new file mode 100644
index 000000000..ba22554db
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-postgresql-post-exploitation.md
@@ -0,0 +1,155 @@
+# Az - PostgreSQL Post Exploitation
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
+
+
+{% endhint %}
+
+## PostgreSQL Database Post Exploitation
+Для отримання додаткової інформації про PostgreSQL Database перевірте:
+
+{% content-ref url="../az-services/az-postgresql.md" %}
+[az-postgresql.md](../az-services/az-postgresql.md)
+{% endcontent-ref %}
+
+### "Microsoft.DBforPostgreSQL/flexibleServers/databases/write" && "Microsoft.DBforPostgreSQL/flexibleServers/databases/read"
+
+З цією дозволом ви можете створювати нові бази даних у екземплярі Postgres Flexible Server на Azure. Хоча ця дія сама по собі не змінює існуючі ресурси, надмірне або несанкціоноване створення баз даних може призвести до споживання ресурсів або потенційного зловживання сервером.
+
+{% code overflow="wrap" %}
+```bash
+az postgres flexible-server db create \
+--server-name \
+--resource-group \
+--database-name
+```
+{% endcode %}
+
+### "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"
+
+З цією дозволом ви можете налаштувати або оновити параметри 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"
+
+З цією дозволом ви можете створювати або змінювати правила брандмауера для екземпляра Postgres Flexible Server на Azure. Це дозволяє контролювати, які IP-адреси або діапазони можуть отримати доступ до сервера. Несанкціоноване або неналежне використання цього дозволу може піддати сервер небажаному або шкідливому доступу.
+
+{% code overflow="wrap" %}
+```bash
+# Create Rule
+az postgres flexible-server firewall-rule create \
+--name \
+--resource-group \
+--rule-name \
+--start-ip-address \
+--end-ip-address
+
+# Update Rule
+az postgres flexible-server firewall-rule update \
+--name \
+--resource-group \
+--rule-name \
+--start-ip-address \
+--end-ip-address
+```
+{% endcode %}
+
+### "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 \
+--server-name \
+--name \
+--value
+```
+{% endcode %}
+
+### "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"
+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"
+
+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"
+With this permissions you can delete resources related to postgres server in Azure such as server, firewalls, managed identities or configurations
+
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
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
new file mode 100644
index 000000000..d7fb7b5d9
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-cosmosDB-privesc.md
@@ -0,0 +1,93 @@
+# Az - CosmosDB Privesc
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
+
+## CosmosDB Privesc
+Для отримання додаткової інформації про SQL Database перегляньте:
+
+{% content-ref url="../az-services/az-cosmosDB.md" %}
+[az-cosmosDB.md](../az-services/az-cosmosDB.md)
+{% endcontent-ref %}
+
+### ("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 \
+--resource-group \
+--body '{
+"Id": "", # For example 12345678-1234-1234-1234-123456789az
+"RoleName": "CustomReadRole",
+"Type": "CustomRole",
+"AssignableScopes": [
+"/subscriptions//resourceGroups/sqldatabase/providers/Microsoft.DocumentDB/databaseAccounts/"
+],
+"Permissions": [
+{
+"DataActions": [
+"Microsoft.DocumentDB/databaseAccounts/readMetadata",
+"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
+"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
+]
+}
+]
+}'
+```
+{% endcode %}
+
+Після цього визначення призначається користувачу. Після цього цей користувач може використовувати метод підключення DefaultAzureCredential() для виконання запитів.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb sql role assignment create \
+--account-name \
+--resource-group \
+--role-definition-id \
+--principal-id \
+--scope "/"
+```
+{% endcode %}
+
+### "Microsoft.DocumentDB/databaseAccounts/listKeys/action"
+З цією дозволом ви можете отримати первинні та вторинні ключі для облікового запису Azure Cosmos DB. Ці ключі надають повний доступ до облікового запису бази даних та його ресурсів, що дозволяє виконувати такі дії, як читання даних, запис, та зміни конфігурації.
+
+{% code overflow="wrap" %}
+```bash
+az cosmosdb keys list \
+--name \
+--resource-group
+
+```
+{% endcode %}
+
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
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
new file mode 100644
index 000000000..5b0922408
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-mysql-privesc.md
@@ -0,0 +1,91 @@
+# Az - MySQL Database Privesc
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
+
+## MySQL Database Privesc
+Для отримання додаткової інформації про SQL Database перевірте:
+
+{% content-ref url="../az-services/az-mysql.md" %}
+[az-mysql.md](../az-services/az-mysql.md)
+{% endcontent-ref %}
+
+### ""Microsoft.DBforMySQL/flexibleServers/read" && "Microsoft.DBforMySQL/flexibleServers/write"
+
+З цим дозволом ви можете створювати, оновлювати або видаляти екземпляри MySQL Flexible Server на Azure. Це включає в себе постачання нових серверів, модифікацію конфігурацій існуючих серверів або виведення серверів з експлуатації.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server create \
+--name \
+--resource-group \
+--location \
+--admin-user \
+--admin-password \
+--sku-name \
+--storage-size \
+--tier \
+--version
+```
+{% endcode %}
+
+Наприклад, ці дозволи дозволяють змінювати пароль MySQL, що, звичайно, корисно у випадку, якщо автентифікація MySQL увімкнена.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server update \
+--resource-group \
+--name \
+--admin-password
+```
+{% endcode %}
+
+Крім того, необхідно увімкнути публічний доступ, якщо ви хочете отримати доступ з непри приватної точки доступу, щоб увімкнути це:
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server update --resource-group --server-name --public-access Enabled
+```
+{% endcode %}
+
+### ""Microsoft.DBforMySQL/flexibleServers/read", "Microsoft.DBforMySQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforMySQL/flexibleServers/administrators/write" && "Microsoft.DBforMySQL/flexibleServers/administrators/read""
+
+З цією дозволом ви можете налаштувати адміністраторів Azure Active Directory (AD) для MySQL Flexible Server. Це можна експлуатувати, встановивши себе або інший обліковий запис як адміністратора AD, надаючи повний адміністративний контроль над MySQL сервером. Важливо, щоб flexible-server мав призначені користувачеві керовані ідентичності для використання.
+
+{% code overflow="wrap" %}
+```bash
+az mysql flexible-server ad-admin create \
+--resource-group \
+--server-name \
+--display-name \
+--identity \
+--object-id
+```
+{% endcode %}
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
new file mode 100644
index 000000000..5aee534ae
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-postgresql-privesc.md
@@ -0,0 +1,93 @@
+# Az - PostgreSQL Privesc
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
+
+## PostgreSQL Privesc
+Для отримання додаткової інформації про SQL Database перевірте:
+
+{% content-ref url="../az-services/az-postgresql.md" %}
+[az-postgresql.md](../az-services/az-postgresql.md)
+{% endcontent-ref %}
+
+### "Microsoft.DBforPostgreSQL/flexibleServers/read" && "Microsoft.DBforPostgreSQL/flexibleServers/write"
+
+З цим дозволом ви можете створювати, оновлювати або видаляти екземпляри PostgreSQL Flexible Server на Azure. Це включає в себе постачання нових серверів, модифікацію конфігурацій існуючих серверів або виведення серверів з експлуатації.
+
+{% code overflow="wrap" %}
+```bash
+az postgres flexible-server create \
+--name \
+--resource-group \
+--location \
+--admin-user \
+--admin-password \
+--sku-name \
+--storage-size \
+--tier \
+--version
+```
+{% endcode %}
+
+Наприклад, ці дозволи дозволяють змінювати пароль PostgreSQL, що, звичайно, корисно в разі, якщо автентифікація PostgreSQL увімкнена.
+
+{% code overflow="wrap" %}
+```bash
+az postgres flexible-server update \
+--resource-group \
+--name \
+--admin-password
+```
+{% endcode %}
+
+Крім того, необхідно увімкнути публічний доступ, якщо ви хочете отримати доступ з непри приватного кінцевого пункту, щоб увімкнути це:
+
+{% code overflow="wrap" %}
+```bash
+az postgres flexible-server update --resource-group --server-name --public-access Enabled
+```
+{% endcode %}
+
+### "Microsoft.DBforPostgreSQL/flexibleServers/read", "Microsoft.DBforPostgreSQL/flexibleServers/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write" && "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read"
+
+З цією дозволом ви можете налаштувати адміністраторів Azure Active Directory (AD) для PostgreSQL Flexible Server. Це можна експлуатувати, встановивши себе або інший обліковий запис як адміністратора AD, надаючи повний адміністративний контроль над сервером PostgreSQL. Оновлення існуючого принципала поки що не підтримується, тому, якщо він створений, ви повинні спочатку видалити його.
+
+Важливо, щоб flexible-server мав призначені користувачеві керовані ідентичності для використання.
+
+{% code overflow="wrap" %}
+```bash
+az postgres flexible-server ad-admin create \
+--resource-group \
+--server-name \
+--display-name \
+--identity \
+--object-id
+```
+{% endcode %}
+
+{% hint style="success" %}
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Підтримайте HackTricks
+
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+
+
+{% endhint %}
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
index 87bc66376..b5bcd702f 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
@@ -91,7 +91,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na
-Розширення VMAccess
+VMAccess extension
Це розширення дозволяє змінювати пароль (або створювати, якщо він не існує) користувачів всередині Windows ВМ.
```powershell
@@ -105,7 +105,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na
DesiredConfigurationState (DSC)
-Це **розширення VM**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows VMs. Тому його можна використовувати для **виконання довільних команд** у Windows VMs через це розширення:
+Це **VM розширення**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows VMs. Тому його можна використовувати для **виконання довільних команд** у Windows VMs через це розширення:
```powershell
# Content of revShell.ps1
Configuration RevShellConfig {
@@ -155,17 +155,17 @@ Set-AzVMDscExtension `
-Гібридний робочий процес
+Гібридний Runbook Worker
-Це розширення ВМ, яке дозволяє виконувати робочі процеси у ВМ з облікового запису автоматизації. Для отримання додаткової інформації перегляньте службу [Облікові записи автоматизації](../az-services/az-automation-account/).
+Це розширення ВМ, яке дозволяє виконувати runbook-и у ВМ з облікового запису автоматизації. Для отримання додаткової інформації перегляньте службу [Облікові записи автоматизації](../az-services/az-automation-account/index.html).
### `Microsoft.Compute/disks/write, Microsoft.Network/networkInterfaces/join/action, Microsoft.Compute/virtualMachines/write, (Microsoft.Compute/galleries/applications/write, Microsoft.Compute/galleries/applications/versions/write)`
-Це необхідні дозволи для **створення нового додатку галереї та виконання його всередині ВМ**. Додатки галереї можуть виконувати будь-що, тому зловмисник може зловживати цим для компрометації екземплярів ВМ, виконуючи довільні команди.
+Це необхідні дозволи для **створення нового галерейного застосунку та його виконання всередині ВМ**. Галерейні застосунки можуть виконувати будь-що, тому зловмисник може зловживати цим для компрометації екземплярів ВМ, виконуючи довільні команди.
-Останні 2 дозволи можуть бути уникнуті шляхом спільного використання додатку з орендарем.
+Останні 2 дозволи можуть бути уникнуті шляхом спільного використання застосунку з орендарем.
Приклад експлуатації для виконання довільних команд:
@@ -251,7 +251,7 @@ az vm application set \
### `Microsoft.Compute/virtualMachines/runCommand/action`
-Це найосновніший механізм, який Azure надає для **виконання довільних команд у ВМ:**
+Це найосновніший механізм, який Azure надає для **виконання довільних команд у ВМ:**
{{#tabs }}
{{#tab name="Linux" }}
@@ -310,7 +310,7 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
## `Microsoft.Resources/deployments/write`, `Microsoft.Network/virtualNetworks/write`, `Microsoft.Network/networkSecurityGroups/write`, `Microsoft.Network/networkSecurityGroups/join/action`, `Microsoft.Network/publicIPAddresses/write`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/networkInterfaces/write`, `Microsoft.Compute/virtualMachines/write, Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/networkInterfaces/join/action`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
-Усі ці дозволи необхідні для **створення VM з конкретною керованою ідентичністю** та залишення **порту відкритим** (22 у цьому випадку). Це дозволяє користувачу створити VM і підключитися до нього та **викрасти токени керованої ідентичності** для ескалації привілеїв до нього.
+Усі ці дозволи необхідні для **створення VM з конкретною керованою ідентичністю** та залишення **порту відкритим** (22 у цьому випадку). Це дозволяє користувачу створити VM і підключитися до нього та **викрасти токени керованої ідентичності** для ескалації привілеїв до неї.
Залежно від ситуації може знадобитися більше або менше дозволів для зловживання цією технікою.
```bash
@@ -327,8 +327,8 @@ az vm create \
```
### `Microsoft.Compute/virtualMachines/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
-Ці дозволи достатні для **призначення нових керованих ідентичностей віртуальній машині**. Зверніть увагу, що віртуальна машина може мати кілька керованих ідентичностей. Вона може мати **системну призначену ідентичність** та **багато користувацьких керованих ідентичностей**.\
-Потім, з сервісу метаданих можна згенерувати токени для кожної з них.
+Ці дозволи достатні для **призначення нових керованих ідентичностей віртуальній машині (VM)**. Зверніть увагу, що у VM може бути кілька керованих ідентичностей. Вона може мати **системну призначену ідентичність** та **багато користувацьких керованих ідентичностей**.\
+Потім, з сервісу метаданих можна генерувати токени для кожної з них.
```bash
# Get currently assigned managed identities to the VM
az vm identity show \
@@ -346,7 +346,7 @@ az vm identity assign \
Тоді зловмисник повинен **якось скомпрометувати ВМ**, щоб вкрасти токени з призначених керованих ідентичностей. Перевірте **додаткову інформацію в**:
{{#ref}}
-https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm
+https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm
{{#endref}}
### TODO: Microsoft.Compute/virtualMachines/WACloginAsAdmin/action
diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
new file mode 100644
index 000000000..ca6300926
--- /dev/null
+++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
@@ -0,0 +1,357 @@
+# Az - CosmosDB
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}
+
+## Azure CosmosDB
+
+**Azure Cosmos DB** - це повністю **керована NoSQL, реляційна та векторна база даних**, яка забезпечує час відповіді в одиничні мілісекунди, автоматичну масштабованість та доступність з підтримкою SLA з безпекою корпоративного рівня. Вона дозволяє швидше розробляти додатки завдяки готовій багаторегіональній розподільній системі даних, відкритим API, SDK для популярних мов та функціям бази даних AI, таким як інтегрована підтримка векторів та безшовна інтеграція з Azure AI.
+
+Azure Cosmos DB надає кілька API бази даних для моделювання реальних даних, використовуючи документи, реляційні, ключ-значення, графові та колонові сімейні моделі даних, такими API є NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin та Table.
+
+Одним з ключових аспектів CosmosDB є Azure Cosmos Account. **Azure Cosmos Account** є точкою входу до баз даних. Обліковий запис визначає ключові налаштування, такі як глобальний розподіл, рівні узгодженості та конкретний API, який буде використовуватися, наприклад, NoSQL. Через обліковий запис ви можете налаштувати глобальну реплікацію, щоб забезпечити доступність даних у кількох регіонах для доступу з низькою затримкою. Крім того, ви можете вибрати рівень узгодженості, який балансує між продуктивністю та точністю даних, з варіантами від сильної до остаточної узгодженості.
+
+### NoSQL (sql)
+API NoSQL Azure Cosmos DB є документно-орієнтованим API, який використовує JSON як формат даних. Він надає синтаксис запитів, подібний до SQL, для запитів до об'єктів JSON, що робить його придатним для роботи зі структурованими та напівструктурованими даними. Точка доступу служби:
+
+{% code overflow="wrap" %}
+```bash
+https://.documents.azure.com:443/
+```
+{% endcode %}
+
+#### Бази даних
+У межах облікового запису ви можете створити одну або кілька баз даних, які слугують логічними групами контейнерів. База даних діє як межа для управління ресурсами та правами користувачів. Бази даних можуть або ділити виділену пропускну здатність між своїми контейнерами, або виділяти окрему пропускну здатність для індивідуальних контейнерів.
+
+#### Контейнери
+Основною одиницею зберігання даних є контейнер, який містить JSON-документи і автоматично індексується для ефективного запитування. Контейнери еластично масштабуються та розподіляються по розділах, які визначаються ключем розділу, заданим користувачем. Ключ розділу є критично важливим для забезпечення оптимальної продуктивності та рівномірного розподілу даних. Наприклад, контейнер може зберігати дані клієнтів, з "customerId" як ключем розділу.
+
+#### Перерахування
+
+{% tabs %}
+{% tab title="az cli" %}
+{% code overflow="wrap" %}
+```bash
+# CosmoDB Account
+## List Azure Cosmos DB database accounts.
+az cosmosdb list --resource-group
+az cosmosdb show --resource-group --name
+
+## Lists the virtual network accounts associated with a Cosmos DB account
+az cosmosdb network-rule list --resource-group --name
+## List the access keys or connection strings for a Azure Cosmos DB
+az cosmosdb keys list --name --resource-group
+## List all the database accounts that can be restored.
+az cosmosdb restorable-database-account list --account-name
+## Show the identities for a Azure Cosmos DB database account.
+az cosmosdb identity show --resource-group --name
+
+
+# CosmoDB (NoSQL)
+## List the SQL databases under an Azure Cosmos DB account.
+az cosmosdb sql database list --resource-group --account-name
+## List the SQL containers under an Azure Cosmos DB SQL database.
+az cosmosdb sql container list --account-name --database-name --resource-group
+
+## List all SQL role assignments under an Azure Cosmos DB
+az cosmosdb sql role assignment list --resource-group --account-name
+## List all SQL role definitions under an Azure Cosmos DB
+az cosmosdb sql role definition list --resource-group --account-name
+
+## List the SQL stored procedures under an Azure Cosmos DB
+az cosmosdb sql stored-procedure list --account-name --container-name --database-name --resource-group
+## List the SQL triggers under an Azure Cosmos DB SQL container.
+az cosmosdb sql trigger list --account-name --container-name --database-name --resource-group
+## List the SQL user defined functions under an Azure Cosmos DB SQL container
+az cosmosdb sql user-defined-function list --account-name --container-name --database-name --resource-group
+
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="Az PowerShell" %}
+{% code overflow="wrap" %}
+```powershell
+Get-Command -Module Az.CosmosD
+
+# List all Cosmos DB accounts in a specified resource group.
+Get-AzCosmosDBAccount -ResourceGroupName ""
+
+# Get the access keys for a specific Cosmos DB account.
+Get-AzCosmosDBAccountKey -ResourceGroupName "" -Name ""
+
+# Retrieve the client encryption keys for a specific Cosmos DB account.
+Get-AzCosmosDbClientEncryptionKey -ResourceGroupName "" -AccountName "" -DatabaseName ""
+
+# List all SQL containers in a specific Cosmos DB SQL database.
+Get-AzCosmosDBSqlContainer -ResourceGroupName "