AWS Pentesting
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Πριν ξεκινήσετε το pentesting σε ένα AWS περιβάλλον, υπάρχουν μερικά βασικά πράγματα που πρέπει να γνωρίζετε για το πώς λειτουργεί το AWS, ώστε να κατανοήσετε τι πρέπει να κάνετε, πώς να βρείτε κακοδιαμορφώσεις και πώς να τις εκμεταλλευτείτε.
Έννοιες όπως η ιεραρχία οργάνωσης, το IAM και άλλες βασικές έννοιες εξηγούνται σε:
Εργαλεία για προσομοίωση επιθέσεων:
Για να ελέγξετε ένα AWS περιβάλλον, είναι πολύ σημαντικό να γνωρίζετε: ποιες υπηρεσίες χρησιμοποιούνται, τι εκτίθεται, ποιος έχει πρόσβαση σε τι και πώς συνδέονται οι εσωτερικές υπηρεσίες AWS με τις εξωτερικές υπηρεσίες.
Από την οπτική γωνία της Red Team, το πρώτο βήμα για να συμβιβαστεί ένα AWS περιβάλλον είναι να καταφέρετε να αποκτήσετε κάποια διαπιστευτήρια. Εδώ έχετε μερικές ιδέες για το πώς να το κάνετε αυτό:
Διαρροές στο github (ή παρόμοια) - OSINT
Κοινωνική Μηχανική
Επαναχρησιμοποίηση Κωδικών (διαρροές κωδικών)
Ευπάθειες σε εφαρμογές που φιλοξενούνται στο AWS
Server Side Request Forgery με πρόσβαση στο metadata endpoint
Ανάγνωση Τοπικών Αρχείων
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3οι παράγοντες που έχουν παραβιαστεί
Εσωτερικός Υπάλληλος
Cognito διαπιστευτήρια
Ή με συμβιβασμό μιας μη αυθεντικοποιημένης υπηρεσίας που εκτίθεται:
Ή αν κάνετε μια ανασκόπηση, μπορείτε απλά να ζητήσετε διαπιστευτήρια με αυτούς τους ρόλους:
Αφού καταφέρετε να αποκτήσετε διαπιστευτήρια, πρέπει να γνωρίζετε σε ποιον ανήκουν αυτά τα creds, και σε τι έχουν πρόσβαση, οπότε πρέπει να εκτελέσετε κάποια βασική αρίθμηση:
Αν βρείτε ένα SSRF σε μια μηχανή μέσα στο AWS, ελέγξτε αυτή τη σελίδα για κόλπα:
Ένα από τα πρώτα πράγματα που πρέπει να γνωρίζετε είναι ποιος είστε (σε ποιον λογαριασμό βρίσκεστε και άλλες πληροφορίες σχετικά με το περιβάλλον AWS):
Σημειώστε ότι οι εταιρείες μπορεί να χρησιμοποιούν canary tokens για να εντοπίσουν πότε οι tokens κλέβονται και χρησιμοποιούνται. Συνιστάται να ελέγξετε αν μια token είναι canary token ή όχι πριν τη χρησιμοποιήσετε. Για περισσότερες πληροφορίες ελέγξτε αυτή τη σελίδα.
Αν έχετε αρκετά δικαιώματα, ο έλεγχος των προνομίων κάθε οντότητας μέσα στον λογαριασμό AWS θα σας βοηθήσει να κατανοήσετε τι μπορείτε να κάνετε εσείς και άλλες ταυτότητες και πώς να κλιμακώσετε τα προνόμια.
Αν δεν έχετε αρκετά δικαιώματα για να καταγράψετε το IAM, μπορείτε να τα κλέψετε με brute force για να τα ανακαλύψετε. Δείτε πώς να κάνετε την καταγραφή και το brute-forcing στο:
Τώρα που έχετε κάποιες πληροφορίες για τα διαπιστευτήριά σας (και αν είστε red team ελπίζω να δεν έχετε ανιχνευθεί). Είναι καιρός να κατανοήσετε ποιες υπηρεσίες χρησιμοποιούνται στο περιβάλλον. Στην επόμενη ενότητα μπορείτε να δείτε μερικούς τρόπους για να καταγράψετε κάποιες κοινές υπηρεσίες.
Η AWS έχει έναν εκπληκτικό αριθμό υπηρεσιών, στην επόμενη σελίδα θα βρείτε βασικές πληροφορίες, καταγραφές cheatsheets**,** πώς να αποφύγετε την ανίχνευση, να αποκτήσετε διαρκή πρόσβαση, και άλλα κόλπα μετά την εκμετάλλευση για μερικές από αυτές:
Σημειώστε ότι δεν χρειάζεται να εκτελέσετε όλη τη δουλειά χειροκίνητα, παρακάτω σε αυτή την ανάρτηση μπορείτε να βρείτε μια ενότητα σχετικά με αυτόματα εργαλεία.
Επιπλέον, σε αυτό το στάδιο μπορεί να έχετε ανακαλύψει περισσότερες υπηρεσίες εκτεθειμένες σε μη αυθεντικοποιημένους χρήστες, μπορεί να είστε σε θέση να τις εκμεταλλευτείτε:
Αν μπορείτε να ελέγξετε τουλάχιστον τα δικά σας δικαιώματα σε διάφορους πόρους, θα μπορούσατε να ελέγξετε αν μπορείτε να αποκτήσετε περαιτέρω δικαιώματα. Πρέπει να εστιάσετε τουλάχιστον στα δικαιώματα που αναφέρονται σε:
Κατά την καταγραφή υπηρεσιών AWS μπορεί να έχετε βρει κάποιες από αυτές να εκθέτουν στοιχεία στο Διαδίκτυο (θύρες VM/Containers, βάσεις δεδομένων ή υπηρεσίες ουρών, στιγμιότυπα ή κάδους...). Ως pentester/red teamer θα πρέπει πάντα να ελέγχετε αν μπορείτε να βρείτε ευαίσθητες πληροφορίες / ευπάθειες σε αυτές καθώς μπορεί να σας παρέχουν περαιτέρω πρόσβαση στον λογαριασμό AWS.
Σε αυτό το βιβλίο θα πρέπει να βρείτε πληροφορίες σχετικά με το πώς να βρείτε εκτεθειμένες υπηρεσίες AWS και πώς να τις ελέγξετε. Για το πώς να βρείτε ευπάθειες σε εκτεθειμένες δικτυακές υπηρεσίες θα σας συνιστούσα να αναζητήσετε την συγκεκριμένη υπηρεσία στο:
Όταν ο λογαριασμός διαχείρισης δημιουργεί νέους λογαριασμούς στην οργάνωση, δημιουργείται μια νέα ρόλος στον νέο λογαριασμό, ο οποίος ονομάζεται από προεπιλογή OrganizationAccountAccessRole
και δίνει πολιτική AdministratorAccess στον λογαριασμό διαχείρισης για να έχει πρόσβαση στον νέο λογαριασμό.
Έτσι, για να αποκτήσετε πρόσβαση ως διαχειριστής σε έναν παιδικό λογαριασμό χρειάζεστε:
Συμβιβασμός του λογαριασμού διαχείρισης και εύρεση του ID των παιδικών λογαριασμών και των ονόματων της ρόλου (OrganizationAccountAccessRole από προεπιλογή) που επιτρέπει στον λογαριασμό διαχείρισης να έχει πρόσβαση ως διαχειριστής.
Για να βρείτε παιδικούς λογαριασμούς, πηγαίνετε στην ενότητα οργανώσεων στην κονσόλα aws ή εκτελέστε aws organizations list-accounts
Δεν μπορείτε να βρείτε το όνομα των ρόλων απευθείας, οπότε ελέγξτε όλες τις προσαρμοσμένες πολιτικές IAM και αναζητήστε οποιαδήποτε επιτρέπει sts:AssumeRole
πάνω στους προηγουμένως ανακαλυφθέντες παιδικούς λογαριασμούς.
Συμβιβασμός ενός principal στον λογαριασμό διαχείρισης με sts:AssumeRole
άδεια πάνω στη ρόλο στους παιδικούς λογαριασμούς (ακόμα και αν ο λογαριασμός επιτρέπει σε οποιονδήποτε από τον λογαριασμό διαχείρισης να προσποιείται, καθώς είναι εξωτερικός λογαριασμός, συγκεκριμένες άδειες sts:AssumeRole
είναι απαραίτητες).
aws-recon: Ένα εργαλείο συλλογής αποθεμάτων επικεντρωμένο στην ασφάλεια AWS που έχει γραφτεί σε Ruby.
cloudlist: Το Cloudlist είναι ένα πολυ-σύννεφο εργαλείο για την απόκτηση Πόρων (Ονόματα υπολογιστών, Διευθύνσεις IP) από Παρόχους Σύννεφου.
cloudmapper: Το CloudMapper σας βοηθά να αναλύσετε τα περιβάλλοντα Amazon Web Services (AWS) σας. Τώρα περιέχει πολύ περισσότερη λειτουργικότητα, συμπεριλαμβανομένου του ελέγχου για ζητήματα ασφάλειας.
cartography: Το Cartography είναι ένα εργαλείο Python που ενοποιεί τα περιουσιακά στοιχεία υποδομής και τις σχέσεις μεταξύ τους σε μια διαισθητική γραφική απεικόνιση που υποστηρίζεται από μια βάση δεδομένων Neo4j.
starbase: Το Starbase συλλέγει πόρους και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένης της υποδομής cloud, εφαρμογών SaaS, ελέγχων ασφαλείας και άλλων, σε μια διαισθητική γραφική απεικόνιση που υποστηρίζεται από τη βάση δεδομένων Neo4j.
aws-inventory: (Χρησιμοποιεί python2) Αυτό είναι ένα εργαλείο που προσπαθεί να ανακαλύψει όλους τους πόρους AWS που έχουν δημιουργηθεί σε έναν λογαριασμό.
aws_public_ips: Είναι ένα εργαλείο για να ανακτήσει όλες τις δημόσιες διευθύνσεις IP (τόσο IPv4/IPv6) που σχετίζονται με έναν λογαριασμό AWS.
SkyArk: Ανακαλύψτε τους πιο προνομιούχους χρήστες στο σαρωμένο περιβάλλον AWS, συμπεριλαμβανομένων των AWS Shadow Admins. Χρησιμοποιεί powershell. Μπορείτε να βρείτε τον ορισμό των προνομιακών πολιτικών στη λειτουργία Check-PrivilegedPolicy
στο https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.
pacu: Το Pacu είναι ένα ανοιχτού κώδικα framework εκμετάλλευσης AWS, σχεδιασμένο για επιθετική δοκιμή ασφαλείας σε περιβάλλοντα cloud. Μπορεί να καταγράψει, να βρει λανθασμένες ρυθμίσεις και να τις εκμεταλλευτεί. Μπορείτε να βρείτε τον ορισμό των προνομιακών αδειών στο https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 μέσα στο dict user_escalation_methods
.
Σημειώστε ότι το pacu ελέγχει μόνο τα δικά σας μονοπάτια privesc (όχι σε επίπεδο λογαριασμού).
PMapper: Ο Principal Mapper (PMapper) είναι ένα σενάριο και βιβλιοθήκη για την αναγνώριση κινδύνων στη διαμόρφωση της Διαχείρισης Ταυτοτήτων και Πρόσβασης AWS (IAM) για έναν λογαριασμό AWS ή μια οργάνωση AWS. Μοντελοποιεί τους διάφορους Χρήστες και Ρόλους IAM σε έναν λογαριασμό ως κατευθυνόμενο γράφο, που επιτρέπει ελέγχους για privilege escalation και για εναλλακτικές διαδρομές που θα μπορούσε να ακολουθήσει ένας επιτιθέμενος για να αποκτήσει πρόσβαση σε έναν πόρο ή ενέργεια στο AWS. Μπορείτε να ελέγξετε τις permissions used to find privesc διαδρομές στα ονόματα αρχείων που τελειώνουν σε _edges.py
στο https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Το Cloudsplaining είναι ένα εργαλείο Αξιολόγησης Ασφαλείας AWS IAM που εντοπίζει παραβιάσεις της ελάχιστης προνομιακής πρόσβασης και δημιουργεί μια αναφορά HTML με προτεραιότητα κινδύνου. Θα σας δείξει πιθανούς over privileged πελάτες, inline και aws policies και ποιοι principals έχουν πρόσβαση σε αυτά. (Ελέγχει όχι μόνο για privesc αλλά και για άλλου είδους ενδιαφέρουσες άδειες, συνιστάται η χρήση του).
cloudjack: Το CloudJack αξιολογεί τους λογαριασμούς AWS για ευπάθειες hijacking υποτομέων ως αποτέλεσμα αποσυνδεδεμένων ρυθμίσεων Route53 και CloudFront.
ccat: Λίστα ECR repos -> Pull ECR repo -> Backdoor it -> Push backdoored image
Dufflebag: Το Dufflebag είναι ένα εργαλείο που αναζητά μέσα από δημόσιες στιγμιότυπα Elastic Block Storage (EBS) για μυστικά που μπορεί να έχουν αφεθεί κατά λάθος.
cloudsploit: Το CloudSploit από την Aqua είναι ένα έργο ανοιχτού κώδικα που έχει σχεδιαστεί για να επιτρέπει την ανίχνευση κινδύνων ασφαλείας σε λογαριασμούς υποδομής cloud, συμπεριλαμβανομένων: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) και GitHub (Δεν αναζητά ShadowAdmins).
Prowler: Ο Prowler είναι ένα εργαλείο ανοιχτού κώδικα για την εκτέλεση αξιολογήσεων, ελέγχων, αντίκτυπου περιστατικών, συνεχούς παρακολούθησης, ενίσχυσης και ετοιμότητας εγκληματολογίας για τις καλύτερες πρακτικές ασφαλείας του AWS.
CloudFox: Το CloudFox σας βοηθά να αποκτήσετε κατάσταση επίγνωσης σε άγνωστα περιβάλλοντα cloud. Είναι ένα εργαλείο γραμμής εντολών ανοιχτού κώδικα που δημιουργήθηκε για να βοηθήσει τους penetration testers και άλλους επαγγελματίες επιθετικής ασφάλειας να βρουν εκμεταλλεύσιμους επιθετικούς δρόμους στην υποδομή cloud.
ScoutSuite: Το Scout Suite είναι ένα εργαλείο ανοιχτού κώδικα για την ασφάλεια πολλαπλών σύννεφων, το οποίο επιτρέπει την αξιολόγηση της ασφάλειας των περιβαλλόντων σύννεφου.
cs-suite: Cloud Security Suite (χρησιμοποιεί python2.7 και φαίνεται μη συντηρημένο)
Zeus: Ο Zeus είναι ένα ισχυρό εργαλείο για τις καλύτερες πρακτικές σκληρής ασφάλισης AWS EC2 / S3 / CloudTrail / CloudWatch / KMS (φαίνεται μη συντηρημένο). Ελέγχει μόνο τις προεπιλεγμένες ρυθμισμένες πιστοποιήσεις μέσα στο σύστημα.
cloud-custodian: Ο Cloud Custodian είναι μια μηχανή κανόνων για τη διαχείριση δημόσιων λογαριασμών και πόρων cloud. Επιτρέπει στους χρήστες να ορίζουν πολιτικές για να επιτρέπουν μια καλά διαχειριζόμενη υποδομή cloud, που είναι τόσο ασφαλής όσο και βελτιστοποιημένη για κόστος. Συγκεντρώνει πολλά από τα ad-hoc σενάρια που έχουν οι οργανισμοί σε ένα ελαφρύ και ευέλικτο εργαλείο, με ενοποιημένα μετρήσεις και αναφορές.
pacbot: Το Policy as Code Bot (PacBot) είναι μια πλατφόρμα για συνεχή παρακολούθηση συμμόρφωσης, αναφορά συμμόρφωσης και αυτοματοποίηση ασφάλειας για το cloud. Στο PacBot, οι πολιτικές ασφάλειας και συμμόρφωσης υλοποιούνται ως κώδικας. Όλοι οι πόροι που ανακαλύπτονται από το PacBot αξιολογούνται σύμφωνα με αυτές τις πολιτικές για να εκτιμηθεί η συμμόρφωση με τις πολιτικές. Το πλαίσιο auto-fix του PacBot παρέχει τη δυνατότητα αυτόματης αντίδρασης σε παραβιάσεις πολιτικής αναλαμβάνοντας προκαθορισμένες ενέργειες.
streamalert: Το StreamAlert είναι ένα serverless, σε πραγματικό χρόνο πλαίσιο ανάλυσης δεδομένων που σας δίνει τη δυνατότητα να εισάγετε, αναλύετε και ειδοποιείτε για δεδομένα από οποιοδήποτε περιβάλλον, χρησιμοποιώντας πηγές δεδομένων και λογική ειδοποίησης που ορίζετε. Οι ομάδες ασφάλειας υπολογιστών χρησιμοποιούν το StreamAlert για να σαρώσουν τεραμπάιτ δεδομένων καταγραφής καθημερινά για ανίχνευση και αντίδραση σε περιστατικά.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)