GCP - KMS Privesc
Last updated
Last updated
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)
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
Możesz użyć tego uprawnienia do deszyfrowania informacji za pomocą klucza, nad którym masz to uprawnienie.
cloudkms.cryptoKeys.setIamPolicy
Napastnik z tym uprawnieniem mógłby przyznać sobie uprawnienia do używania klucza do odszyfrowania informacji.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Oto koncepcyjne wyjaśnienie, 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
. Umożliwia to żą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ą 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.
Zdefiniuj niestandardową rolę: Utwórz plik YAML (np. custom_role.yaml
), który definiuje niestandardową rolę. Plik ten powinien zawierać uprawnienie cloudkms.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:
Zastąp [YOUR_PROJECT_ID]
i [SERVICE_ACCOUNT_EMAIL]
odpowiednio identyfikatorem projektu i adresem e-mail konta usługi.
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)