AWS - S3 Unauthenticated Enum
Δημόσια Buckets S3
Ένα bucket θεωρείται "δημόσιο" αν οποιοσδήποτε χρήστης μπορεί να απαριθμήσει τα περιεχόμενα του bucket, και "ιδιωτικό" αν τα περιεχόμενα του bucket μπορούν να απαριθμηθούν ή να γραφτούν μόνο από συγκεκριμένους χρήστες.
Οι εταιρείες μπορεί να έχουν κακώς ρυθμισμένες άδειες buckets που παρέχουν πρόσβαση είτε σε όλα είτε σε όλους τους εξουσιοδοτημένους στο AWS σε οποιοδήποτε λογαριασμό (έτσι σε οποιονδήποτε). Σημειώστε ότι ακόμα και με τέτοιες κακές ρυθμίσεις, ορισμένες ενέργειες ενδέχεται να μην είναι δυνατό να πραγματοποιηθούν καθώς τα buckets μπορεί να έχουν τις δικές τους λίστες ελέγχου πρόσβασης (ACLs).
Μάθετε για την κακώς ρυθμισμένη AWS-S3 εδώ: http://flaws.cloud και http://flaws2.cloud/
Εύρεση AWS Buckets
Διάφοροι τρόποι για να βρείτε όταν μια ιστοσελίδα χρησιμοποιεί το AWS για την αποθήκευση ορισμένων πόρων:
Απαρίθμηση & OSINT:
Χρησιμοποιώντας το πρόσθετο προγράμματος περιήγησης wappalyzer
Χρησιμοποιώντας το burp (ανάρριψη του web) ή με τη χειροκίνητη περιήγηση στη σελίδα όλοι οι πόροι που φορτώνονται θα αποθηκευτούν στο Ιστορικό.
Ελέγξτε τους πόρους σε τομείς όπως:
Ελέγξτε τα CNAMES καθώς το
resources.domain.com
ενδέχεται να έχει το CNAMEbucket.s3.amazonaws.com
Ελέγξτε το https://buckets.grayhatwarfare.com, μια ιστοσελίδα με ήδη ανακαλυμμένα ανοικτά buckets.
Το όνομα bucket και το όνομα τομέα bucket πρέπει να είναι τα ίδια.
Το flaws.cloud είναι στη IP 52.92.181.107 και αν πάτε εκεί σας ανακατευθύνει στο https://aws.amazon.com/s3/. Επίσης, το
dig -x 52.92.181.107
δίνειs3-website-us-west-2.amazonaws.com
.Για να ελέγξετε αν είναι ένα bucket μπορείτε επίσης να επισκεφθείτε το https://flaws.cloud.s3.amazonaws.com/.
Βίαιη Δύναμη
Μπορείτε να βρείτε buckets με το βίαιο δύναμη ονόματα που σχετίζονται με την εταιρεία που ελέγχετε:
https://github.com/jordanpotti/AWSBucketDump (Περιέχει μια λίστα με πιθανά ονόματα bucket)
Λείανση S3 Buckets
Δεδομένων των ανοικτών S3 buckets, το BucketLoot μπορεί αυτόματα να αναζητήσει ενδιαφέρουσες πληροφορίες.
Βρείτε την Περιοχή
Μπορείτε να βρείτε όλες τις υποστηριζόμενες περιοχές από την AWS στο https://docs.aws.amazon.com/general/latest/gr/s3.html
Μέσω DNS
Μπορείτε να βρείτε την περιοχή ενός bucket με ένα dig
και nslookup
κάνοντας ένα DNS request της ανακαλυφθείσας IP:
Ελέγξτε ότι το αναγνωρισμένο domain έχει τη λέξη "website".
Μπορείτε να έχετε πρόσβαση στον στατικό ιστότοπο πηγαίνοντας στο: flaws.cloud.s3-website-us-west-2.amazonaws.com
ή μπορείτε να έχετε πρόσβαση στον κάδο επισκεπτόμενοι: flaws.cloud.s3-us-west-2.amazonaws.com
Δοκιμάζοντας
Εάν προσπαθήσετε να έχετε πρόσβαση σε έναν κάδο, αλλά στο όνομα domain που καθορίζετε μια άλλη περιοχή (για παράδειγμα ο κάδος είναι στο bucket.s3.amazonaws.com
αλλά προσπαθείτε να έχετε πρόσβαση στο bucket.s3-website-us-west-2.amazonaws.com
, τότε θα σας κατευθύνει στη σωστή τοποθεσία:
Απαρίθμηση του κάδου
Για να δοκιμάσετε τον βαθμό προσβασιμότητας του κάδου, ένας χρήστης μπορεί απλά να εισάγει το URL στον περιηγητή του ιστού. Ένας ιδιωτικός κάδος θα απαντήσει με "Απαγορεύεται η πρόσβαση". Ένας δημόσιος κάδος θα εμφανίσει τα πρώτα 1.000 αντικείμενα που έχουν αποθηκευτεί.
Ανοιχτός για όλους:
Ιδιωτικός:
Μπορείτε επίσης να το ελέγξετε αυτό με το cli:
Εάν το bucket δεν έχει ένα domain name, κατά την προσπάθεια ενθύμησης, τοποθετήστε μόνο το όνομα του bucket και όχι ολόκληρο το AWSs3 domain. Παράδειγμα: s3://<BUCKETNAME>
Δημόσιο πρότυπο URL
Λήψη του Αναγνωριστικού Λογαριασμού από δημόσιο Bucket
Είναι δυνατόν να προσδιοριστεί ένας λογαριασμός AWS εκμεταλλευόμενος το νέο S3:ResourceAccount
Policy Condition Key. Αυτή η συνθήκη περιορίζει την πρόσβαση με βάση το S3 bucket στον οποίο ανήκει ένας λογαριασμός (άλλες πολιτικές βασίζονται στον λογαριασμό στον οποίο ανήκει ο αιτούντας υποκείμενος).
Και επειδή η πολιτική μπορεί να περιέχει μπαλαντέρ είναι δυνατό να βρεθεί ο αριθμός του λογαριασμού μόνο έναν αριθμό κάθε φορά.
Αυτό το εργαλείο αυτοματοποιεί τη διαδικασία:
Αυτή η τεχνική λειτουργεί επίσης με τα URL της API Gateway, τα URL των Lambda, τα σύνολα δεδομένων του Data Exchange και ακόμη και για να λάβετε την τιμή των ετικετών (εάν γνωρίζετε το κλειδί της ετικέτας). Μπορείτε να βρείτε περισσότερες πληροφορίες στην αρχική έρευνα και το εργαλείο conditional-love για να αυτοματοποιήσετε αυτήν την εκμετάλλευση.
Επιβεβαίωση ότι ένα κάδος ανήκει σε ένα λογαριασμό AWS
Όπως εξηγείται στην ανάρτηση αυτού του ιστολογίου, εάν έχετε άδειες για να καταλογογραφήσετε έναν κάδο, είναι δυνατό να επιβεβαιώσετε τον αριθμό λογαριασμού (accountID) στον οποίο ανήκει ο κάδος, αποστέλλοντας ένα αίτημα όπως:
Εάν το σφάλμα είναι "Απόρριψη πρόσβασης", σημαίνει ότι το αναγνωριστικό λογαριασμού ήταν λανθασμένο.
Χρήση Emails για απαρίθμηση λογαριασμών root
Όπως εξηγείται στην ανάρτηση αυτού του ιστολογίου, είναι δυνατόν να ελεγχθεί εάν μια διεύθυνση email σχετίζεται με οποιονδήποτε λογαριασμό AWS προσπαθώντας να χορηγήσετε δικαιώματα email σε ένα κάδο S3 μέσω των ACLs. Εάν αυτό δεν προκαλέσει σφάλμα, σημαίνει ότι η διεύθυνση email είναι ριζικός χρήστης κάποιου λογαριασμού AWS:
Αναφορές
Last updated