AWS - Redshift Privesc
Redshift
Für weitere Informationen über RDS siehe:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Mit diesen Berechtigungen kannst du Informationen über alle Cluster (einschließlich Name und Cluster-Benutzername) erhalten und Zugangsdaten dafür bekommen:
Potentieller Einfluss: Finde sensible Informationen in den Datenbanken.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Mit diesen Berechtigungen kannst du Informationen über alle Cluster erhalten und Zugangsdaten dafür bekommen. Beachte, dass der Postgres-Benutzer die Berechtigungen der IAM-Identität hat, die verwendet wurde, um die Zugangsdaten zu erhalten.
Potentieller Einfluss: Finde sensible Informationen in den Datenbanken.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
Es ist möglich, das Master-Passwort des internen Postgres (redshift) Benutzers über die aws CLI zu ändern (ich denke, das sind die Berechtigungen, die du benötigst, aber ich habe sie noch nicht getestet):
Potentieller Einfluss: Finde sensible Informationen in den Datenbanken.
Zugriff auf externe Dienste
Um auf alle folgenden Ressourcen zuzugreifen, müssen Sie die zu verwendende Rolle angeben. Ein Redshift-Cluster kann eine Liste von AWS-Rollen zugewiesen haben, die Sie verwenden können, wenn Sie die ARN kennen, oder Sie können einfach "default" setzen, um die standardmäßig zugewiesene Rolle zu verwenden.
Außerdem, wie hier erklärt, erlaubt Redshift auch das Verketten von Rollen (solange die erste die zweite übernehmen kann), um weiteren Zugriff zu erhalten, indem man sie einfach mit einem Komma trennt: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
Wie in https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html erklärt, ist es möglich, eine Lambda-Funktion von Redshift aus aufzurufen mit etwas wie:
S3
Wie in https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html erklärt, ist es möglich, in S3-Buckets zu lesen und zu schreiben:
Dynamo
Wie in https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html erklärt, ist es möglich, Daten von dynamodb zu erhalten:
Die Amazon DynamoDB-Tabelle, die die Daten bereitstellt, muss in derselben AWS-Region wie Ihr Cluster erstellt werden, es sei denn, Sie verwenden die REGION-Option, um die AWS-Region anzugeben, in der sich die Amazon DynamoDB-Tabelle befindet.
EMR
Überprüfen Sie https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Referenzen
Last updated