AWS - Redshift Privesc
Redshift
Für weitere Informationen zu RDS siehe:
pageAWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Mit diesen Berechtigungen können Sie Informationen zu allen Clustern abrufen (einschließlich Name und Cluster-Benutzername) und Anmeldeinformationen zum Zugriff darauf erhalten:
Potenzielle Auswirkungen: Sensible Informationen in den Datenbanken finden.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Mit diesen Berechtigungen können Sie Informationen zu allen Clustern abrufen und Anmeldeinformationen zum Zugriff darauf erhalten. Beachten Sie, dass der postgres-Benutzer die Berechtigungen hat, die die IAM-Identität hat, die zum Abrufen der Anmeldeinformationen verwendet wurde.
Potenzielle Auswirkungen: Sensible Informationen in den Datenbanken finden.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
Es ist möglich, das Hauptpasswort des internen Postgres (redshit) Benutzers über die AWS-Befehlszeile zu ändern (Ich denke, dass dies die erforderlichen Berechtigungen sind, aber ich habe sie noch nicht getestet):
Potenzielle Auswirkungen: Finden sensibler 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.
Darüber hinaus erlaubt Redshift auch, wie hier erklärt, Rollen zu verketten (solange die erste die zweite annehmen kann), um weiteren Zugriff zu erhalten, indem Sie sie einfach mit einem Komma trennen: 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 erläutert, 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 erläutert, ist es möglich, Daten aus DynamoDB abzurufen:
Die Amazon DynamoDB-Tabelle, die die Daten bereitstellt, muss in derselben AWS-Region erstellt werden wie Ihr Cluster, 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