AWS - Redshift Privesc
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
有关 RDS 的更多信息,请查看:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
拥有这些权限后,您可以获取 所有集群的信息(包括名称和集群用户名)并 获取凭据 以访问它:
潜在影响: 在数据库中查找敏感信息。
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
拥有这些权限后,您可以获取所有集群的信息并获取访问凭证。 请注意,postgres 用户将拥有用于获取凭证的 IAM 身份所具有的权限。
潜在影响: 在数据库中查找敏感信息。
redshift:DescribeClusters
, redshift:ModifyCluster?
可以通过 aws cli 修改内部 postgres (redshit) 用户的主密码(我认为这是你需要的权限,但我还没有测试过):
潜在影响: 在数据库中查找敏感信息。
要访问以下所有资源,您需要指定要使用的角色。一个 Redshift 集群可以分配一系列 AWS 角色,如果您知道 ARN,您可以使用这些角色,或者您可以将“default”设置为使用分配的默认角色。
此外,正如这里解释的,Redshift 还允许连接角色(只要第一个角色可以假设第二个角色)以获得进一步的访问,但只需用逗号分隔它们:iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
正如在https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html中解释的,您可以使用类似以下内容的方式从 Redshift 调用 Lambda 函数:
如https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html中所述,可以读取和写入S3桶:
如https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html中所述,可以从dynamodb获取数据:
提供数据的 Amazon DynamoDB 表必须在与您的集群相同的 AWS 区域中创建,除非您使用 REGION 选项来指定 Amazon DynamoDB 表所在的 AWS 区域。
查看 https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE) 学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)