AWS - ECS Post Exploitation

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

ECS

Για περισσότερες πληροφορίες ελέγξτε:

AWS - ECS Enum

Ρόλοι IAM του Κεντρικού Συστήματος Ελέγχου (ECS)

Στο ECS, ένας ρόλος IAM μπορεί να ανατεθεί στην εργασία που εκτελείται μέσα στον εμπορευματοκιβώτιο. Εάν η εργασία εκτελείται μέσα σε μια EC2 περίπτωση, η περίπτωση EC2 θα έχει έναν άλλο ρόλο IAM που της είναι επισυναπτόμενος. Αυτό σημαίνει ότι εάν καταφέρετε να παραβιάσετε μια περίπτωση ECS, μπορείτε πιθανώς να αποκτήσετε τον ρόλο IAM που συσχετίζεται με το ECR και την περίπτωση EC2. Για περισσότερες πληροφορίες σχετικά με το πώς να αποκτήσετε αυτές τις πιστοποιήσεις, ελέγξτε:

Σημειώστε ότι εάν η περίπτωση EC2 επιβάλλει το IMDSv2, σύμφωνα με τα έγγραφα, η απόκριση του αιτήματος PUT θα έχει ένα όριο αναπήδησης 1, καθιστώντας αδύνατη την πρόσβαση στα μεταδεδομένα της περίπτωσης EC2 από ένα εμπορευματοκιβώτιο μέσα στην περίπτωση EC2.

Ανέβασμα δικαιωμάτων σε κόμβο για κλοπή διαπιστευτηρίων και μυστικών άλλων εμπορευματοκιβωτίων

Ωστόσο, η EC2 χρησιμοποιεί το Docker για να εκτελέσει τις εργασίες του ECS, οπότε εάν μπορείτε να δραπετεύσετε στον κόμβο ή να αποκτήσετε πρόσβαση στο socket του Docker, μπορείτε να ελέγξετε ποια άλλα εμπορευματοκιβώτια εκτελούνται και ακόμα και να μπείτε μέσα σε αυτά και να κλέψετε τους ρόλους IAM που είναι συνδεδεμένοι με αυτά.

Εκτέλεση εμπορευματοκιβωτίων στον τρέχοντα κόμβο

Επιπλέον, ο ρόλος της περίπτωσης EC2 θα έχει συνήθως αρκετές άδειες για να ενημερώσει την κατάσταση της περίπτωσης του εμπορευματοκιβωτίου των περιπτώσεων EC2 που χρησιμοποιούνται ως κόμβοι μέσα στο σύμπλεγμα. Ένας επιτιθέμενος μπορεί να τροποποιήσει την κατάσταση μιας περίπτωσης σε DRAINING, τότε το ECS θα αφαιρέσει όλες τις εργασίες από αυτήν και αυτές που εκτελούνται ως REPLICA θα εκτελεστούν σε μια διαφορετική περίπτωση, πιθανώς μέσα στην περίπτωση του επιτιθέμενου, έτσι ώστε να μπορεί να κλέψει τους ρόλους IAM τους και πιθανά ευαίσθητες πληροφορίες από μέσα στο εμπορευματοκιβώτιο.

aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>

Η ίδια τεχνική μπορεί να γίνει απεγγράφοντας την EC2 περίπτωση από το cluster. Αυτό είναι πιθανώς λιγότερο αόρατο, αλλά θα αναγκάσει τις εργασίες να εκτελεστούν σε άλλες περιπτώσεις:

aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force

Μια τελική τεχνική για να αναγκάσουμε την επανεκτέλεση των εργασιών είναι να ενημερώσουμε το ECS ότι η εργασία ή το container έχει διακοπεί. Υπάρχουν 3 πιθανές διεπαφές API για να το κάνουμε αυτό:

# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster <value> \
--status STOPPED --reason "anything" --containers [...]

# Needs: ecs:SubmitContainerStateChange
aws ecs submit-container-state-change ...

# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...

Κλέψτε ευαίσθητες πληροφορίες από τα containers του ECR

Το EC2 instance πιθανότατα θα έχει επίσης την άδεια ecr:GetAuthorizationToken που του επιτρέπει να κατεβάζει εικόνες (μπορείτε να αναζητήσετε ευαίσθητες πληροφορίες μέσα σε αυτές).

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated