AWS - DynamoDB Post Exploitation
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για περισσότερες πληροφορίες ελέγξτε:
dynamodb:BatchGetItem
Ένας επιτιθέμενος με αυτές τις άδειες θα είναι σε θέση να λάβει στοιχεία από πίνακες με το πρωτεύον κλειδί (δεν μπορείτε απλώς να ζητήσετε όλα τα δεδομένα του πίνακα). Αυτό σημαίνει ότι πρέπει να γνωρίζετε τα πρωτεύοντα κλειδιά (μπορείτε να το αποκτήσετε αυτό παίρνοντας τα μεταδεδομένα του πίνακα (describe-table
).
Πιθανές Επιπτώσεις: Έμμεσος privesc εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:GetItem
Παρόμοιο με τις προηγούμενες άδειες αυτή επιτρέπει σε έναν πιθανό επιτιθέμενο να διαβάσει τιμές από μόνο 1 πίνακα δεδομένου του πρωτεύοντος κλειδιού της εγγραφής που θέλει να ανακτήσει:
Με αυτή την άδεια είναι επίσης δυνατή η χρήση της μεθόδου transact-get-items
όπως:
Πιθανές Επιπτώσεις: Έμμεσο privesc εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:Query
Παρόμοιο με τις προηγούμενες άδειες αυτή επιτρέπει σε έναν πιθανό επιτιθέμενο να διαβάσει τιμές από μόνο 1 πίνακα δεδομένου του πρωτεύοντος κλειδιού της εγγραφής που θέλει να ανακτήσει. Επιτρέπει τη χρήση ενός υποσυνόλου συγκρίσεων, αλλά η μόνη σύγκριση που επιτρέπεται με το πρωτεύον κλειδί (που πρέπει να εμφανίζεται) είναι η "EQ", οπότε δεν μπορείτε να χρησιμοποιήσετε μια σύγκριση για να αποκτήσετε ολόκληρη τη βάση δεδομένων σε ένα αίτημα.
Πιθανές Επιπτώσεις: Έμμεσο privesc εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:Scan
Μπορείτε να χρησιμοποιήσετε αυτήν την άδεια για να εξάγετε εύκολα ολόκληρο τον πίνακα.
Πιθανές Επιπτώσεις: Έμμεση ανύψωση δικαιωμάτων εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:PartiQLSelect
Μπορείτε να χρησιμοποιήσετε αυτήν την άδεια για να εξάγετε ολόκληρο τον πίνακα εύκολα.
Αυτή η άδεια επιτρέπει επίσης την εκτέλεση batch-execute-statement
όπως:
αλλά πρέπει να καθορίσετε το πρωτεύον κλειδί με μια τιμή, οπότε δεν είναι και τόσο χρήσιμο.
Πιθανές Επιπτώσεις: Έμμεσο privesc εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
Αυτή η άδεια θα επιτρέψει σε έναν επιτιθέμενο να εξάγει ολόκληρο τον πίνακα σε ένα S3 bucket της επιλογής του:
Σημειώστε ότι για να λειτουργήσει αυτό, ο πίνακας πρέπει να έχει ενεργοποιημένη την ανάκτηση σε συγκεκριμένο χρόνο, μπορείτε να ελέγξετε αν ο πίνακας το έχει με:
Αν δεν είναι ενεργοποιημένο, θα χρειαστεί να το ενεργοποιήσετε και για αυτό χρειάζεστε την dynamodb:ExportTableToPointInTime
άδεια:
Πιθανές Επιπτώσεις: Έμμεσος privesc εντοπίζοντας ευαίσθητες πληροφορίες στον πίνακα
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
Με αυτές τις άδειες, ένας επιτιθέμενος θα μπορούσε να δημιουργήσει έναν νέο πίνακα από ένα αντίγραφο ασφαλείας (ή ακόμα και να δημιουργήσει ένα αντίγραφο ασφαλείας για να το αποκαταστήσει σε έναν διαφορετικό πίνακα). Στη συνέχεια, με τις απαραίτητες άδειες, θα μπορούσε να ελέγξει πληροφορίες από τα αντίγραφα ασφαλείας που δεν θα μπορούσαν να είναι πλέον στον παραγωγικό πίνακα.
Πιθανές Επιπτώσεις: Έμμεσος privesc εντοπίζοντας ευαίσθητες πληροφορίες στο αντίγραφο ασφαλείας του πίνακα
dynamodb:PutItem
Αυτή η άδεια επιτρέπει στους χρήστες να προσθέσουν ένα νέο στοιχείο στον πίνακα ή να αντικαταστήσουν ένα υπάρχον στοιχείο με ένα νέο στοιχείο. Εάν ένα στοιχείο με το ίδιο πρωτεύον κλειδί υπάρχει ήδη, το ολόκληρο το στοιχείο θα αντικατασταθεί με το νέο στοιχείο. Εάν το πρωτεύον κλειδί δεν υπάρχει, ένα νέο στοιχείο με το καθορισμένο πρωτεύον κλειδί θα δημιουργηθεί.
Πιθανές Επιπτώσεις: Εκμετάλλευση περαιτέρω ευπαθειών/παρακάμψεων με την ικανότητα προσθήκης/τροποποίησης δεδομένων σε έναν πίνακα DynamoDB
dynamodb:UpdateItem
Αυτή η άδεια επιτρέπει στους χρήστες να τροποποιούν τα υπάρχοντα χαρακτηριστικά ενός αντικειμένου ή να προσθέτουν νέα χαρακτηριστικά σε ένα αντικείμενο. Δεν αντικαθιστά ολόκληρο το αντικείμενο; μόνο ενημερώνει τα καθορισμένα χαρακτηριστικά. Εάν το πρωτεύον κλειδί δεν υπάρχει στον πίνακα, η λειτουργία θα δημιουργήσει ένα νέο αντικείμενο με το καθορισμένο πρωτεύον κλειδί και θα ορίσει τα χαρακτηριστικά που καθορίζονται στην έκφραση ενημέρωσης.
Πιθανές Επιπτώσεις: Εκμετάλλευση περαιτέρω ευπαθειών/παρακάμψεων με την ικανότητα προσθήκης/τροποποίησης δεδομένων σε έναν πίνακα DynamoDB
dynamodb:DeleteTable
Ένας επιτιθέμενος με αυτή την άδεια μπορεί να διαγράψει έναν πίνακα DynamoDB, προκαλώντας απώλεια δεδομένων.
Πιθανές επιπτώσεις: Απώλεια δεδομένων και διακοπή υπηρεσιών που εξαρτώνται από τον διαγραμμένο πίνακα.
dynamodb:DeleteBackup
Ένας επιτιθέμενος με αυτή την άδεια μπορεί να διαγράψει ένα αντίγραφο ασφαλείας DynamoDB, προκαλώντας ενδεχομένως απώλεια δεδομένων σε περίπτωση σεναρίου αποκατάστασης από καταστροφή.
Πιθανές επιπτώσεις: Απώλεια δεδομένων και αδυναμία ανάκτησης από αντίγραφο ασφαλείας κατά τη διάρκεια ενός σεναρίου αποκατάστασης καταστροφών.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: Δοκιμάστε αν αυτό λειτουργεί πραγματικά
Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να ενεργοποιήσει μια ροή σε έναν πίνακα DynamoDB, να ενημερώσει τον πίνακα για να αρχίσει να ρέει οι αλλαγές και στη συνέχεια να έχει πρόσβαση στη ροή για να παρακολουθεί τις αλλαγές στον πίνακα σε πραγματικό χρόνο. Αυτό επιτρέπει στον επιτιθέμενο να παρακολουθεί και να εξάγει τις αλλαγές δεδομένων, ενδεχομένως οδηγώντας σε διαρροή δεδομένων.
Ενεργοποιήστε μια ροή σε έναν πίνακα DynamoDB:
Περιγράψτε τη ροή για να αποκτήσετε το ARN και άλλες λεπτομέρειες:
Πάρτε τον δείκτη τμήματος χρησιμοποιώντας το stream ARN:
Χρησιμοποιήστε τον shard iterator για να αποκτήσετε πρόσβαση και να εξάγετε δεδομένα από το stream:
Πιθανές επιπτώσεις: Παρακολούθηση σε πραγματικό χρόνο και διαρροή δεδομένων των αλλαγών του πίνακα DynamoDB.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)