AWS - Redshift Privesc
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για περισσότερες πληροφορίες σχετικά με το RDS ελέγξτε:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
Με αυτές τις άδειες μπορείτε να αποκτήσετε πληροφορίες για όλα τα clusters (συμπεριλαμβανομένου του ονόματος και του ονόματος χρήστη του cluster) και να αποκτήσετε διαπιστευτήρια για να έχετε πρόσβαση σε αυτό:
Πιθανές Επιπτώσεις: Βρείτε ευαίσθητες πληροφορίες μέσα στις βάσεις δεδομένων.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Με αυτές τις άδειες μπορείτε να αποκτήσετε πληροφορίες για όλα τα clusters και να αποκτήσετε διαπιστευτήρια για να έχετε πρόσβαση σε αυτά. Σημειώστε ότι ο χρήστης postgres θα έχει τις άδειες που έχει η ταυτότητα IAM που χρησιμοποιήθηκε για να αποκτήσει τα διαπιστευτήρια.
Πιθανές Επιπτώσεις: Βρείτε ευαίσθητες πληροφορίες μέσα στις βάσεις δεδομένων.
redshift:DescribeClusters
, redshift:ModifyCluster?
Είναι δυνατόν να τροποποιήσετε τον κύριο κωδικό πρόσβασης του εσωτερικού χρήστη postgres (redshit) από το aws cli (νομίζω ότι αυτές είναι οι άδειες που χρειάζεστε αλλά δεν τις έχω δοκιμάσει ακόμα):
Πιθανές Επιπτώσεις: Βρείτε ευαίσθητες πληροφορίες μέσα στις βάσεις δεδομένων.
Για να αποκτήσετε πρόσβαση σε όλους τους παρακάτω πόρους, θα χρειαστεί να καθορίσετε τον ρόλο που θα χρησιμοποιήσετε. Ένα cluster Redshift μπορεί να έχει ανατεθεί μια λίστα ρόλων AWS που μπορείτε να χρησιμοποιήσετε αν γνωρίζετε το ARN ή μπορείτε απλά να ορίσετε το "default" για να χρησιμοποιήσετε τον προεπιλεγμένο που έχει ανατεθεί.
Επιπλέον, όπως εξηγείται εδώ, το Redshift επιτρέπει επίσης τη συγχώνευση ρόλων (αρκεί ο πρώτος να μπορεί να αναλάβει τον δεύτερο) για να αποκτήσετε περαιτέρω πρόσβαση, απλά χωρίζοντάς τους με μια κόμμα: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Όπως εξηγείται στο https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, είναι δυνατό να καλέσετε μια συνάρτηση lambda από το redshift με κάτι σαν:
Όπως εξηγείται στο https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, είναι δυνατόν να διαβάσετε και να γράψετε σε S3 buckets:
Όπως εξηγείται στο https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, είναι δυνατόν να πάρετε δεδομένα από το dynamodb:
Ο πίνακας Amazon DynamoDB που παρέχει τα δεδομένα πρέπει να δημιουργηθεί στην ίδια περιοχή AWS με το cluster σας, εκτός αν χρησιμοποιήσετε την επιλογή REGION για να καθορίσετε την περιοχή AWS στην οποία βρίσκεται ο πίνακας Amazon DynamoDB.
Ελέγξτε https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)