GCP - KMS Enum
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
The Cloud Key Management Service dien as ân veilige stoorplek vir kriptografiese sleutels, wat noodsaaklik is vir bedrywighede soos die enkripteer en ontsleutel van sensitiewe data. Hierdie sleutels is georganiseer binne key rings, wat gestruktureerde bestuur moontlik maak. Verder kan toegangsbeheer noukeurig gekonfigureer word, hetsy op individuele sleutelvlak of vir die hele key ring, wat verseker dat toestemmings presies ooreenstem met sekuriteitsvereistes.
KMS key rings word per verstek as global geskep, wat beteken dat die sleutels binne daardie key ring vanaf enige streek toeganklik is. Dit is egter moontlik om spesifieke key rings in spesifieke streke te skep.
Key Protection Level
- Software keys: Software keys word heeltemal deur KMS in sagteware geskep en bestuur. Hierdie sleutels word nie deur ân hardware security module (HSM) beskerm nie en kan gebruik word vir toetsing en ontwikkelingsdoeleindes. Software keys word nie aanbeveel vir produksie gebruik nie omdat hulle lae sekuriteit bied en vatbaar is vir aanvalle.
- Cloud-hosted keys: Cloud-hosted keys word deur KMS in die wolk geskep en bestuur met ân hoog-beskikbare en betroubare infrastruktuur. Hierdie sleutels word deur HSMs beskerm, maar die HSMs is nie aan ân spesifieke kliĂ«nt toegewys nie. Cloud-hosted keys is geskik vir die meeste produksiegevalle.
- External keys: External keys word buite KMS geskep en bestuur, en word in KMS ingevoer vir gebruik in kriptografiese operasies. External keys kan in ân hardware security module (HSM) of ân sagtewaresentrum gestoor word, afhangend van die kliĂ«nt se voorkeur.
Key Purposes
- Symmetric encryption/decryption: Word gebruik om data te enkripteer en ontsleutel met ân enkele sleutel vir albei operasies. Symmetriese sleutels is vinnig en doeltreffend vir die enkriptering en ontsleuteling van groot volumes data.
- Supported: cryptoKeys.encrypt, cryptoKeys.decrypt
- Asymmetric Signing: Word gebruik vir veilige kommunikasie tussen twee partye sonder om die sleutel te deel. Asimmetriese sleutels kom in ân paar, bestaande uit ân publieke sleutel en ân private sleutel. Die publieke sleutel word gedeel, terwyl die private sleutel geheim gehou word.
- Supported: cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey
- Asymmetric Decryption: Word gebruik om die egtheid van ân boodskap of data te verifieer. ân Digitale handtekening word geskep met ân private sleutel en kan geverifieer word met die ooreenstemmende publieke sleutel.
- Supported: cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey
- MAC Signing: Word gebruik om data-integriteit en egtheid te verseker deur ân message authentication code (MAC) te skep met ân geheime sleutel. HMAC word algemeen gebruik vir boodskapverifikasie in netwerkprotokolle en sagtewaretoepassings.
- Supported: cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify
Rotation Period & Programmed for destruction period
By verstek is dit elke 90 dae, maar dit kan maklik en heeltemal gepersonaliseer word.
Die âProgrammed for destructionâ periode is die tyd vanaf wanneer die gebruiker vir die verwydering van die sleutel versoek totdat die sleutel verwyder is. Dit kan nie verander word nadat die sleutel geskep is nie (verstek 1 dag).
Primary Version
Elke KMS-sleutel kan verskeie weergawes hĂȘ; een daarvan moet die verstek wees. Dit is die weergawe wat gebruik word wanneer ân weergawe nie gespesifiseer word tydens interaksie met die KMS-sleutel nie.
CMEK permission model
Wanneer voorwerpe in Cloud Storage met CMEK geënkripteer is, word die decrypt/encrypt-oproepe na KMS deur die projek se Cloud Storage service agent (e-pos service-${BUCKET_PROJECT_NUMBER}@gs-project-accounts.iam.gserviceaccount.com) gedoen, nie direk deur die eindgebruiker wat die voorwerp lees nie.
Dit beteken dat om iets wat deur ân CMEK geĂ«nkripteer is te lees:
- Die projek se Cloud Storage service agent moet KMS-magtigings hĂȘ oor die gebruikte KMS-sleutel (tipies
roles/cloudkms.cryptoKeyEncrypterDecrypter). - Die gebruiker benodig slegs voorwerp-lees toestemmings (byvoorbeeld
storage.objects.get). Hy benodig nie magtigings oor die KMS-sleutel nie.
Dit beteken dat om beheer oor toegang tot met die KMS-sleutel geĂ«nkripteerde data te hĂȘ, dit nodig is om KMS-magtigings by te voeg/verwyder vir die projek se Cloud Storage service agent.
Let ook daarop dat ân projekvlak binding soos roles/cloudkms.cryptoKeyEncrypterDecrypter vir die Storage service agent steeds ontgrendeling met sleutels in dieselfde projek sal toelaat.
Enumeration
Indien jy toestemmings het om die sleutels te lys, is dit hoe jy toegang tot hulle kan kry:
# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>
# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>
# Encrypt a file using one of your keys
gcloud kms encrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global
# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global
Privilege Escalation
Post Exploitation
Verwysings
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.
HackTricks Cloud

