AWS - Redshift Privesc

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Redshift

Για περισσότερες πληροφορίες σχετικά με το RDS δείτε:

AWS - Redshift Enum

redshift:DescribeClusters, redshift:GetClusterCredentials

Με αυτά τα permissions μπορείτε να αποκτήσετε info of all the clusters (including name and cluster username) και να get credentials ώστε να αποκτήσετε πρόσβαση σε αυτά:

# 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

Πιθανός αντίκτυπος: Εύρεση ευαίσθητων πληροφοριών μέσα στις βάσεις δεδομένων.

redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM

Με αυτά τα permissions μπορείτε να πάρετε πληροφορίες για όλα τα clusters και να αποκτήσετε credentials για να έχετε πρόσβαση.
Σημειώστε ότι ο χρήστης postgres θα έχει τα permissions που έχει η IAM identity που χρησιμοποιήθηκε για να πάρει τα credentials.

# 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

Πιθανός Αντίκτυπος: Εντοπισμός ευαίσθητων πληροφοριών μέσα στις βάσεις δεδομένων.

redshift:DescribeClusters, redshift:ModifyCluster?

Είναι δυνατό να τροποποιήσετε τον κύριο κωδικό πρόσβασης του εσωτερικού χρήστη postgres (redshit) από το aws cli (νομίζω ότι αυτές είναι οι permissions που χρειάζεστε, αλλά δεν έχουν δοκιμαστεί ακόμα):

aws redshift modify-cluster –cluster-identifier <identifier-for-the cluster> –master-user-password ‘master-password’;

Potential Impact: Εντοπισμός ευαίσθητων πληροφοριών μέσα στις βάσεις δεδομένων.

Πρόσβαση σε Εξωτερικές Υπηρεσίες

Warning

Για να αποκτήσετε πρόσβαση σε όλους τους παρακάτω πόρους, θα πρέπει να προσδιορίσετε τον ρόλο που θα χρησιμοποιήσετε. Ένας Redshift cluster μπορεί να έχει εκχωρημένη μια λίστα AWS roles που μπορείτε να χρησιμοποιήσετε εάν γνωρίζετε το ARN ή μπορείτε απλώς να ορίσετε “default” για να χρησιμοποιήσετε τον προεπιλεγμένο που έχει εκχωρηθεί.

Επιπλέον, όπως εξηγείται εδώ, το Redshift επιτρέπει επίσης να συνενώσει roles (εφόσον ο πρώτος μπορεί να αναλάβει τον δεύτερο) για να αποκτήσετε περαιτέρω πρόσβαση αλλά απλά χωρίζοντάς τους με ένα κόμμα: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Lambdas

As explained in https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, it’s possible to καλέσετε μια lambda function από το redshift με κάτι σαν:

CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT)
RETURNS INT
STABLE
LAMBDA 'lambda_function'
IAM_ROLE default;

S3

Όπως εξηγείται στο https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, είναι δυνατή η ανάγνωση και εγγραφή σε 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

Όπως εξηγείται στο https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, είναι δυνατό να αποκτήσετε δεδομένα από dynamodb:

copy favoritemovies
from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Warning

Ο πίνακας Amazon DynamoDB που παρέχει τα δεδομένα πρέπει να δημιουργηθεί στην ίδια AWS Region με το cluster σας, εκτός αν χρησιμοποιήσετε την επιλογή REGION για να καθορίσετε την AWS Region στην οποία βρίσκεται ο πίνακας Amazon DynamoDB.

EMR

Δείτε https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks