GCP - KMS Privesc
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
KMS
Inligting oor KMS:
Let daarop dat in KMS die toestemmings nie net geërf word van Orgs, Folders en Projects nie, maar ook van Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
Jy kan hierdie toestemming gebruik om inligting met die sleutel te ontsleutel waarvoor jy hierdie toestemming het.
Ontsleutel data met KMS-sleutel
```bash gcloud kms decrypt \ --location=[LOCATION] \ --keyring=[KEYRING_NAME] \ --key=[KEY_NAME] \ --version=[KEY_VERSION] \ --ciphertext-file=[ENCRYPTED_FILE_PATH] \ --plaintext-file=[DECRYPTED_FILE_PATH] ```cloudkms.cryptoKeys.setIamPolicy
An attacker met hierdie toestemming kan homself bevoegdhede gee om die sleutel te gebruik om inligting te decrypt.
Gee jouself die KMS decrypter role
```bash gcloud kms keys add-iam-policy-binding [KEY_NAME] \ --location [LOCATION] \ --keyring [KEYRING_NAME] \ --member [MEMBER] \ --role roles/cloudkms.cryptoKeyDecrypter ```cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Hier is ân konseptuele uiteensetting van hoe hierdie delegasie werk:
- Service Account A het direkte toegang om te ontsleutel met ân spesifieke sleutel in KMS.
- Service Account B word die
useToDecryptViaDelegation-toestemming gegee. Dit stel dit in staat om KMS te versoek om data namens Service Account A te ontsleutel.
Die gebruik van hierdie toestemming is implisiet in die manier waarop die KMS-diens toestemming kontroleer wanneer ân ontsleutelingversoek gemaak word.
Wanneer jy ân standaard ontsleutelingversoek maak met die Google Cloud KMS API (in Python of ân ander taal), kyk die diens of die aanvraende service account die nodige toestemmings het. As die versoek gemaak is deur ân service account met die useToDecryptViaDelegation-toestemming, verifieer KMS of hierdie service account toegelaat is om ontsleuteling namens die entiteit wat die sleutel besit te versoek.
Opstel vir delegasie
- Define the Custom Role: Skep ân YAML-lĂȘer (bv.
custom_role.yaml) wat die custom role definieer. Hierdie lĂȘer moet diecloudkms.cryptoKeyVersions.useToDecryptViaDelegation-toestemming insluit. Hier is ân voorbeeld van hoe hierdie lĂȘer kan lyk:
Custom role YAML-definisie
```yaml title: "KMS Decryption via Delegation" description: "Allows decryption via delegation" stage: "GA" includedPermissions: - "cloudkms.cryptoKeyVersions.useToDecryptViaDelegation" ```- Skep die aangepaste rol met die gcloud CLI: Gebruik die volgende opdrag om die aangepaste rol in jou Google Cloud-projek te skep:
Skep aangepaste KMS-rol
```bash gcloud iam roles create kms_decryptor_via_delegation --project [YOUR_PROJECT_ID] --file custom_role.yaml ``` Vervang `[YOUR_PROJECT_ID]` met jou Google Cloud-projek-ID.- Ken die pasgemaakte rol toe aan ân diensrekening: Ken jou pasgemaakte rol toe aan ân diensrekening wat hierdie toestemming sal gebruik. Gebruik die volgende opdrag:
Ken pasgemaakte rol toe aan diensrekening
```bash # Give this permission to the service account to impersonate gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member "serviceAccount:[SERVICE_ACCOUNT_B_EMAIL]" \ --role "projects/[PROJECT_ID]/roles/[CUSTOM_ROLE_ID]"Give this permission over the project to be able to impersonate any SA
gcloud projects add-iam-policy-binding [YOUR_PROJECT_ID]
âmember=âserviceAccount:[SERVICE_ACCOUNT_EMAIL]â
ârole=âprojects/[YOUR_PROJECT_ID]/roles/kms_decryptor_via_delegationâ
Vervang [YOUR_PROJECT_ID] en [SERVICE_ACCOUNT_EMAIL] met jou projek-ID en die e-pos van die diensrekening, onderskeidelik.
</details>
> [!TIP]
> Leer & oefen AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Leer & oefen GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Leer & oefen Az Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Ondersteun HackTricks</summary>
>
> - Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
> - **Sluit aan by die** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** đŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Deel hacking tricks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>
HackTricks Cloud

