GCP - KMS Privesc
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
KMS
Informacje o KMS:
GCP - KMS EnumZauważ, że w KMS uprawnienia nie są tylko dziedziczone z Organizacji, Folderów i Projektów, ale także z Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
Możesz użyć tego uprawnienia do deszyfrowania informacji za pomocą klucza, nad którym masz to uprawnienie.
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
Napastnik z tym uprawnieniem mógłby przyznać sobie uprawnienia do używania klucza do odszyfrowania informacji.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Oto koncepcyjne omówienie, jak działa ta delegacja:
Konto usługi A ma bezpośredni dostęp do deszyfrowania za pomocą konkretnego klucza w KMS.
Konto usługi B otrzymuje uprawnienie
useToDecryptViaDelegation
. Pozwala to na żądanie KMS deszyfrowania danych w imieniu Konta usługi A.
Użycie tego uprawnienia jest implicitne w sposobie, w jaki usługa KMS sprawdza uprawnienia podczas składania żądania deszyfrowania.
Gdy składasz standardowe żądanie deszyfrowania za pomocą interfejsu API Google Cloud KMS (w Pythonie lub innym języku), usługa sprawdza, czy konto usługi składające żądanie ma niezbędne uprawnienia. Jeśli żądanie jest składane przez konto usługi z uprawnieniem useToDecryptViaDelegation
, KMS weryfikuje, czy to konto ma prawo żądać deszyfrowania w imieniu podmiotu, który jest właścicielem klucza.
Ustawienia dla Delegacji
Zdefiniuj niestandardową rolę: Utwórz plik YAML (np.
custom_role.yaml
), który definiuje niestandardową rolę. Plik ten powinien zawierać uprawnieniecloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Oto przykład, jak może wyglądać ten plik:
Utwórz niestandardową rolę za pomocą gcloud CLI: Użyj następującego polecenia, aby utworzyć niestandardową rolę w swoim projekcie Google Cloud:
Zastąp [YOUR_PROJECT_ID]
identyfikatorem swojego projektu Google Cloud.
Przyznaj niestandardową rolę kontu usługi: Przypisz swoją niestandardową rolę do konta usługi, które będzie korzystać z tego uprawnienia. Użyj następującego polecenia:
Zamień [YOUR_PROJECT_ID]
i [SERVICE_ACCOUNT_EMAIL]
na identyfikator swojego projektu i adres e-mail konta usługi, odpowiednio.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated