AWS - Redshift Privesc
Redshift
Aby uzyskać więcej informacji o RDS, sprawdź:
redshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Dzięki tym uprawnieniom możesz uzyskać informacje o wszystkich klastrach (w tym nazwę i nazwę użytkownika klastra) oraz uzyskać poświadczenia do jego dostępu:
Potencjalny wpływ: Znalezienie wrażliwych informacji w bazach danych.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Dzięki tym uprawnieniom możesz uzyskać informacje o wszystkich klastrach oraz uzyskać poświadczenia do ich dostępu. Zauważ, że użytkownik postgres będzie miał uprawnienia, które ma tożsamość IAM użyta do uzyskania poświadczeń.
Potencjalny wpływ: Znalezienie wrażliwych informacji w bazach danych.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
Możliwe jest zmodyfikowanie hasła głównego użytkownika internal postgres (redshit) z aws cli (myślę, że to są potrzebne uprawnienia, ale jeszcze ich nie testowałem):
Potencjalny wpływ: Znalezienie wrażliwych informacji w bazach danych.
Uzyskiwanie dostępu do zewnętrznych usług
Aby uzyskać dostęp do wszystkich poniższych zasobów, musisz określić rolę do użycia. Klaster Redshift może mieć przypisaną listę ról AWS, które możesz wykorzystać jeśli znasz ARN lub możesz po prostu ustawić "default", aby użyć domyślnej przypisanej.
Ponadto, jak wyjaśniono tutaj, Redshift pozwala również na łączenie ról (o ile pierwsza może przyjąć drugą), aby uzyskać dalszy dostęp, po prostu oddzielając je 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ą czegoś takiego:
S3
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, możliwe jest czytanie i pisanie do koszyków S3:
Dynamo
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, możliwe jest 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