AWS - Redshift Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Redshift
Więcej informacji o RDS znajdziesz:
redshift:DescribeClusters, redshift:GetClusterCredentials
Dzięki tym uprawnieniom możesz uzyskać informacje o wszystkich klastrach (w tym nazwę i nazwę użytkownika klastra) oraz pobrać poświadczenia umożliwiające dostęp:
# Get creds
aws redshift get-cluster-credentials --db-user postgres --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM:<username>" -d template1 -p 5439
Potencjalny wpływ: Znalezienie poufnych informacji w bazach danych.
redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM
Dzięki tym uprawnieniom możesz uzyskać informacje o wszystkich klastrach oraz uzyskać poświadczenia umożliwiające dostęp.
Należy pamiętać, że użytkownik postgres będzie miał uprawnienia, które posiada IAM identity użyta do uzyskania poświadczeń.
# Get creds
aws redshift get-cluster-credentials-with-iam --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAMR:AWSReservedSSO_AdministratorAccess_4601154638985c45" -d template1 -p 5439
Potencjalny wpływ: Odnalezienie wrażliwych informacji w bazach danych.
redshift:DescribeClusters, redshift:ModifyCluster?
Możliwe jest zmodyfikowanie głównego hasła wewnętrznego użytkownika postgres (redshit) za pomocą aws cli (chyba takie uprawnienia są potrzebne, ale jeszcze ich nie przetestowałem):
aws redshift modify-cluster –cluster-identifier <identifier-for-the cluster> –master-user-password ‘master-password’;
Potencjalny wpływ: Znalezienie wrażliwych informacji w bazach danych.
Dostęp do usług zewnętrznych
Warning
Aby uzyskać dostęp do wszystkich poniższych zasobów, będziesz musiał określić rolę do użycia. Klaster Redshift może mieć przypisaną listę ról AWS, których możesz użyć jeśli znasz ARN lub możesz po prostu ustawić “default”, aby użyć przypisanej domyślnej roli.
Co więcej, jak explained here, Redshift pozwala także łączyć role (pod warunkiem, że pierwsza może założyć drugą) aby uzyskać dalszy dostęp — wystarczy rozdzielić je przecinkiem:
iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
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 przy użyciu czegoś takiego:
CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT)
RETURNS INT
STABLE
LAMBDA 'lambda_function'
IAM_ROLE default;
S3
Jak wyjaśniono w https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, możliwe jest odczytywanie i zapisywanie w S3 buckets:
# Read
copy table from 's3://<your-bucket-name>/load/key_prefix'
credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
region '<region>'
options;
# Write
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_'
iam_role default;
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:
copy favoritemovies
from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Warning
Tabela Amazon DynamoDB, która dostarcza dane, musi być utworzona w tym samym AWS Region co Twój klaster, chyba że użyjesz opcji REGION aby określić AWS Region, w którym znajduje się tabela Amazon DynamoDB.
EMR
Zobacz https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Źródła
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

