AWS - IAM Post Exploitation
Last updated
Last updated
Για περισσότερες πληροφορίες σχετικά με την πρόσβαση IAM:
AWS - IAM, Identity Center & SSO EnumΕάν επιτρέπετε σε έναν εξωτερικό λογαριασμό (A) να έχει πρόσβαση σε έναν ρόλο στον λογαριασμό σας, πιθανόν να μην έχετε καμία ορατότητα για το ποιος μπορεί ακριβώς να έχει πρόσβαση σε αυτόν τον εξωτερικό λογαριασμό. Αυτό είναι ένα πρόβλημα, επειδή εάν ένας άλλος εξωτερικός λογαριασμός (B) μπορεί να έχει πρόσβαση στον εξωτερικό λογαριασμό (A), είναι πιθανό ότι ο B θα μπορεί επίσης να έχει πρόσβαση στον λογαριασμό σας.
Για τον λόγο αυτό, όταν επιτρέπετε σε έναν εξωτερικό λογαριασμό να έχει πρόσβαση σε έναν ρόλο στον λογαριασμό σας, μπορείτε να καθορίσετε ένα ExternalId
. Αυτό είναι ένα "μυστικό" συμβολοσειρά που ο εξωτερικός λογαριασμός (A) πρέπει να καθορίσει για να υποθέσει τον ρόλο στον οργανισμό σας. Εφόσον ο εξωτερικός λογαριασμός B δεν γνωρίζει αυτήν τη συμβολοσειρά, ακόμη κι αν έχει πρόσβαση στον λογαριασμό A, δεν θα μπορεί να έχει πρόσβαση στον ρόλο σας.
Ωστόσο, πρέπει να σημειωθεί ότι αυτή η "μυστική" συμβολοσειρά ExternalId
δεν είναι μυστική, οποιοσδήποτε μπορεί να διαβάσει την πολιτική ρόλου IAM assume θα μπορεί να την δει. Αλλά με την προϋπόθεση ότι ο εξωτερικός λογαριασμός A την γνωρίζει, αλλά ο εξωτερικός λογαριασμός B δεν την γνωρίζει, αυτό εμποδίζει τον B να καταχραστεί τον A για να έχει πρόσβαση στον ρόλο σας.
Παράδειγμα:
Για έναν επιτιθέμενο να εκμεταλλευτεί έναν μπερδεμένο αντιπρόσωπο, θα χρειαστεί να βρει κάπως αν οι αρχές του τρέχοντος λογαριασμού μπορούν να προσωποποιήσουν ρόλους σε άλλους λογαριασμούς.
Αυτή η πολιτική επιτρέπει σε όλες τις υπηρεσίες του AWS να υποθέτουν τον ρόλο.
Αυτή η πολιτική επιτρέπει σε οποιονδήποτε λογαριασμό να διαμορφώσει το apigateway τους για να καλέσει αυτό το Lambda.
Εάν ένα S3 bucket δίνεται ως κύριος, επειδή τα S3 buckets δεν έχουν ένα Account ID, εάν διαγράψετε το bucket σας και ο επιτιθέμενος το δημιουργήσει στο δικό του λογαριασμό, τότε μπορεί να καταχραστεί αυτό.
Ένας κοινός τρόπος για να αποφευχθούν τα προβλήματα του Confused Deputy είναι η χρήση μιας συνθήκης με το AWS:SourceArn
για να ελεγχθεί το προέλευσης ARN. Ωστόσο, ορισμένες υπηρεσίες μπορεί να μην υποστηρίζουν αυτό (όπως η CloudTrail σύμφωνα με ορισμένες πηγές).