AWS - ECS Post Exploitation
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για περισσότερες πληροφορίες ελέγξτε:
AWS - ECS EnumΣτο ECS, ένα IAM role μπορεί να ανατεθεί στην εργασία που εκτελείται μέσα στο κοντέινερ. Εάν η εργασία εκτελείται μέσα σε μια EC2 instance, η EC2 instance θα έχει ένα άλλο IAM role συσχετισμένο με αυτή. Αυτό σημαίνει ότι αν καταφέρετε να συμβιβάσετε μια ECS instance, μπορείτε δυνητικά να αποκτήσετε το IAM role που σχετίζεται με το ECR και με την EC2 instance. Για περισσότερες πληροφορίες σχετικά με το πώς να αποκτήσετε αυτές τις διαπιστεύσεις, ελέγξτε:
Σημειώστε ότι αν η EC2 instance επιβάλλει IMDSv2, σύμφωνα με τα έγγραφα, η απάντηση του PUT request θα έχει όριο hop 1, καθιστώντας αδύνατη την πρόσβαση στα EC2 metadata από ένα κοντέινερ μέσα στην EC2 instance.
Επιπλέον, η EC2 χρησιμοποιεί docker για να εκτελεί τις εργασίες ECs, οπότε αν μπορείτε να διαφύγετε στον κόμβο ή να αποκτήσετε πρόσβαση στο docker socket, μπορείτε να ελέγξετε ποια άλλα κοντέινερ εκτελούνται, και ακόμη και να μπείτε μέσα τους και να κλέψετε τα IAM roles που είναι συσχετισμένα.
Επιπλέον, το IAM role της EC2 instance θα έχει συνήθως αρκετές άδειες για να ενημερώσει την κατάσταση της instance κοντέινερ των EC2 instances που χρησιμοποιούνται ως κόμβοι μέσα στο cluster. Ένας επιτιθέμενος θα μπορούσε να τροποποιήσει την κατάσταση μιας instance σε DRAINING, τότε το ECS θα αφαιρέσει όλες τις εργασίες από αυτήν και αυτές που εκτελούνται ως REPLICA θα εκτελούνται σε μια διαφορετική instance, δυνητικά μέσα στην instance του επιτιθέμενου ώστε να μπορεί να κλέψει τα IAM roles τους και πιθανές ευαίσθητες πληροφορίες από μέσα στο κοντέινερ.
Η ίδια τεχνική μπορεί να γίνει με την απεγγραφή της EC2 παρουσίας από το cluster. Αυτό είναι δυνητικά λιγότερο κρυφό αλλά θα αναγκάσει τις εργασίες να εκτελούνται σε άλλες παρουσίες:
Μια τελική τεχνική για να αναγκάσετε την επανεκτέλεση των εργασιών είναι να υποδείξετε στο ECS ότι το task ή το container σταμάτησε. Υπάρχουν 3 πιθανά APIs για να το κάνετε αυτό:
Η EC2 instance θα έχει πιθανώς επίσης την άδεια ecr:GetAuthorizationToken
επιτρέποντάς της να κατεβάσει εικόνες (μπορείτε να αναζητήσετε ευαίσθητες πληροφορίες σε αυτές).
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)