AWS - EC2, EBS, SSM & VPC 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 - EC2, EBS, ELB, SSM, VPC & VPN Enumec2:DescribeInstances
, ec2:RunInstances
, ec2:CreateSecurityGroup
, ec2:AuthorizeSecurityGroupIngress
, ec2:CreateTrafficMirrorTarget
, ec2:CreateTrafficMirrorSession
, ec2:CreateTrafficMirrorFilter
, ec2:CreateTrafficMirrorFilterRule
Η αναπαραγωγή της κίνησης VPC αντιγράφει την εισερχόμενη και εξερχόμενη κίνηση για τις EC2 περιπτώσεις εντός ενός VPC χωρίς την ανάγκη εγκατάστασης οτιδήποτε στις ίδιες τις περιπτώσεις. Αυτή η αντιγραμμένη κίνηση θα αποστέλλεται συνήθως σε κάτι όπως ένα σύστημα ανίχνευσης δικτυακής εισβολής (IDS) για ανάλυση και παρακολούθηση. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί αυτό για να συλλάβει όλη την κίνηση και να αποκτήσει ευαίσθητες πληροφορίες από αυτήν:
Για περισσότερες πληροφορίες ελέγξτε αυτή τη σελίδα:
AWS - Malicious VPC MirrorΟι περιπτώσεις συνήθως περιέχουν κάποιο είδος ευαίσθητης πληροφορίας. Υπάρχουν διάφοροι τρόποι για να εισέλθετε (ελέγξτε κόλπα ανύψωσης προνομίων EC2). Ωστόσο, ένας άλλος τρόπος για να ελέγξετε τι περιέχει είναι να δημιουργήσετε ένα AMI και να εκτελέσετε μια νέα περίπτωση (ακόμα και στον δικό σας λογαριασμό) από αυτό:
Τα snapshots είναι αντίγραφα ασφαλείας των όγκων, τα οποία συνήθως θα περιέχουν ευαίσθητες πληροφορίες, επομένως η εξέτασή τους θα πρέπει να αποκαλύψει αυτές τις πληροφορίες. Αν βρείτε έναν όγκο χωρίς snapshot μπορείτε να: Δημιουργήσετε ένα snapshot και να εκτελέσετε τις παρακάτω ενέργειες ή απλά να τον προσαρτήσετε σε μια παρουσία μέσα στον λογαριασμό:
AWS - EBS Snapshot DumpΑκόμα και αν κλειδώσετε ένα EC2 ώστε να μην μπορεί να βγει κυκλοφορία, μπορεί ακόμα να εξαχθεί μέσω DNS.
Τα VPC Flow Logs δεν θα καταγράψουν αυτό.
Δεν έχετε πρόσβαση στα AWS DNS logs.
Απενεργοποιήστε το αυτό ρυθμίζοντας το "enableDnsSupport" σε false με:
aws ec2 modify-vpc-attribute --no-enable-dns-support --vpc-id <vpc-id>
Ένας επιτιθέμενος θα μπορούσε να καλέσει τα API endpoints ενός λογαριασμού που ελέγχει. Το Cloudtrail θα καταγράψει αυτές τις κλήσεις και ο επιτιθέμενος θα μπορεί να δει τα δεδομένα που έχουν εξαχθεί στα logs του Cloudtrail.
Μπορείτε να αποκτήσετε περαιτέρω πρόσβαση σε υπηρεσίες δικτύου ανοίγοντας θύρες όπως αυτό:
Είναι δυνατόν να εκτελέσετε μια EC2 instance και να την καταχωρήσετε για να χρησιμοποιηθεί για την εκτέλεση ECS instances και στη συνέχεια να κλέψετε τα δεδομένα των ECS instances.
Για περισσότερες πληροφορίες ελέγξτε αυτό.
Απαιτούμενες άδειες:
ssm:StartSession
Εκτός από την εκτέλεση εντολών, το SSM επιτρέπει τη σήραγγα κυκλοφορίας, η οποία μπορεί να καταχραστεί για να γίνει pivot από EC2 instances που δεν έχουν πρόσβαση στο δίκτυο λόγω Security Groups ή NACLs. Ένα από τα σενάρια όπου αυτό είναι χρήσιμο είναι το pivoting από ένα Bastion Host σε ένα ιδιωτικό EKS cluster.
Για να ξεκινήσετε μια συνεδρία, χρειάζεστε το SessionManagerPlugin εγκατεστημένο: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
Εγκαταστήστε το SessionManagerPlugin στον υπολογιστή σας
Συνδεθείτε στο Bastion EC2 χρησιμοποιώντας την παρακάτω εντολή:
Πάρτε τα προσωρινά διαπιστευτήρια Bastion EC2 AWS με το Abusing SSRF in AWS EC2 environment script
Μεταφέρετε τα διαπιστευτήρια στον δικό σας υπολογιστή στο αρχείο $HOME/.aws/credentials
ως προφίλ [bastion-ec2]
Συνδεθείτε στο EKS ως Bastion EC2:
Ενημερώστε το πεδίο server
στο αρχείο $HOME/.kube/config
ώστε να δείχνει στο https://localhost
Δημιουργήστε ένα SSM τούνελ ως εξής:
Η κίνηση από το εργαλείο kubectl
προωθείται τώρα μέσω της σήραγγας SSM μέσω του Bastion EC2 και μπορείτε να αποκτήσετε πρόσβαση στο ιδιωτικό EKS cluster από το μηχάνημά σας εκτελώντας:
Σημειώστε ότι οι συνδέσεις SSL θα αποτύχουν εκτός αν ορίσετε την επιλογή --insecure-skip-tls-verify
(ή την αντίστοιχη στα εργαλεία ελέγχου K8s). Δεδομένου ότι η κίνηση είναι τούνελ μέσω του ασφαλούς AWS SSM τούνελ, είστε ασφαλείς από οποιοδήποτε είδος επιθέσεων MitM.
Τέλος, αυτή η τεχνική δεν είναι συγκεκριμένη για επιθέσεις σε ιδιωτικά EKS clusters. Μπορείτε να ορίσετε αυθαίρετους τομείς και θύρες για να μεταβείτε σε οποιαδήποτε άλλη υπηρεσία AWS ή σε μια προσαρμοσμένη εφαρμογή.
https://github.com/saw-your-packet/CloudShovel: Το CloudShovel είναι ένα εργαλείο σχεδιασμένο για να αναζητά ευαίσθητες πληροφορίες εντός δημόσιων ή ιδιωτικών Amazon Machine Images (AMIs). Αυτοματοποιεί τη διαδικασία εκκίνησης στιγμιοτύπων από στοχευμένες AMIs, τοποθέτησης των τόμων τους και σάρωσης για πιθανά μυστικά ή ευαίσθητα δεδομένα.
Μια απόδειξη της έννοιας παρόμοια με την επίδειξη Ransomware που παρουσιάστηκε στις σημειώσεις μετά την εκμετάλλευση S3. Το KMS θα έπρεπε να μετονομαστεί σε RMS για Υπηρεσία Διαχείρισης Ransomware με το πόσο εύκολο είναι να χρησιμοποιηθεί για την κρυπτογράφηση διαφόρων υπηρεσιών AWS χρησιμοποιώντας το.
Πρώτα από έναν λογαριασμό AWS 'επιτιθέμενου', δημιουργήστε ένα κλειδί διαχείρισης πελάτη στο KMS. Για αυτό το παράδειγμα, θα αφήσουμε το AWS να διαχειρίζεται τα δεδομένα του κλειδιού για μένα, αλλά σε ένα ρεαλιστικό σενάριο, ένας κακόβουλος παράγοντας θα διατηρούσε τα δεδομένα του κλειδιού εκτός του ελέγχου του AWS. Αλλάξτε την πολιτική του κλειδιού για να επιτρέψετε σε οποιονδήποτε Principal λογαριασμού AWS να χρησιμοποιήσει το κλειδί. Για αυτή την πολιτική κλειδιού, το όνομα του λογαριασμού ήταν 'AttackSim' και ο κανόνας πολιτικής που επιτρέπει σε όλους την πρόσβαση ονομάζεται 'Outside Encryption'
Η πολιτική κλειδιού χρειάζεται τα εξής ενεργοποιημένα για να επιτρέψει τη δυνατότητα χρήσης της για κρυπτογράφηση ενός EBS volume:
kms:CreateGrant
kms:Decrypt
kms:DescribeKey
kms:GenerateDataKeyWithoutPlainText
kms:ReEncrypt
Τώρα με το δημόσια προσβάσιμο κλειδί προς χρήση. Μπορούμε να χρησιμοποιήσουμε έναν λογαριασμό 'θύμα' που έχει μερικές EC2 περιπτώσεις ενεργές με μη κρυπτογραφημένα EBS volumes συνδεδεμένα. Τα EBS volumes αυτού του λογαριασμού 'θύμα' είναι αυτά που στοχεύουμε για κρυπτογράφηση, αυτή η επίθεση είναι υπό την υποτιθέμενη παραβίαση ενός λογαριασμού AWS υψηλής προνομιακής πρόσβασης.
Αυτό έχει ως αποτέλεσμα να παραμείνουν διαθέσιμα μόνο κρυπτογραφημένα EBS volumes στον λογαριασμό.
Επίσης αξίζει να σημειωθεί ότι το σενάριο σταμάτησε τις EC2 περιπτώσεις για να αποσυνδέσει και να διαγράψει τα αρχικά EBS volumes. Τα αρχικά μη κρυπτογραφημένα volumes έχουν φύγει τώρα.
Στη συνέχεια, επιστρέψτε στην πολιτική κλειδιού στον λογαριασμό 'επιτιθέμενου' και αφαιρέστε τον κανόνα πολιτικής 'Εξωτερική Κρυπτογράφηση' από την πολιτική κλειδιού.
Περίμενε λίγο για να διαδοθεί η νέα πολιτική κλειδιού. Στη συνέχεια, επέστρεψε στον λογαριασμό του 'θύματος' και προσπάθησε να επισυνάψεις έναν από τους νέους κρυπτογραφημένους όγκους EBS. Θα διαπιστώσεις ότι μπορείς να επισυνάψεις τον όγκο.
Αλλά όταν προσπαθήσεις να ξεκινήσεις ξανά την EC2 instance με τον κρυπτογραφημένο όγκο EBS, θα αποτύχει και θα επιστρέψει από την κατάσταση 'pending' στην κατάσταση 'stopped' για πάντα, καθώς ο επισυναπτόμενος όγκος EBS δεν μπορεί να αποκρυπτογραφηθεί χρησιμοποιώντας το κλειδί, καθώς η πολιτική κλειδιού δεν το επιτρέπει πλέον.
Αυτό είναι το python script που χρησιμοποιείται. Παίρνει διαπιστευτήρια AWS για έναν λογαριασμό 'θύματος' και μια δημόσια διαθέσιμη τιμή ARN AWS για το κλειδί που θα χρησιμοποιηθεί για την κρυπτογράφηση. Το script θα δημιουργήσει κρυπτογραφημένα αντίγραφα ΟΛΩΝ των διαθέσιμων όγκων EBS που είναι επισυναπτόμενοι σε ΟΛΕΣ τις EC2 instances στον στοχευμένο λογαριασμό AWS, στη συνέχεια θα σταματήσει κάθε EC2 instance, θα αποσυνδέσει τους αρχικούς όγκους EBS, θα τους διαγράψει και τελικά θα διαγράψει όλα τα snapshots που χρησιμοποιήθηκαν κατά τη διαδικασία. Αυτό θα αφήσει μόνο κρυπτογραφημένους όγκους EBS στον στοχευμένο λογαριασμό 'θύματος'. ΧΡΗΣΙΜΟΠΟΙΗΣΕ ΑΥΤΟ ΤΟ SCRIPT ΜΟΝΟ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΔΟΚΙΜΗΣ, ΕΙΝΑΙ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟ ΚΑΙ ΘΑ ΔΙΑΓΡΑΨΕΙ ΟΛΟΥΣ ΤΟΥΣ ΑΡΧΙΚΟΥΣ ΟΓΚΟΥΣ EBS. Μπορείς να τους ανακτήσεις χρησιμοποιώντας το χρησιμοποιούμενο κλειδί KMS και να τους επαναφέρεις στην αρχική τους κατάσταση μέσω snapshots, αλλά θέλω απλώς να σε ενημερώσω ότι αυτό είναι ένα PoC ransomware στο τέλος της ημέρας.
Παρόμοια με το παράδειγμα ransomware S3. Αυτή η επίθεση θα δημιουργήσει αντίγραφα των συνδεδεμένων EBS volumes χρησιμοποιώντας snapshots, θα χρησιμοποιήσει το δημόσια διαθέσιμο κλειδί από τον λογαριασμό 'επιτιθέμενου' για να κρυπτογραφήσει τα νέα EBS volumes, στη συνέχεια θα αποσυνδέσει τα αρχικά EBS volumes από τις EC2 περιπτώσεις και θα τα διαγράψει, και τέλος θα διαγράψει τα snapshots που χρησιμοποιήθηκαν για τη δημιουργία των νεοκρυπτογραφημένων EBS volumes.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)