AWS - Redshift Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
RDSに関する詳細情報は次を確認してください:
redshift:DescribeClusters
, redshift:GetClusterCredentials
これらの権限を持つことで、すべてのクラスターの情報(名前やクラスターのユーザー名を含む)を取得し、アクセスするための資格情報を取得できます:
潜在的な影響: データベース内の機密情報を見つける。
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
これらの権限を持つことで、すべてのクラスターの情報を取得し、アクセスするための資格情報を取得できます。 postgresユーザーは、資格情報を取得するために使用されたIAMアイデンティティの権限を持つことに注意してください。
潜在的な影響: データベース内の機密情報を見つける。
redshift:DescribeClusters
, redshift:ModifyCluster?
aws cliから内部postgres(redshift)ユーザーのマスターパスワードを変更することが可能です(これが必要な権限だと思いますが、まだテストしていません):
潜在的影響: データベース内の機密情報を見つける。
すべてのリソースにアクセスするには、使用するロールを指定する必要があります。Redshiftクラスターには、使用できるAWSロールのリストが割り当てられている場合があります。ARNを知っている場合はそれを使用できますし、単に「default」を設定して、割り当てられたデフォルトのものを使用することもできます。
さらに、ここで説明されているように、Redshiftはロールを連結することも許可しています(最初のロールが2番目のロールを引き受けることができる限り)が、カンマで区切る必要があります: 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からラムダ関数を呼び出すことが可能です。
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リージョンに作成する必要があります。そうでない場合は、Amazon DynamoDBテーブルが存在するAWSリージョンを指定するためにREGIONオプションを使用してください。
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)