AWS - KMS Persistence

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

KMS

For mor information check:

AWS - KMS Enum

通过 KMS policies 授予 Grant 访问权限

攻击者可以使用权限 kms:PutKeyPolicy 将密钥的访问权限授予他控制的用户,甚至授予外部账户。更多信息请查看 KMS Privesc page

永久 Grant

Grant 是另一种授予主体对特定密钥某些权限的方式。可以授予一个允许用户创建 grant 的 grant。此外,用户可以在同一密钥上拥有多个 grant(甚至是相同的 grant)。

因此,用户可能拥有 10 个具有全部权限的 grants。攻击者应持续监控这一点。如果在某个时刻移除了 1 个 grant,那么应再生成另 10 个。

(我们使用 10 而不是 2,以便在用户仍然拥有某些 grant 时能够检测到某个 grant 被移除)

# To generate grants, generate 10 like this one
aws kms create-grant \
--key-id <key-id> \
--grantee-principal <user_arn> \
--operations "CreateGrant" "Decrypt"

# To monitor grants
aws kms list-grants --key-id <key-id>

Note

一个 grant 只能授予来自此处列出的 permissions: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks