AWS Pentesting
Βασικές Πληροφορίες
Πριν ξεκινήσετε τον έλεγχο ασφάλειας ενός περιβάλλοντος AWS, υπάρχουν μερικά βασικά πράγματα που πρέπει να γνωρίζετε για το πώς λειτουργεί το AWS για να σας βοηθήσει να κατανοήσετε τι χρειάζεστε να κάνετε, πώς να βρείτε μη σωστές ρυθμίσεις και πώς να τις εκμεταλλευτείτε.
Έννοιες όπως η ιεραρχία της οργάνωσης, η IAM και άλλες βασικές έννοιες εξηγούνται στο:
AWS - Basic InformationΕργαστήρια για μάθηση
Εργαλεία για προσομοίωση επιθέσεων:
Μεθοδολογία Ελεγκτή Ασφάλειας AWS/Red Team
Για να ελέγξετε ένα περιβάλλον AWS είναι πολύ σημαντικό να γνωρίζετε: ποιες υπηρεσίες χρησιμοποιούνται, τι εκτίθεται, ποιος έχει πρόσβαση σε τι και πώς συνδέονται οι εσωτερικές υπηρεσίες AWS με εξωτερικές υπηρεσίες.
Από την άποψη της Ομάδας Red Team, το πρώτο βήμα για την παραβίαση ενός περιβάλλοντος AWS είναι να καταφέρετε να αποκτήσετε κάποια διαπιστευτήρια. Εδώ έχετε μερικές ιδέες για το πώς να το κάνετε:
Διαρροές στο github (ή παρόμοιες) - OSINT
Κοινωνική Μηχανική
Επαναχρησιμοποίηση κωδικού πρόσβασης (διαρροές κωδικών πρόσβασης)
Ευπάθειες σε εφαρμογές που φιλοξενούνται στο AWS
Server Side Request Forgery με πρόσβαση στο σημείο τερματικής πληροφορίας (metadata endpoint)
Ανάγνωση τοπικού αρχείου
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
Παραβιάσεις τρίτων
Εσωτερικός Υπάλληλος
Cognito διαπιστευτήρια
Ή με το παραβίαση μιας μη εξουσιοδοτημένης υπηρεσίας που εκτίθεται:
AWS - Unauthenticated Enum & AccessΉ εάν κάνετε μια αναθεώρηση, μπορείτε απλά να ζητήσετε διαπιστευτήρια με αυτούς τους ρόλους:
AWS - Permissions for a PentestΑφού καταφέρετε να αποκτήσετε διαπιστευτήρια, πρέπει να γνωρίζετε σε ποιον ανήκουν αυτά τα διαπιστευτήρια και τι έχουν πρόσβαση, οπότε πρέπει να πραγματοποιήσετε μερικές βασικές απαρίθμηση:
Βασική Απαρίθμηση
SSRF
Εάν βρήκατε ένα SSRF σε μια μηχανή μέσα στο AWS, ελέγξτε αυτήν τη σελίδα για κόλπα:
Whoami
Ένα από τα πρώτα πράγματα που πρέπει να γνωρίζετε είναι ποιος είστε (σε ποιο λογαριασμό βρίσκεστε και άλλες πληροφορίες για το περιβάλλον AWS):
Σημειώστε ότι οι εταιρείες μπορεί να χρησιμοποιούν canary tokens για να ανιχνεύσουν όταν τα tokens κλαπούν και χρησιμοποιηθούν. Συνιστάται να ελέγξετε εάν ένα token είναι canary token πριν το χρησιμοποιήσετε. Για περισσότερες πληροφορίες ελέγξτε αυτήν τη σελίδα.
Απαρίθμηση Οργανισμού
AWS - Organizations EnumΑπαρίθμηση IAM
Εάν έχετε αρκετές άδειες, η έλεγχος των προνομίων κάθε οντότητας μέσα στον λογαριασμό AWS θα σας βοηθήσει να κατανοήσετε τι μπορείτε να κάνετε εσείς και άλλες ταυτότητες και πώς να αναβαθμίσετε τα προνόμια.
Εάν δεν έχετε αρκετές άδειες για να απαριθμήσετε το IAM, μπορείτε να τα κλέψετε με bruteforce για να τα ανακαλύψετε. Ελέγξτε πώς να κάνετε την απαρίθμηση και το brute-forcing στο:
AWS - IAM, Identity Center & SSO EnumΤώρα που έχετε κάποιες πληροφορίες για τα διαπιστευτήριά σας (και αν είστε μια κόκκινη ομάδα ελπίζω να μην έχετε ανιχνευθεί). Είναι ώρα να καταλάβετε ποιες υπηρεσίες χρησιμοποιούνται στο περιβάλλον. Στην επόμενη ενότητα μπορείτε να ελέγξετε ορισμένους τρόπους για απαρίθμηση ορισμένων κοινών υπηρεσιών.
Απαρίθμηση Υπηρεσιών, Μετά-Εκμετάλλευση & Μόνιμη Παρουσία
Η AWS διαθέτει μια εκπληκτική ποσότητα υπηρεσιών, στην ακόλουθη σελίδα θα βρείτε βασικές πληροφορίες, cheatsheets απαρίθμησης, πώς να αποφύγετε την ανίχνευση, να αποκτήσετε μόνιμη παρουσία και άλλα κόλπα μετά-εκμετάλλευσης για μερικές από αυτές:
AWS - ServicesΣημειώστε ότι δεν χρειάζεται να εκτελέσετε όλη τη δουλειά χειροκίνητα, παρακάτω σε αυτήν την ανάρτηση μπορείτε να βρείτε μια ενότητα για αυτόματα εργαλεία.
Επιπλέον, σε αυτό το στάδιο μπορεί να έχετε ανακαλύψει περισσότερες υπηρεσίες που εκτίθενται σε μη εξουσιοδοτημένους χρήστες, μπορείτε να τις εκμεταλλευτείτε:
AWS - Unauthenticated Enum & AccessΑνέλιξη Προνομίων
Εάν μπορείτε να ελέγξετε τουλάχιστον τα δικαιώματά σας σε διάφορους πόρους, μπορείτε να ελέγξετε εάν μπορείτε να αποκτήσετε περαιτέρω δικαιώματα. Θα πρέπει να επικεντρωθείτε τουλάχιστον στα δικαιώματα που αναφέρονται στο:
AWS - Privilege EscalationΔημόσια Εκτεθειμένες Υπηρεσίες
Κατά την απαρίθμηση των υπηρεσιών AWS μπορεί να έχετε βρει ορισμένες από αυτές να εκθέτουν στο Διαδίκτυο στοιχεία (θύρες VM/Containers, βάσεις δεδομένων ή υπηρεσίες ουράς, αντίγραφα ασφαλείας ή κάδους...). Ως pentester/red teamer θα πρέπει πάντα να ελέγχετε εάν μπορείτε να βρείτε ευαίσθητες πληροφορίες / ευπάθειες σε αυτές, καθώς μπορεί να σας παρέχουν περαιτέρω πρόσβαση στον λογαριασμό AWS.
Σε αυτό το βιβλίο θα βρείτε πληροφορίες για το πώς να βρείτε εκτεθειμένες υπηρεσίες AWS και πώς να τις ελέγξετε. Όσον αφορά το πώς να βρείτε ευπάθειες σε εκτεθειμένες δικτυακές υπηρεσίες, θα σας συνιστούσα να αναζητήσετε τη συγκεκριμένη υπηρεσία στο:
Παραβίαση του Οργανισμού
Από τον λογαριασμό ρίζας/διαχείρισης
Όταν ο λογαριασμός διαχείρισης δημιουργεί νέους λογαριασμούς στον οργανισμό, δημιουργείται ένας νέος ρόλος στον νέο λογαριασμό, με την προεπιλεγμένη ονομασία OrganizationAccountAccessRole
και δίνει πολιτική AdministratorAccess στον λογαριασμό διαχείρισης για πρόσβαση στον νέο λογαριασμό ως διαχειριστής.
Έτσι, για να έχετε πρόσβαση ως διαχειριστής σε έναν υπολογιστικό λογ
cloudlist: Το Cloudlist είναι ένα εργαλείο πολλαπλών νεφών για την ανάκτηση Πόρων (Ονομάτων Κεντρικού Υπολογιστή, Διευθύνσεων IP) από Παρόχους Νέφους.
cloudmapper: Το CloudMapper σας βοηθά να αναλύσετε τα περιβάλλοντα των Amazon Web Services (AWS) σας. Περιλαμβάνει πλέον πολλαπλή λειτουργικότητα, συμπεριλαμβανομένου του ελέγχου για θέματα ασφαλείας.
cartography: Το Cartography είναι ένα εργαλείο Python που συγκεντρώνει τα υποδομικά στοιχεία και τις σχέσεις μεταξύ τους σε μια ευανάγνωστη γραφική αναπαράσταση με τη χρήση μιας βάσης δεδομένων Neo4j.
starbase: Το Starbase συλλέγει περιουσιακά στοιχεία και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένης της υποδομής στον νέφος, εφαρμογών SaaS, ελέγχων ασφαλείας και άλλων, σε μια ευανάγνωστη γραφική προβολή που υποστηρίζεται από τη βάση δεδομένων Neo4j.
aws-inventory: (Χρησιμοποιεί python2) Αυτό είναι ένα εργαλείο που προσπαθεί να ανακαλύψει όλους τους πόρους AWS που έχουν δημιουργηθεί σε ένα λογαριασμό.
aws_public_ips: Είναι ένα εργαλείο για να ανακτήσετε όλες τις δημόσιες διευθύνσεις IP (τόσο IPv4/IPv6) που σχετίζονται με ένα λογαριασμό AWS.
Privesc & Exploiting
SkyArk: Ανακαλύψτε τους πιο προνομιούχους χρήστες στο σαρώνομενο περιβάλλον AWS, συμπεριλαμβανομένων των AWS Shadow Admins. Χρησιμοποιεί το powershell. Μπορείτε να βρείτε τον ορισμό των προνομιούχων πολιτικών στη συνάρτηση
Check-PrivilegedPolicy
στο https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.pacu: Το Pacu είναι ένα ανοικτού κώδικα πλαίσιο εκμετάλλευσης του AWS, σχεδιασμένο για επιθετική ασφάλεια κατά των περιβαλλόντων στον νέφος. Μπορεί να απαριθμήσει, να βρει λανθασμένες ρυθμίσεις και να τις εκμεταλλευτεί. Μπορείτε να βρείτε τον ορισμό των προνομιούχων δικαιωμάτων στο https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 μέσα στο λεξικό
user_escalation_methods
.Σημειώστε ότι το pacu ελέγχει μόνο τα δικά σας μονοπάτια privescs (όχι σε όλο το λογαριασμό).
PMapper: Το Principal Mapper (PMapper) είναι ένα σενάριο και βιβλιοθήκη για την αναγνώριση κινδύνων στη διαμόρφωση του AWS Identity and Access Management (IAM) για ένα λογαριασμό AWS ή μια οργάνωση AWS. Μοντελοποιεί τους διάφορους χρήστες IAM και ρόλους σε ένα λογαριασμό ως έναν κατευθυνόμενο γράφο, που επιτρέπει ελέγχους για ανέλιξη προνομίων και για εναλλακτικές διαδρομές που μπορεί να ακολουθήσει ένας επιτιθέμενος για να αποκτήσει πρόσβαση σε ένα πόρο ή μια ενέργεια στο AWS. Μπορείτε να ελέγξετε τα δικαιώματα που χρησιμοποιούνται για την εύρεση διαδρομών προνομίων στα ονόματα αρχείων που τελειώνουν σε
_edges.py
στο https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Το Cloudsplaining είναι ένα εργαλείο αξιολόγησης ασφάλειας AWS IAM που εντοπίζει παραβιάσεις της αρχής του ελάχιστου δικαιώματος και δημιουργεί έναν προτεραιοποιημένο κίνδυνο HTML αναφορά. Θα σας δείξει πιθανά υπερπρονομιούχους πελάτες, ενσωματωμένες πολιτικές aws και ποιοι αρχές έχουν πρόσβαση σε αυτές. (Δεν ελέγχει μόνο για προώθηση δικαιωμάτων, αλλά και για άλλου είδους ενδιαφέρουσες άδειες, συνιστάται η χρήση του).
cloudjack: Το CloudJack αξιολογεί τους λογαριασμούς AWS για ευπάθειες κλοπής υποτομέων λόγω αποσυνδεδεμένων ρυθμίσεων Route53 και CloudFront.
ccat: Λίστα αποθετηρίων ECR -> Ανάκτηση αποθετηρίου ECR -> Παραβίαση του -> Ανέβασμα παραβιασμένης εικόνας
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 σας βοηθά να αποκτήσετε επίγνωση της κατάστασης σε άγνωστα περιβάλλοντα στον νέφος. Είναι ένα εργαλείο γραμμής εντολών ανοικτού κώδικα που δημιουργήθηκε για να βοηθήσει τους εισβολείς ασφαλείας και άλλους επαγγελματίες ασφάλειας να βρουν ευπάθειες διέξοδου επίθεσης στην υποδομή του νέφους.
ScoutSuite: Το Scout Suite είναι ένα εργαλείο ανοικτού κώδικα για αξιολόγηση ασφάλειας πολλαπλών νέφων, το οποίο επιτρέπει την αξιολόγηση της ασφάλειας των περιβαλλόντων νέφους.
cs-suite: Το Cloud Security Suite (χρησιμοποιεί την python2.7 και φαίνεται να μην είναι σε συντήρηση)
Zeus: Το Zeus είναι ένα ισχυρό εργαλείο για την ενίσχυση των βέλτιστων πρακτικών ασφάλειας του AWS EC2 / S3 / CloudTrail / CloudWatch / KMS (φαίνεται να μην είναι σε συντήρηση). Ελέγχει μόνο τα προεπιλεγμένα διαμορφωμένα διαπιστευτήρια εντός του συστήματος.
Συνεχής Ελεγχος
cloud-custodian: Το Cloud Custodian είναι ένας κανόνες κινητήρας για τη διαχείριση λογαριασμών και πόρων δημόσιου νέφους. Επιτρέπει στους χρήστες να ορίζουν πολιτικές για τη δημιουργία μιας καλά διαχειριζόμενης υποδομής νέφους, η οποία είναι τόσο ασφαλής όσο και βελτιστοποιημένη από άποψη κόστους. Συγκεντρώνει πολλά από τα ανεπίσημα σενάρια που έχουν οι οργανισμοί σε ένα ελαφρύ και ευέλικτο εργαλείο, με ενιαία μετρήσεις και αναφορές.
pacbot: Το Policy as Code Bot (PacBot) είναι μια πλατφόρμα για συνεχή παρακολούθηση της συμμόρφωσης, αναφορά συμμόρφωσης και αυτοματοποίηση ασφάλειας για το νέφος. Στο PacBot, οι πολιτικές ασφάλειας και συμμόρφωσης υλοποιούνται ως κώδικας. Όλοι οι πόροι που ανακαλύπτονται από το PacBot αξιολογούνται έναντι αυτών των πολιτικών για να μετρηθεί η συμμόρφωση με τις πολιτικές. Το πλαίσιο αυτόματης διόρθωσης του PacBot παρέχει τη δυνατότητα αυτόματης αντίδρασης σε παραβιάσεις πολιτικής με λαμβανόμενες προκαθορισμένες ενέργειες.
streamalert: Το StreamAlert είναι ένα αναλυτικό πλαίσιο ανάλυσης δεδομένων σε πραγματικό χρόνο που σας επιτρέπει να εισάγετε, αναλύετε και ειδοποιείτε για δεδομένα από οποιοδήποτε περιβάλλον, χρησιμοποιώντας πηγές δεδομένων και λογική ειδοποίησης που ορίζετε. Οι ομάδες ασφαλείας υπολογιστών χρησιμοποιούν το StreamAlert για να σαρώνουν τεραβάιτ από δεδομένα καταγραφής κάθε μέρα για τον εντοπισμό και την αντίδραση σε περιστατικά.
DEBUG: Καταγραφή αιτημάτων AWS cli
Αναφορές
Last updated