AWS - Cognito Μη αυθεντικοποιημένη απογραφή

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

Μη αυθεντικοποιημένο Cognito

Cognito είναι μια υπηρεσία της AWS που επιτρέπει στους προγραμματιστές να παρέχουν στους χρήστες της εφαρμογής τους πρόσβαση σε υπηρεσίες AWS. Οι προγραμματιστές χορηγούν IAM roles σε επαληθευμένους χρήστες στην εφαρμογή τους (πιθανώς οι χρήστες να μπορούν απλά να εγγραφούν) και μπορούν επίσης να χορηγήσουν ένα IAM role σε μη-επαληθευμένους χρήστες.

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

AWS - Cognito Enum

Identity Pool ID

Τα Identity Pools μπορούν να χορηγήσουν IAM roles σε μη-επαληθευμένους χρήστες που απλώς γνωρίζουν το Identity Pool ID (κάτι που είναι αρκετά σύνηθες να βρεθεί), και ένας επιτιθέμενος με αυτή την πληροφορία θα μπορούσε να προσπαθήσει να προσπελάσει αυτό το IAM role και να το εκμεταλλευτεί. Επιπλέον, IAM roles μπορεί επίσης να ανατεθούν σε επαληθευμένους χρήστες που έχουν πρόσβαση στο Identity Pool. Εάν ένας επιτιθέμενος μπορεί να εγγράψει έναν χρήστη ή ήδη έχει πρόσβαση στον identity provider που χρησιμοποιείται στο identity pool, θα μπορούσε να αποκτήσει πρόσβαση στο IAM role που δίνεται σε επαληθευμένους χρήστες και να καταχραστεί τα προνόμιά του.

Δείτε πώς να το κάνετε εδώ.

User Pool ID

Από προεπιλογή το Cognito επιτρέπει την εγγραφή νέου χρήστη. Η δυνατότητα εγγραφής χρήστη μπορεί να σας δώσει πρόσβαση στην υποκείμενη εφαρμογή ή στο IAM role πρόσβασης για επαληθευμένους χρήστες ενός Identity Pool που αποδέχεται ως identity provider το Cognito User Pool. Δείτε πώς να το κάνετε εδώ.

Pacu modules for pentesting and enumeration

Pacu, το AWS exploitation framework, περιλαμβάνει πλέον τα modules “cognito__enum” και “cognito__attack” που αυτοματοποιούν την enumeration όλων των Cognito assets σε έναν λογαριασμό και εντοπίζουν αδύναμες ρυθμίσεις, user attributes που χρησιμοποιούνται για access control, κ.λπ., και επίσης αυτοματοποιούν τη δημιουργία χρηστών (συμπεριλαμβανομένης της υποστήριξης MFA) και το privilege escalation βασισμένο σε τροποποιήσιμα custom attributes, διαθέσιμα identity pool credentials, assumable roles σε id tokens, κ.λπ.

Για περιγραφή των λειτουργιών των modules δείτε το μέρος 2 του άρθρου στο blog. Για οδηγίες εγκατάστασης δείτε την κύρια σελίδα του Pacu.

Χρήση

Παράδειγμα χρήσης του cognito__attack για απόπειρα δημιουργίας χρήστη και όλων των privesc vectors απέναντι σε ένα δεδομένο identity pool και user pool client:

Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX

Παράδειγμα χρήσης του cognito__enum για τη συλλογή όλων των user pools, user pool clients, identity pools, χρηστών κ.λπ. που είναι ορατά στον τρέχοντα λογαριασμό AWS:

Pacu (new:test) > run cognito__enum

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