AWS - KMS Privesc
KMS
Für weitere Informationen zu KMS siehe:
pageAWS - KMS Enumkms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)
kms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)Mit diesen Berechtigungen ist es möglich, die Zugriffsberechtigungen für den Schlüssel zu ändern, sodass er von anderen Konten oder sogar von jedermann verwendet werden kann:
policy.json:
kms:CreateGrant
kms:CreateGrant
Ermöglicht einem Prinzipal, einen KMS-Schlüssel zu verwenden:
Eine Berechtigung kann nur bestimmte Arten von Operationen zulassen: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
Beachten Sie, dass es einige Minuten dauern kann, bis KMS dem Benutzer erlaubt, den Schlüssel nach Erstellung der Berechtigung zu verwenden. Sobald diese Zeit abgelaufen ist, kann das Prinzipal den KMS-Schlüssel verwenden, ohne etwas angeben zu müssen. Wenn jedoch die Berechtigung sofort verwendet werden muss, verwenden Sie ein Berechtigungstoken (überprüfen Sie den folgenden Code). Für weitere Informationen lesen Sie dies.
Beachten Sie, dass es möglich ist, Berechtigungen von Schlüsseln mit folgendem Befehl aufzulisten:
kms:CreateKey
, kms:ReplicateKey
kms:CreateKey
, kms:ReplicateKey
Mit diesen Berechtigungen ist es möglich, einen KMS-Schlüssel mit Multi-Region-Unterstützung in einer anderen Region mit einer anderen Richtlinie zu replizieren.
Ein Angreifer könnte dies also ausnutzen, um seine Berechtigungen für den Schlüssel zu eskalieren und ihn zu nutzen.
kms:Decrypt
kms:Decrypt
Diese Berechtigung ermöglicht es, einen Schlüssel zu verwenden, um einige Informationen zu entschlüsseln. Für weitere Informationen siehe:
pageAWS - KMS Post ExploitationLast updated