AWS - Redshift Privesc
Redshift
Aby uzyskać więcej informacji na temat RDS, sprawdź:
pageAWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Z tymi uprawnieniami możesz uzyskać informacje o wszystkich klastrach (w tym nazwę i nazwę użytkownika klastra) oraz uzyskać poświadczenia, aby uzyskać do niego dostęp:
Potencjalne skutki: Znalezienie wrażliwych informacji w bazach danych.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Z tymi uprawnieniami możesz uzyskać informacje o wszystkich klastrach i uzyskać poświadczenia do dostępu do nich. Zauważ, że użytkownik postgres będzie miał uprawnienia, które ma tożsamość IAM, użyta do uzyskania poświadczeń.
Potencjalne skutki: Znalezienie wrażliwych informacji w bazach danych.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
Istnieje możliwość zmiany hasła głównego użytkownika wewnętrznego postgres (redshit) za pomocą aws cli (Myślę, że są to uprawnienia, których potrzebujesz, ale jeszcze ich nie testowałem):
Potencjalne skutki: Znalezienie wrażliwych informacji w bazach danych.
Dostęp do usług zewnętrznych
Aby uzyskać dostęp do wszystkich poniższych zasobów, będziesz musiał określić rolę do użycia. Klastr Redshift może mieć przypisane listę ról AWS, które możesz użyć, jeśli znasz ARN, lub po prostu możesz ustawić "domyślny" aby użyć przypisanej domyślnej roli.
Co więcej, jak wyjaśniono tutaj, Redshift pozwala również na łączenie ról (pod warunkiem, że pierwsza może przejąć drugą) w celu uzyskania dalszego dostępu, ale wystarczy je oddzielić przecinkiem: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdy
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, możliwe jest wywołanie funkcji lambda z redshift za pomocą:
S3
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, jest możliwe czytanie i zapisywanie do kubełków S3:
Dynamo
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, jest możliwe pobranie danych z dynamodb:
Tabela Amazon DynamoDB, która dostarcza dane, musi być utworzona w tym samym regionie AWS co Twój klaster, chyba że użyjesz opcji REGION aby określić region AWS, w którym znajduje się tabela Amazon DynamoDB.
EMR
Sprawdź https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
References
Last updated