Az - Conditional Access Policies & MFA Bypass
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Οι πολιτικές προσβάσεως με όρους του Azure είναι κανόνες που έχουν ρυθμιστεί στο Microsoft Azure για την επιβολή ελέγχων πρόσβασης σε υπηρεσίες και εφαρμογές Azure με βάση ορισμένες συνθήκες. Αυτές οι πολιτικές βοηθούν τους οργανισμούς να ασφαλίσουν τους πόρους τους εφαρμόζοντας τους σωστούς ελέγχους πρόσβασης υπό τις σωστές συνθήκες. Οι πολιτικές προσβάσεως με όρους βασικά καθορίζουν Ποιος μπορεί να έχει πρόσβαση σε Τι από Που και Πως.
Ακολουθούν μερικά παραδείγματα:
Πολιτική Κινδύνου Σύνδεσης: Αυτή η πολιτική θα μπορούσε να ρυθμιστεί ώστε να απαιτεί πολυπαραγοντική αυθεντικοποίηση (MFA) όταν ανιχνεύεται κίνδυνος σύνδεσης. Για παράδειγμα, αν η συμπεριφορά σύνδεσης ενός χρήστη είναι ασυνήθιστη σε σύγκριση με το κανονικό του μοτίβο, όπως η σύνδεση από μια διαφορετική χώρα, το σύστημα μπορεί να ζητήσει επιπλέον αυθεντικοποίηση.
Πολιτική Συμμόρφωσης Συσκευών: Αυτή η πολιτική μπορεί να περιορίσει την πρόσβαση σε υπηρεσίες Azure μόνο σε συσκευές που συμμορφώνονται με τα πρότυπα ασφαλείας του οργανισμού. Για παράδειγμα, η πρόσβαση θα μπορούσε να επιτρέπεται μόνο από συσκευές που διαθέτουν ενημερωμένο λογισμικό antivirus ή εκτελούν μια συγκεκριμένη έκδοση λειτουργικού συστήματος.
Είναι πιθανό μια πολιτική προσβάσεως με όρους να ελέγχει ορισμένες πληροφορίες που μπορούν να παραποιηθούν εύκολα επιτρέποντας την παράκαμψη της πολιτικής. Και αν, για παράδειγμα, η πολιτική ρυθμίζει MFA, ο επιτιθέμενος θα μπορεί να την παρακάμψει.
Κατά τη ρύθμιση μιας πολιτικής προσβάσεως με όρους, είναι απαραίτητο να υποδειχθούν οι χρήστες που επηρεάζονται και οι στόχοι πόροι (όπως όλες οι εφαρμογές cloud).
Είναι επίσης απαραίτητο να ρυθμιστούν οι συνθήκες που θα ενεργοποιήσουν την πολιτική:
Δίκτυο: IP, εύρος IP και γεωγραφικές τοποθεσίες
Μπορεί να παρακαμφθεί χρησιμοποιώντας VPN ή Proxy για σύνδεση σε μια χώρα ή καταφέρνοντας να συνδεθεί από μια επιτρεπόμενη διεύθυνση IP
Κίνδυνοι Microsoft: Κίνδυνος χρήστη, κίνδυνος σύνδεσης, κίνδυνος εσωτερικού
Πλατφόρμες συσκευών: Οποιαδήποτε συσκευή ή επιλέξτε Android, iOS, Windows phone, Windows, macOS, Linux
Αν δεν επιλεγεί “Οποιαδήποτε συσκευή” αλλά επιλεγούν όλες οι άλλες επιλογές, είναι δυνατόν να παρακαμφθεί χρησιμοποιώντας έναν τυχαίο user-agent που δεν σχετίζεται με αυτές τις πλατφόρμες
Εφαρμογές πελάτη: Οι επιλογές είναι “Περιηγητής”, “Εφαρμογές κινητών και επιτραπέζιοι πελάτες”, “Clients Exchange ActiveSync” και “Άλλοι πελάτες”
Για να παρακαμφθεί η σύνδεση με μια μη επιλεγμένη επιλογή
Φίλτρο για συσκευές: Είναι δυνατόν να δημιουργηθεί ένας κανόνας σχετικός με τη χρησιμοποιούμενη συσκευή
Ροές αυθεντικοποίησης: Οι επιλογές είναι “Ροή κωδικού συσκευής” και “Μεταφορά αυθεντικοποίησης”
Αυτό δεν θα επηρεάσει έναν επιτιθέμενο εκτός αν προσπαθεί να καταχραστεί οποιοδήποτε από αυτά τα πρωτόκολλα σε μια απόπειρα phishing για πρόσβαση στον λογαριασμό του θύματος
Τα πιθανά αποτελέσματα είναι: Αποκλεισμός ή Χορήγηση πρόσβασης με πιθανές προϋποθέσεις όπως η απαίτηση MFA, η συμμόρφωση της συσκευής…
Είναι δυνατόν να ρυθμιστεί μια συνθήκη με βάση την πλατφόρμα συσκευής (Android, iOS, Windows, macOS...), ωστόσο, αυτό βασίζεται στον user-agent οπότε είναι εύκολο να παρακαμφθεί. Ακόμη και κάνοντάς όλες τις επιλογές να επιβάλλουν MFA, αν χρησιμοποιήσετε έναν user-agent που δεν αναγνωρίζεται, θα μπορείτε να παρακάμψετε το MFA ή τον αποκλεισμό:
Απλά κάνοντάς τον περιηγητή να στείλει έναν άγνωστο user-agent (όπως Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile
) είναι αρκετό για να μην ενεργοποιηθεί αυτή η συνθήκη.
Μπορείτε να αλλάξετε τον user agent χειροκίνητα στα εργαλεία ανάπτυξης:
Ή να χρησιμοποιήσετε μια επέκταση περιηγητή όπως αυτή.
Αν αυτό έχει ρυθμιστεί στην πολιτική με όρους, ένας επιτιθέμενος θα μπορούσε απλά να χρησιμοποιήσει ένα VPN στη επιτρεπόμενη χώρα ή να προσπαθήσει να βρει έναν τρόπο να αποκτήσει πρόσβαση από μια επιτρεπόμενη διεύθυνση IP για να παρακάμψει αυτές τις συνθήκες.
Είναι δυνατόν να ρυθμιστούν πολιτικές προσβάσεως με όρους για να αποκλείσουν ή να επιβάλουν για παράδειγμα MFA όταν ένας χρήστης προσπαθεί να αποκτήσει πρόσβαση σε συγκεκριμένη εφαρμογή:
Για να προσπαθήσετε να παρακάμψετε αυτή την προστασία, θα πρέπει να δείτε αν μπορείτε να συνδεθείτε μόνο σε οποιαδήποτε εφαρμογή. Το εργαλείο AzureAppsSweep έχει δεκάδες αναγνωριστικά εφαρμογών σκληρά κωδικοποιημένα και θα προσπαθήσει να συνδεθεί σε αυτά και να σας ενημερώσει και να σας δώσει ακόμη και το token αν είναι επιτυχές.
Για να δοκιμάσετε συγκεκριμένα αναγνωριστικά εφαρμογών σε συγκεκριμένους πόρους μπορείτε επίσης να χρησιμοποιήσετε ένα εργαλείο όπως:
Επιπλέον, είναι επίσης δυνατό να προστατευθεί η μέθοδος σύνδεσης (π.χ. αν προσπαθείτε να συνδεθείτε από τον περιηγητή ή από μια επιτραπέζια εφαρμογή). Το εργαλείο Invoke-MFASweep εκτελεί κάποιους ελέγχους για να προσπαθήσει να παρακάμψει αυτές τις προστασίες επίσης.
Το εργαλείο donkeytoken θα μπορούσε επίσης να χρησιμοποιηθεί για παρόμοιους σκοπούς αν και φαίνεται ότι δεν συντηρείται.
Το εργαλείο ROPCI μπορεί επίσης να χρησιμοποιηθεί για να δοκιμάσει αυτές τις προστασίες και να δει αν είναι δυνατόν να παρακαμφθούν οι MFA ή οι αποκλεισμοί, αλλά αυτό το εργαλείο λειτουργεί από μια προοπτική whitebox. Πρέπει πρώτα να κατεβάσετε τη λίστα των εφαρμογών που επιτρέπονται στον ενοικιαστή και στη συνέχεια θα προσπαθήσει να συνδεθεί σε αυτές.
Μια επιλογή Azure MFA είναι να λάβετε μια κλήση στον ρυθμισμένο αριθμό τηλεφώνου όπου θα ζητηθεί από τον χρήστη να στείλει τον χαρακτήρα #
.
Καθώς οι χαρακτήρες είναι απλώς ήχοι, ένας επιτιθέμενος θα μπορούσε να παραβιάσει το μήνυμα φωνητικού ταχυδρομείου του αριθμού τηλεφώνου, να ρυθμίσει ως μήνυμα τον ήχο του #
και στη συνέχεια, όταν ζητηθεί η MFA, να βεβαιωθεί ότι το τηλέφωνο του θύματος είναι απασχολημένο (καλώντας το) ώστε η κλήση του Azure να ανακατευθυνθεί στο φωνητικό ταχυδρομείο.
Οι πολιτικές συχνά ζητούν μια συμβατή συσκευή ή MFA, έτσι ένας επιτιθέμενος θα μπορούσε να καταχωρίσει μια συμβατή συσκευή, να αποκτήσει ένα PRT token και να παρακάμψει με αυτόν τον τρόπο την MFA.
Ξεκινήστε καταχωρίζοντας μια συμβατή συσκευή στο Intune, στη συνέχεια αποκτήστε το PRT με:
Βρείτε περισσότερες πληροφορίες σχετικά με αυτόν τον τύπο επίθεσης στην παρακάτω σελίδα:
Αυτό το σενάριο αποκτά διαπιστευτήρια χρηστών και ελέγχει αν μπορεί να συνδεθεί σε ορισμένες εφαρμογές.
Αυτό είναι χρήσιμο για να δείτε αν δεν απαιτείται MFA για να συνδεθείτε σε ορισμένες εφαρμογές που μπορεί αργότερα να εκμεταλλευτείτε για να κλιμακώσετε τα προνόμια.
Αποκτήστε όλες τις πολιτικές.
Το MFASweep είναι ένα σενάριο PowerShell που προσπαθεί να συνδεθεί σε διάφορες υπηρεσίες της Microsoft χρησιμοποιώντας ένα παρεχόμενο σύνολο διαπιστευτηρίων και θα προσπαθήσει να προσδιορίσει αν είναι ενεργοποιημένο το MFA. Ανάλογα με το πώς είναι διαμορφωμένες οι πολιτικές πρόσβασης και άλλες ρυθμίσεις πολλαπλής αυθεντικοποίησης, ορισμένα πρωτόκολλα μπορεί να καταλήξουν να παραμείνουν σε μία μόνο παράγοντα. Έχει επίσης μια επιπλέον έλεγχο για τις ρυθμίσεις ADFS και μπορεί να προσπαθήσει να συνδεθεί στον τοπικό διακομιστή ADFS αν ανιχνευθεί.
Αυτό το εργαλείο έχει βοηθήσει στην αναγνώριση παρακάμψεων MFA και στη συνέχεια στην κακή χρήση APIs σε πολλούς παραγωγικούς AAD ενοικιαστές, όπου οι πελάτες AAD πίστευαν ότι είχαν επιβληθεί MFA, αλλά η αυθεντικοποίηση με βάση το ROPC ήταν επιτυχής.
Πρέπει να έχετε άδειες για να καταγράψετε όλες τις εφαρμογές ώστε να μπορέσετε να δημιουργήσετε τη λίστα των εφαρμογών για brute-force.
Το Donkey token είναι ένα σύνολο λειτουργιών που στοχεύουν να βοηθήσουν τους συμβούλους ασφαλείας που χρειάζονται να επικυρώσουν τις Πολιτικές Προσβάσεως με Όρους, δοκιμές για πύλες Microsoft με ενεργοποιημένο 2FA κ.λπ..
Δοκιμάστε κάθε πύλη αν είναι δυνατόν να συνδεθείτε χωρίς MFA:
Επειδή το Azure portal δεν είναι περιορισμένο, είναι δυνατόν να συλλεχθεί ένα token από το endpoint του portal για να αποκτηθεί πρόσβαση σε οποιαδήποτε υπηρεσία ανιχνεύθηκε από την προηγούμενη εκτέλεση. Σε αυτή την περίπτωση, το Sharepoint αναγνωρίστηκε και ζητείται ένα token για την πρόσβαση σε αυτό:
Υποθέτοντας ότι το token έχει την άδεια Sites.Read.All (από το Sharepoint), ακόμη και αν δεν μπορείτε να αποκτήσετε πρόσβαση στο Sharepoint από το διαδίκτυο λόγω MFA, είναι δυνατόν να χρησιμοποιήσετε το token για να αποκτήσετε πρόσβαση στα αρχεία με το παραγόμενο token:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)