diff --git a/src/images/arte.png b/src/images/arte.png index 57f392dbe..388ff8433 100644 Binary files a/src/images/arte.png and b/src/images/arte.png differ diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index 1ae447b23..f5771a3e0 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -2,9 +2,9 @@ {{#include ../../../../banners/hacktricks-training.md}} -## Основна інформація +## Basic Information -Identity pools відіграють важливу роль, дозволяючи вашим користувачам **отримувати тимчасові облікові дані**. Ці облікові дані є необхідними для доступу до різних AWS сервісів, включаючи, але не обмежуючись, Amazon S3 та DynamoDB. Помітною особливістю identity pools є їх підтримка як анонімних гостьових користувачів, так і різноманітних постачальників ідентичності для аутентифікації користувачів. Підтримувані постачальники ідентичності включають: +Identity pools виконують важливу роль, дозволяючи вашим користувачам **отримувати тимчасові облікові дані**. Ці облікові дані є необхідними для доступу до різних AWS сервісів, включаючи, але не обмежуючись, Amazon S3 та DynamoDB. Помітною особливістю identity pools є їх підтримка як анонімних гостьових користувачів, так і різноманітних постачальників ідентичності для аутентифікації користувачів. Підтримувані постачальники ідентичності включають: - Amazon Cognito user pools - Соціальні варіанти входу, такі як Facebook, Google, Login with Amazon та Sign in with Apple @@ -35,7 +35,7 @@ print(response) ``` ### Cognito Sync -Щоб згенерувати сесії Identity Pool, спочатку потрібно **згенерувати ідентифікатор Identity ID**. Цей ідентифікатор Identity ID є **ідентифікацією сесії цього користувача**. Ці ідентифікації можуть мати до 20 наборів даних, які можуть зберігати до 1MB пар ключ-значення. +Щоб згенерувати сесії Identity Pool, спочатку потрібно **згенерувати ідентифікатор Identity ID**. Цей ідентифікатор є **ідентифікацією сесії цього користувача**. Ці ідентифікації можуть мати до 20 наборів даних, які можуть зберігати до 1 МБ пар ключ-значення. Це **корисно для збереження інформації про користувача** (який завжди буде використовувати один і той же ідентифікатор Identity ID). @@ -43,7 +43,7 @@ print(response) ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), фреймворк експлуатації AWS, тепер включає модулі "cognito\_\_enum" та "cognito\_\_attack", які автоматизують перерахування всіх активів Cognito в обліковому записі та позначають слабкі конфігурації, атрибути користувачів, що використовуються для контролю доступу тощо, а також автоматизують створення користувачів (включаючи підтримку MFA) та ескалацію привілеїв на основі змінних користувацьких атрибутів, використовуваних облікових даних пулу ідентичностей, ролей, які можна прийняти в токенах ідентифікації тощо. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), фреймворк експлуатації AWS, тепер включає модулі "cognito\_\_enum" та "cognito\_\_attack", які автоматизують перерахування всіх активів Cognito в обліковому записі та позначають слабкі конфігурації, атрибути користувачів, що використовуються для контролю доступу тощо, а також автоматизують створення користувачів (включаючи підтримку MFA) та ескалацію привілеїв на основі змінних атрибутів, що підлягають модифікації, використовуваних облікових даних пулу ідентичностей, ролей, які можна прийняти в токенах ідентифікації тощо. Для опису функцій модулів дивіться частину 2 [блог-посту](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Для інструкцій з установки дивіться основну сторінку [Pacu](https://github.com/RhinoSecurityLabs/pacu). @@ -73,14 +73,14 @@ $ cognito-scanner --help ## Доступ до IAM ролей -### Неавтентифікований +### Неавтентифіковані -Єдине, що потрібно зловмиснику, щоб **отримати AWS облікові дані** в додатку Cognito як неавтентифікованому користувачу, це **ID пулу ідентичності**, і цей **ID повинен бути закодований** в веб/мобільному **додатку** для його використання. ID виглядає так: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (його не можна зламати методом перебору). +Єдине, що атакуючий повинен знати, щоб **отримати AWS облікові дані** в додатку Cognito як неавтентифікований користувач, це **ID пулу ідентичності**, і цей **ID повинен бути закодований** в веб/мобільному **додатку** для його використання. ID виглядає так: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (його не можна зламати методом перебору). > [!TIP] > **IAM роль Cognito для неавтентифікованих користувачів, створена через**, за замовчуванням називається `Cognito_<Назва пулу ідентичності>Unauth_Role` -Якщо ви знайдете ID пулу ідентичності, закодований в додатку, і він дозволяє неавтентифікованим користувачам, ви можете отримати AWS облікові дані за допомогою: +Якщо ви знайдете ID пулу ідентичності, закодований у коді, і він дозволяє неавтентифікованим користувачам, ви можете отримати AWS облікові дані за допомогою: ```python import requests @@ -114,9 +114,9 @@ aws cognito-identity get-credentials-for-identity --identity-id -- > [!WARNING] > Зверніть увагу, що за замовчуванням неавтентифікований cognito **користувач НЕ МОЖЕ мати жодних дозволів, навіть якщо вони були призначені через політику**. Перевірте наступний розділ. -### Покращений vs Базовий потік автентифікації +### Розширений vs Базовий потік автентифікації -Попередній розділ слідував **за замовчуванням покращеному потоку автентифікації**. Цей потік встановлює **обмежувальну** [**політику сесії**](../../aws-basic-information/#session-policies) для сесії ролі IAM, що генерується. Ця політика дозволить сесії [**використовувати послуги з цього списку**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (навіть якщо роль мала доступ до інших послуг). +Попередній розділ слідував **за замовчуванням розширеному потоку автентифікації**. Цей потік встановлює **обмежувальну** [**політику сесії**](../../aws-basic-information/index.html#session-policies) для сесії ролі IAM, що генерується. Ця політика дозволить сесії лише [**використовувати послуги з цього списку**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (навіть якщо роль мала доступ до інших послуг). Однак є спосіб обійти це, якщо **Ідентифікаційний пул має увімкнений "Базовий (Класичний) Потік"**, користувач зможе отримати сесію, використовуючи цей потік, який **не матиме цієї обмежувальної політики сесії**. ```bash @@ -135,7 +135,7 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.` -Маючи набір облікових даних IAM, вам слід перевірити [які права ви маєте](../../#whoami) і спробувати [підвищити привілеї](../../aws-privilege-escalation/). +Маючи набір облікових даних IAM, вам слід перевірити [які права ви маєте](../../index.html#whoami) і спробувати [підвищити привілеї](../../aws-privilege-escalation/index.html). ### Аутентифіковані @@ -147,29 +147,29 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ [!TIP] -> **IAM роль Cognito, створена через**, за замовчуванням називається `Cognito_Auth_Role` +> **IAM роль Cognito, створена через**, за замовчуванням називається `Cognito_<Ім'я Identity Pool>Auth_Role` У будь-якому випадку, **наступний приклад** передбачає, що ви вже увійшли в **Cognito User Pool**, який використовується для доступу до Identity Pool (не забувайте, що також можуть бути налаштовані інші типи постачальників ідентичності).
aws cognito-identity get-id \
---identity-pool-id <identity_pool_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-pool-id  \
+--logins cognito-idp..amazonaws.com/=
 
 # Отримайте identity_id з відповіді попередньої команди
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+--logins cognito-idp..amazonaws.com/=
 
 
 # У IdToken ви можете знайти ролі, до яких має доступ користувач через групи User Pool
 # Використовуйте --custom-role-arn, щоб отримати облікові дані для конкретної ролі
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
-    --custom-role-arn <role_arn> \
-    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+    --custom-role-arn  \
+    --logins cognito-idp..amazonaws.com/=
 
> [!WARNING] -> Можливо **налаштувати різні ролі IAM в залежності від постачальника ідентичності**, під яким користувач увійшов, або навіть просто в залежності **від користувача** (використовуючи претензії). Тому, якщо у вас є доступ до різних користувачів через одного або різних постачальників, можливо, **варто увійти та отримати доступ до ролей IAM всіх з них**. +> Можливо **налаштувати різні IAM ролі в залежності від постачальника ідентичності**, під яким користувач увійшов, або навіть просто в залежності **від користувача** (використовуючи заяви). Тому, якщо у вас є доступ до різних користувачів через одного або різних постачальників, можливо, **варто увійти і отримати доступ до IAM ролей усіх з них**. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md index f56d524a7..5829a4a76 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -12,14 +12,14 @@ az-azure-network.md ## Основна інформація про ВМ -Віртуальні машини Azure (ВМ) є гнучкими, на вимогу **хмарними серверами, які дозволяють запускати операційні системи Windows або Linux**. Вони дозволяють розгортати програми та навантаження без управління фізичним обладнанням. Віртуальні машини Azure можуть бути налаштовані з різними параметрами ЦП, пам'яті та зберігання для задоволення специфічних потреб і інтеграції з сервісами Azure, такими як віртуальні мережі, зберігання та інструменти безпеки. +Віртуальні машини Azure (ВМ) є гнучкими, на вимогу **хмарними серверами, які дозволяють запускати операційні системи Windows або Linux**. Вони дозволяють розгортати програми та навантаження без управління фізичним обладнанням. Віртуальні машини Azure можуть бути налаштовані з різними параметрами ЦП, пам'яті та зберігання для задоволення конкретних потреб і інтеграції з сервісами Azure, такими як віртуальні мережі, зберігання та інструменти безпеки. ### Налаштування безпеки - **Зони доступності**: Зони доступності - це окремі групи дата-центрів у конкретному регіоні Azure, які фізично відокремлені, щоб мінімізувати ризик впливу кількох зон через локальні відключення або катастрофи. - **Тип безпеки**: - **Стандартна безпека**: Це тип безпеки за замовчуванням, який не вимагає жодного специфічного налаштування. -- **Довірене завантаження**: Цей тип безпеки підвищує захист від завантажувальних комплектів і шкідливого ПЗ на рівні ядра, використовуючи Secure Boot і Віртуальний модуль довіреної платформи (vTPM). +- **Довірене завантаження**: Цей тип безпеки підвищує захист від завантажувальних комплектів і шкідливого ПЗ на рівні ядра, використовуючи Secure Boot і Virtual Trusted Platform Module (vTPM). - **Конфіденційні ВМ**: На додаток до довіреного завантаження, він пропонує апаратну ізоляцію між ВМ, гіпервізором і управлінням хостом, покращує шифрування диска та [**більше**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.** - **Аутентифікація**: За замовчуванням генерується новий **SSH ключ**, хоча можливо використовувати публічний ключ або попередній ключ, а ім'я користувача за замовчуванням - **azureuser**. Також можливо налаштувати використання **пароля.** - **Шифрування диска ВМ:** Диск за замовчуванням шифрується в спокої, використовуючи ключ, керований платформою. @@ -36,21 +36,21 @@ az-azure-network.md - Відсоток споживаних IOPS дисків даних перевищує 95% - Відсоток споживаних IOPS ОС перевищує 95% - Загальна мережа перевищує 500 ГБ -- Загальний вихід з мережі перевищує 200 ГБ +- Загальний вихід мережі перевищує 200 ГБ - Показник доступності ВМ менше 1 - **Монітор здоров'я**: За замовчуванням перевіряє протокол HTTP на порту 80 -- **Замки**: Дозволяє заблокувати ВМ, щоб її можна було лише читати (**ReadOnly** замок) або її можна було читати та оновлювати, але не видаляти (**CanNotDelete** замок). +- **Замки**: Дозволяє заблокувати ВМ, щоб її можна було лише читати (**ReadOnly** lock) або щоб її можна було читати та оновлювати, але не видаляти (**CanNotDelete** lock). - Більшість ресурсів, пов'язаних з ВМ, **також підтримують замки**, такі як диски, знімки... - Замки також можуть бути застосовані на **рівнях групи ресурсів і підписки** ## Диски та знімки -- Можливо **увімкнути приєднання диска до 2 або більше ВМ** +- Можливо **увімкнути підключення диска до 2 або більше ВМ** - За замовчуванням кожен диск **шифрується** за допомогою ключа платформи. - Те ж саме стосується знімків -- За замовчуванням можливо **поділитися диском з усіх мереж**, але його також можна **обмежити** лише певним **приватним доступом** або **повністю відключити** публічний і приватний доступ. +- За замовчуванням можливо **поділитися диском з усіма мережами**, але його також можна **обмежити** лише певними **приватними доступами** або **повністю відключити** публічний і приватний доступ. - Те ж саме стосується знімків -- Можливо **згенерувати SAS URI** (максимум на 60 днів) для **експорту диска**, який може бути налаштований на вимогу аутентифікації або ні +- Можливо **згенерувати SAS URI** (максимум на 60 днів) для **експорту диска**, який можна налаштувати на вимогу аутентифікації або ні - Те ж саме стосується знімків {{#tabs}} @@ -150,7 +150,7 @@ Get-AzRestorePointCollection -Name -ResourceGroupName " -VMName "" -Na DesiredStateConfiguration (DSC) -Це **розширення ВМ**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows ВMs. Тому його можна використовувати для **виконання довільних команд** у Windows ВMs через це розширення: +Це **розширення ВМ**, яке належить Microsoft і використовує PowerShell DSC для управління конфігурацією Azure Windows ВМ. Тому його можна використовувати для **виконання довільних команд** у Windows ВМ через це розширення: ```bash # Content of revShell.ps1 Configuration RevShellConfig { @@ -625,9 +625,9 @@ az sig gallery-application list --gallery-name --resource-group < Перевірте, як встановити нові програми в [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli) > [!CAUTION] -> Можливо **ділитися окремими додатками та галереями з іншими підписками або орендарями**. Що дуже цікаво, оскільки це може дозволити зловмиснику створити бекдор для програми та перейти до інших підписок і орендарів. +> Можливо **ділитися окремими додатками та галереями з іншими підписками або орендарями**. Що є дуже цікавим, оскільки це може дозволити зловмиснику створити бекдор для програми та перейти до інших підписок і орендарів. -Але **немає "ринку" для vm додатків**, як це є для розширень. +Але **немає "маркетплейсу" для vm додатків**, як це є для розширень. Необхідні дозволи: @@ -727,9 +727,9 @@ az vm application set \ Можливо передати деякі дані до VM, які будуть зберігатися в очікуваних шляхах: -- У **Windows** користувацькі дані розміщуються в `%SYSTEMDRIVE%\AzureData\CustomData.bin` як бінарний файл, і вони не обробляються. +- У **Windows** користувацькі дані розміщуються в `%SYSTEMDRIVE%\AzureData\CustomData.bin` як бінарний файл і не обробляються. - У **Linux** вони зберігалися в `/var/lib/waagent/ovf-env.xml`, а тепер зберігаються в `/var/lib/waagent/CustomData/ovf-env.xml` -- **Linux агент**: За замовчуванням не обробляє користувацькі дані, потрібен користувацький образ з увімкненими даними +- **Агент Linux**: За замовчуванням не обробляє користувацькі дані, потрібен користувацький образ з увімкненими даними - **cloud-init:** За замовчуванням обробляє користувацькі дані, і ці дані можуть бути в [**декількох форматах**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Він може легко виконати скрипт, просто надіславши його в користувацьких даних. - Я спробував, щоб і Ubuntu, і Debian виконували скрипт, який ви помістили сюди. - Також не потрібно активувати дані користувача для виконання цього. @@ -793,16 +793,16 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt ## Неавтентифікований Доступ {{#ref}} -../../az-unauthenticated-enum-and-initial-entry/az-vms-unath.md +../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md {{#endref}} -## Постексплуатація +## Після Експлуатації {{#ref}} ../../az-post-exploitation/az-vms-and-network-post-exploitation.md {{#endref}} -## Персистентність +## Постійність {{#ref}} ../../az-persistence/az-vms-persistence.md