GCP - KMS Privesc
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Info su KMS:
GCP - KMS EnumNota che in KMS i permessi non sono solo ereditati da Orgs, Folders e Projects ma anche da Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
Puoi usare questo permesso per decriptare informazioni con la chiave su cui hai questo permesso.
cloudkms.cryptoKeys.setIamPolicy
Un attaccante con questo permesso potrebbe assegnarsi permessi per utilizzare la chiave per decrittografare informazioni.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ecco una suddivisione concettuale di come funziona questa delega:
L'Account di Servizio A ha accesso diretto per decriptare utilizzando una chiave specifica in KMS.
L'Account di Servizio B riceve il permesso useToDecryptViaDelegation
. Questo gli consente di richiedere a KMS di decriptare i dati per conto dell'Account di Servizio A.
L'uso di questo permesso è implicito nel modo in cui il servizio KMS controlla i permessi quando viene effettuata una richiesta di decrittazione.
Quando effettui una richiesta di decrittazione standard utilizzando l'API Google Cloud KMS (in Python o in un altro linguaggio), il servizio controlla se l'account di servizio richiedente ha i permessi necessari. Se la richiesta è effettuata da un account di servizio con il permesso useToDecryptViaDelegation
, KMS verifica se questo account è autorizzato a richiedere la decrittazione per conto dell'entità che possiede la chiave.
Definire il Ruolo Personalizzato: Crea un file YAML (ad es., custom_role.yaml
) che definisce il ruolo personalizzato. Questo file dovrebbe includere il permesso cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Ecco un esempio di come potrebbe apparire questo file:
Crea il Ruolo Personalizzato Utilizzando il gcloud CLI: Usa il seguente comando per creare il ruolo personalizzato nel tuo progetto Google Cloud:
Sostituisci [YOUR_PROJECT_ID]
con il tuo ID progetto Google Cloud.
Concedi il Ruolo Personalizzato a un'Account di Servizio: Assegna il tuo ruolo personalizzato a un'account di servizio che utilizzerà questo permesso. Usa il seguente comando:
Sostituisci [YOUR_PROJECT_ID]
e [SERVICE_ACCOUNT_EMAIL]
con il tuo ID progetto e l'email dell'account di servizio, rispettivamente.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)