Az - OAuth Apps Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Οι εφαρμογές Azure είναι ρυθμισμένες με τις άδειες που θα μπορούν να χρησιμοποιούν όταν ένας χρήστης δώσει τη συγκατάθεσή του στην εφαρμογή (όπως η καταμέτρηση του καταλόγου, η πρόσβαση σε αρχεία ή η εκτέλεση άλλων ενεργειών). Σημειώστε ότι η εφαρμογή θα ενεργεί εκ μέρους του χρήστη, οπότε ακόμη και αν η εφαρμογή ζητά άδειες διαχείρισης, αν ο χρήστης που τη συγκαταθέτει δεν έχει αυτή την άδεια, η εφαρμογή δεν θα μπορεί να εκτελεί διοικητικές ενέργειες.
Από προεπιλογή, οποιοσδήποτε χρήστης μπορεί να δώσει συγκατάθεση σε εφαρμογές, αν και αυτό μπορεί να ρυθμιστεί ώστε οι χρήστες να μπορούν να δώσουν συγκατάθεση μόνο σε εφαρμογές από επαληθευμένους εκδότες για επιλεγμένες άδειες ή ακόμη και να αφαιρέσουν την άδεια για τους χρήστες να δίνουν συγκατάθεση σε εφαρμογές.
Αν οι χρήστες δεν μπορούν να δώσουν συγκατάθεση, οι διαχειριστές όπως GA
, Application Administrator
ή Cloud Application
Administrator
μπορούν να δώσουν συγκατάθεση στις εφαρμογές που θα μπορούν να χρησιμοποιούν οι χρήστες.
Επιπλέον, αν οι χρήστες μπορούν να δώσουν συγκατάθεση μόνο σε εφαρμογές που χρησιμοποιούν χαμηλού κινδύνου άδειες, αυτές οι άδειες είναι από προεπιλογή openid, profile, email, User.Read και offline_access, αν και είναι δυνατόν να προσθέσετε περισσότερες σε αυτή τη λίστα.
Και αν μπορούν να δώσουν συγκατάθεση σε όλες τις εφαρμογές, μπορούν να δώσουν συγκατάθεση σε όλες τις εφαρμογές.
Μη αυθεντικοποιημένη: Από έναν εξωτερικό λογαριασμό δημιουργήστε μια εφαρμογή με τις χαμηλού κινδύνου άδειες User.Read
και User.ReadBasic.All
, για παράδειγμα, phishing ενός χρήστη, και θα μπορείτε να έχετε πρόσβαση σε πληροφορίες του καταλόγου.
Αυτό απαιτεί ο phished χρήστης να είναι ικανός να αποδεχτεί OAuth εφαρμογές από εξωτερικό ενοίκιο.
Αν ο phished χρήστης είναι κάποιος διαχειριστής που μπορεί να δώσει συγκατάθεση σε οποιαδήποτε εφαρμογή με οποιεσδήποτε άδειες, η εφαρμογή θα μπορούσε επίσης να ζητήσει προνομιακές άδειες.
Αυθεντικοποιημένη: Έχοντας παραβιάσει έναν κύριο με αρκετές άδειες, δημιουργήστε μια εφαρμογή μέσα στον λογαριασμό και phish κάποιον προνομιακό χρήστη που μπορεί να αποδεχτεί προνομιακές άδειες OAuth.
Σε αυτή την περίπτωση μπορείτε ήδη να έχετε πρόσβαση στις πληροφορίες του καταλόγου, οπότε η άδεια User.ReadBasic.All
δεν είναι πλέον ενδιαφέρουσα.
Πιθανώς σας ενδιαφέρουν άδειες που απαιτούν να τις χορηγήσει ένας διαχειριστής, επειδή ο απλός χρήστης δεν μπορεί να δώσει σε OAuth εφαρμογές καμία άδεια, γι' αυτό χρειάζεται να phish μόνο αυτούς τους χρήστες (περισσότερα σχετικά με ποιες ρόλοι/άδειες χορηγούν αυτό το προνόμιο αργότερα).
Σημειώστε ότι πρέπει να εκτελέσετε αυτή την εντολή από έναν χρήστη μέσα στο ενοίκιο, δεν μπορείτε να βρείτε αυτή τη ρύθμιση ενός ενοικίου από ένα εξωτερικό. Η παρακάτω cli μπορεί να σας βοηθήσει να κατανοήσετε τις άδειες των χρηστών:
Οι χρήστες μπορούν να δώσουν συγκατάθεση σε όλες τις εφαρμογές: Αν μέσα στο permissionGrantPoliciesAssigned
βρείτε: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
τότε οι χρήστες μπορούν να αποδεχτούν κάθε εφαρμογή.
Οι χρήστες μπορούν να δώσουν συγκατάθεση σε εφαρμογές από επαληθευμένους εκδότες ή την οργάνωσή σας, αλλά μόνο για τις άδειες που επιλέγετε: Αν μέσα στο permissionGrantPoliciesAssigned
βρείτε: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
τότε οι χρήστες μπορούν να αποδεχτούν κάθε εφαρμογή.
Απενεργοποίηση συγκατάθεσης χρηστών: Αν μέσα στο permissionGrantPoliciesAssigned
βρείτε μόνο: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
και ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
τότε οι χρήστες δεν μπορούν να δώσουν καμία συγκατάθεση.
Είναι δυνατόν να βρείτε τη σημασία κάθε μιας από τις σχολιασμένες πολιτικές στο:
Ελέγξτε τους χρήστες που θεωρούνται διαχειριστές εφαρμογών (μπορούν να αποδεχτούν νέες εφαρμογές):
Η επίθεση περιλαμβάνει αρκετά βήματα που στοχεύουν σε μια γενική εταιρεία. Να πώς μπορεί να εξελιχθεί:
Καταχώρηση Τομέα και Φιλοξενία Εφαρμογής: Ο επιτιθέμενος καταχωρεί έναν τομέα που μοιάζει με αξιόπιστη ιστοσελίδα, για παράδειγμα, "safedomainlogin.com". Κάτω από αυτόν τον τομέα, δημιουργείται ένα υποτομέας (π.χ., "companyname.safedomainlogin.com") για να φιλοξενήσει μια εφαρμογή σχεδιασμένη να καταγράφει κωδικούς εξουσιοδότησης και να ζητά πρόσβαση σε διακριτικά.
Καταχώρηση Εφαρμογής στο Azure AD: Ο επιτιθέμενος καταχωρεί μια Πολυ-Ενοικιαζόμενη Εφαρμογή στο Azure AD Tenant του, ονομάζοντάς την όπως η στοχευόμενη εταιρεία για να φαίνεται νόμιμη. Ρυθμίζει το Redirect URL της εφαρμογής να δείχνει στον υποτομέα που φιλοξενεί την κακόβουλη εφαρμογή.
Ρύθμιση Δικαιωμάτων: Ο επιτιθέμενος ρυθμίζει την εφαρμογή με διάφορα δικαιώματα API (π.χ., Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Αυτά τα δικαιώματα, μόλις παραχωρηθούν από τον χρήστη, επιτρέπουν στον επιτιθέμενο να εξάγει ευαίσθητες πληροφορίες εκ μέρους του χρήστη.
Διανομή Κακόβουλων Συνδέσμων: Ο επιτιθέμενος δημιουργεί έναν σύνδεσμο που περιέχει το client id της κακόβουλης εφαρμογής και τον μοιράζεται με στοχευόμενους χρήστες, εξαπατώντας τους να παραχωρήσουν συγκατάθεση.
Καταχωρήστε μια νέα εφαρμογή. Μπορεί να είναι μόνο για τον τρέχοντα κατάλογο αν χρησιμοποιείτε έναν χρήστη από τον επιτιθέμενο κατάλογο ή για οποιονδήποτε κατάλογο αν αυτή είναι μια εξωτερική επίθεση (όπως στην παρακάτω εικόνα).
Ρυθμίστε επίσης το redirect URI στη αναμενόμενη διεύθυνση URL όπου θέλετε να λάβετε τον κωδικό για να αποκτήσετε διακριτικά (http://localhost:8000/callback
από προεπιλογή).
Στη συνέχεια, δημιουργήστε ένα μυστικό εφαρμογής:
Επιλέξτε δικαιώματα API (π.χ. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Εκτελέστε την ιστοσελίδα (azure_oauth_phishing_example) που ζητά τα δικαιώματα:
Στείλτε το URL στον θύμα
Σε αυτή την περίπτωση http://localhost:8000
Οι θύματα πρέπει να αποδεχτούν την προτροπή:
Χρησιμοποιήστε το access token για να αποκτήσετε τις ζητούμενες άδειες:
365-Stealer: Δείτε https://www.alteredsecurity.com/post/introduction-to-365-stealer για να μάθετε πώς να το ρυθμίσετε.
Ανάλογα με τις ζητούμενες άδειες, μπορεί να μπορείτε να έχετε πρόσβαση σε διάφορα δεδομένα του ενοικιαστή (λίστα χρηστών, ομάδων... ή ακόμα και να τροποποιήσετε ρυθμίσεις) και πληροφορίες του χρήστη (αρχεία, σημειώσεις, emails...). Στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτές τις άδειες για να εκτελέσετε αυτές τις ενέργειες.
Δείτε τις ενότητες Εφαρμογών και Υπηρεσιών της σελίδας:
Az - EntraID PrivescΜάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)