GCP - KMS Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

KMS

Cloud Key Management Service est un répertoire pour stocker des clés cryptographiques, telles que celles utilisées pour chiffrer et déchiffrer des fichiers sensibles. Les clés individuelles sont stockées dans des anneaux de clés, et des permissions granulaires peuvent être appliquées à l'un ou l'autre niveau.

Les anneaux de clés KMS sont par défaut créés comme globaux, ce qui signifie que les clés à l'intérieur de cet anneau de clés sont accessibles de n'importe quelle région. Cependant, il est possible de créer des anneaux de clés spécifiques dans des régions spécifiques.

Niveau de Protection des Clés

  • Clés logicielles : Les clés logicielles sont créées et gérées entièrement par KMS en logiciel. Ces clés ne sont pas protégées par un module de sécurité matériel (HSM) et peuvent être utilisées à des fins de test et de développement. Les clés logicielles ne sont pas recommandées pour une utilisation en production car elles offrent une sécurité faible et sont susceptibles d'attaques.

  • Clés hébergées dans le cloud : Les clés hébergées dans le cloud sont créées et gérées par KMS dans le cloud à l'aide d'une infrastructure hautement disponible et fiable. Ces clés sont protégées par des HSMs, mais les HSMs ne sont pas dédiés à un client spécifique. Les clés hébergées dans le cloud conviennent à la plupart des cas d'utilisation en production.

  • Clés externes : Les clés externes sont créées et gérées en dehors de KMS, et sont importées dans KMS pour être utilisées dans des opérations cryptographiques. Les clés externes peuvent être stockées dans un module de sécurité matériel (HSM) ou une bibliothèque logicielle, selon la préférence du client.

Objectifs des Clés

  • Chiffrement/déchiffrement symétrique : Utilisé pour chiffrer et déchiffrer des données en utilisant une seule clé pour les deux opérations. Les clés symétriques sont rapides et efficaces pour chiffrer et déchiffrer de grands volumes de données.

  • Signature asymétrique : Utilisée pour une communication sécurisée entre deux parties sans partager la clé. Les clés asymétriques se présentent en paire, consistant en une clé publique et une clé privée. La clé publique est partagée avec d'autres, tandis que la clé privée est gardée secrète.

  • Déchiffrement asymétrique : Utilisé pour vérifier l'authenticité d'un message ou de données. Une signature numérique est créée à l'aide d'une clé privée et peut être vérifiée à l'aide de la clé publique correspondante.

  • Signature MAC : Utilisée pour garantir l'intégrité et l'authenticité des données en créant un code d'authentification de message (MAC) à l'aide d'une clé secrète. HMAC est couramment utilisé pour l'authentification des messages dans les protocoles réseau et les applications logicielles.

Période de Rotation & Période programmée pour la destruction

Par défaut, tous les 90 jours mais cela peut être facilement et complètement personnalisé.

La période "Programmée pour la destruction" est le temps depuis que l'utilisateur demande la suppression de la clé et jusqu'à ce que la clé soit supprimée. Elle ne peut pas être changée après la création de la clé (par défaut 1 jour).

Version Principale

Chaque clé KMS peut avoir plusieurs versions, l'une d'elles doit être la version par défaut, ce sera celle utilisée lorsqu'une version n'est pas spécifiée lors de l'interaction avec la clé KMS.

Énumération

Ayant les permissions pour lister les clés, voici comment vous pouvez y accéder :

# 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 decrypt --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

Élévation de privilèges

pageGCP - KMS Privesc

Post-exploitation

pageGCP - KMS Post Exploitation

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert) !

Autres moyens de soutenir HackTricks :

Dernière mise à jour