GCP - KMS Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Інформація про KMS:
GCP - KMS EnumЗверніть увагу, що в KMS дозволи не тільки успадковуються від Організацій, Папок і Проектів, але також від Ключових наборів.
cloudkms.cryptoKeyVersions.useToDecrypt
Ви можете використовувати цей дозвіл, щоб дешифрувати інформацію за допомогою ключа, на який у вас є цей дозвіл.
cloudkms.cryptoKeys.setIamPolicy
Зловмисник з цим дозволом міг би надати собі дозволи на використання ключа для розшифровки інформації.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ось концептуальний розбір того, як працює ця делегація:
Сервісний обліковий запис A має прямий доступ до розшифровки за допомогою конкретного ключа в KMS.
Сервісний обліковий запис B отримує дозвіл useToDecryptViaDelegation
. Це дозволяє йому запитувати KMS на розшифровку даних від імені Сервісного облікового запису A.
Використання цього дозволу є неявним у способі, яким сервіс KMS перевіряє дозволи під час надсилання запиту на розшифровку.
Коли ви робите стандартний запит на розшифровку за допомогою API Google Cloud KMS (на Python або іншій мові), сервіс перевіряє, чи має запитуючий сервісний обліковий запис необхідні дозволи. Якщо запит надсилається сервісним обліковим записом з дозволом useToDecryptViaDelegation
, KMS перевіряє, чи дозволено цьому обліковому запису запитувати розшифровку від імені суб'єкта, який володіє ключем.
Визначте користувацьку роль: Створіть файл YAML (наприклад, custom_role.yaml
), який визначає користувацьку роль. Цей файл повинен містити дозвіл cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Ось приклад того, як може виглядати цей файл:
Створіть користувацьку роль за допомогою gcloud CLI: Використовуйте наступну команду для створення користувацької ролі у вашому проекті Google Cloud:
Замініть [YOUR_PROJECT_ID]
на ваш ідентифікатор проекту Google Cloud.
Надайте користувацьку роль обліковому запису служби: Призначте вашу користувацьку роль обліковому запису служби, який буде використовувати цей дозвіл. Використовуйте наступну команду:
Замініть [YOUR_PROJECT_ID]
та [SERVICE_ACCOUNT_EMAIL]
на ваш ідентифікатор проекту та електронну пошту облікового запису служби відповідно.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)