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)
Aby uzyskać więcej informacji o RDS, sprawdź:
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
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?
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.
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';
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:
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, możliwe jest czytanie i pisanie do kubełków S3:
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.
Sprawdź https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)