AWS - KMS Privesc
KMS
KMSに関する詳細情報は以下を参照してください:
AWS - KMS Enumkms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)
kms:ListKeys
,kms:PutKeyPolicy
, (kms:ListKeyPolicies
, kms:GetKeyPolicy
)これらの権限があれば、キーのアクセス権限を変更して、他のアカウントや誰でも使用できるようにすることが可能です:
policy.json:
kms:CreateGrant
kms:CreateGrant
それはプリンシパルがKMSキーを使用することを許可します:
A grant can only allow certain types of operations: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations
KMSがユーザーにキーの使用を許可するまでに数分かかることがあります。その時間が経過すると、プリンシパルは何も指定せずにKMSキーを使用できます。 ただし、すぐにgrantを使用する必要がある場合は、grant tokenを使用してください(以下のコードを確認)。 詳細はこちらを参照してください。
キーの付与をリストすることが可能です:
kms:CreateKey
, kms:ReplicateKey
kms:CreateKey
, kms:ReplicateKey
これらの権限があると、異なるポリシーで異なるリージョンにマルチリージョン対応のKMSキーを複製することが可能です。
したがって、攻撃者はこれを悪用してキーへのアクセスを取得し、それを使用することができます
kms:Decrypt
kms:Decrypt
この権限は、キーを使用して情報を復号化することを許可します。 詳細については、以下を参照してください:
AWS - KMS Post ExploitationLast updated