macOS Dangerous Entitlements & TCC perms
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)
Σημειώστε ότι τα entitlements που ξεκινούν με com.apple
δεν είναι διαθέσιμα σε τρίτους, μόνο η Apple μπορεί να τα χορηγήσει.
com.apple.rootless.install.heritable
Το entitlement com.apple.rootless.install.heritable
επιτρέπει να παρακαμφθεί το SIP. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.rootless.install
Το entitlement com.apple.rootless.install
επιτρέπει να παρακαμφθεί το SIP. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.system-task-ports
(προηγουμένως ονομαζόταν task_for_pid-allow
)Αυτό το entitlement επιτρέπει να αποκτηθεί το task port για οποιαδήποτε διαδικασία, εκτός από τον πυρήνα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.get-task-allow
Αυτό το entitlement επιτρέπει σε άλλες διαδικασίες με το entitlement com.apple.security.cs.debugger
να αποκτούν το task port της διαδικασίας που εκτελείται από το δυαδικό αρχείο με αυτό το entitlement και να εισάγουν κώδικα σε αυτό. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.debugger
Οι εφαρμογές με το Entitlement Εργαλείου Αποσφαλμάτωσης μπορούν να καλέσουν task_for_pid()
για να ανακτήσουν ένα έγκυρο task port για μη υπογεγραμμένες και τρίτες εφαρμογές με το entitlement Get Task Allow
ρυθμισμένο σε true
. Ωστόσο, ακόμη και με το entitlement εργαλείου αποσφαλμάτωσης, ένας αποσφαλματωτής δεν μπορεί να αποκτήσει τα task ports διαδικασιών που δεν έχουν το entitlement Get Task Allow
, και οι οποίες προστατεύονται από την Προστασία Ακεραιότητας Συστήματος. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.disable-library-validation
Αυτό το entitlement επιτρέπει να φορτώνονται frameworks, plug-ins ή βιβλιοθήκες χωρίς να είναι είτε υπογεγραμμένα από την Apple είτε υπογεγραμμένα με το ίδιο Team ID με το κύριο εκτελέσιμο, έτσι ώστε ένας επιτιθέμενος να μπορούσε να εκμεταλλευτεί κάποια αυθαίρετη φόρτωση βιβλιοθήκης για να εισάγει κώδικα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.private.security.clear-library-validation
Αυτό το entitlement είναι πολύ παρόμοιο με το com.apple.security.cs.disable-library-validation
αλλά αντί να απενεργοποιεί άμεσα την επικύρωση βιβλιοθηκών, επιτρέπει στη διαδικασία να καλέσει μια κλήση συστήματος csops
για να την απενεργοποιήσει.
Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.allow-dyld-environment-variables
Αυτό το entitlement επιτρέπει να χρησιμοποιούνται μεταβλητές περιβάλλοντος DYLD που θα μπορούσαν να χρησιμοποιηθούν για να εισάγουν βιβλιοθήκες και κώδικα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.private.tcc.manager
ή com.apple.rootless.storage
.TCC
Σύμφωνα με αυτό το blog και αυτό το blog, αυτά τα entitlements επιτρέπουν να τροποποιηθεί η βάση δεδομένων TCC.
system.install.apple-software
και system.install.apple-software.standar-user
Αυτά τα entitlements επιτρέπουν να εγκαθίστανται λογισμικά χωρίς να ζητούν άδειες από τον χρήστη, κάτι που μπορεί να είναι χρήσιμο για μια κλιμάκωση προνομίων.
com.apple.private.security.kext-management
Entitlement που απαιτείται για να ζητήσει από τον πυρήνα να φορτώσει μια επέκταση πυρήνα.
com.apple.private.icloud-account-access
Το entitlement com.apple.private.icloud-account-access
επιτρέπει την επικοινωνία με την υπηρεσία XPC com.apple.iCloudHelper
η οποία θα παρέχει tokens iCloud.
iMovie και Garageband είχαν αυτό το entitlement.
Για περισσότερες πληροφορίες σχετικά με την εκμετάλλευση για να αποκτήσετε tokens icloud από αυτό το entitlement δείτε την ομιλία: #OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
TODO: Δεν ξέρω τι επιτρέπει να κάνετε
com.apple.private.apfs.revert-to-snapshot
TODO: Στην αυτή την αναφορά αναφέρεται ότι αυτό θα μπορούσε να χρησιμοποιηθεί για να ενημερώσει τα περιεχόμενα που προστατεύονται από SSV μετά από επανεκκίνηση. Αν ξέρετε πώς, στείλτε μια PR παρακαλώ!
com.apple.private.apfs.create-sealed-snapshot
TODO: Στην αυτή την αναφορά αναφέρεται ότι αυτό θα μπορούσε να χρησιμοποιηθεί για να ενημερώσει τα περιεχόμενα που προστατεύονται από SSV μετά από επανεκκίνηση. Αν ξέρετε πώς, στείλτε μια PR παρακαλώ!
keychain-access-groups
Αυτό το entitlement καταγράφει τις ομάδες keychain στις οποίες έχει πρόσβαση η εφαρμογή:
kTCCServiceSystemPolicyAllFiles
Δίνει Πλήρη Πρόσβαση Δίσκου δικαιώματα, μία από τις υψηλότερες άδειες TCC που μπορείτε να έχετε.
kTCCServiceAppleEvents
Επιτρέπει στην εφαρμογή να στέλνει γεγονότα σε άλλες εφαρμογές που χρησιμοποιούνται συνήθως για αυτοματοποίηση εργασιών. Ελέγχοντας άλλες εφαρμογές, μπορεί να καταχραστεί τις άδειες που έχουν παραχωρηθεί σε αυτές τις άλλες εφαρμογές.
Όπως να τις κάνει να ζητούν από τον χρήστη τον κωδικό του:
Ή να τους κάνει να εκτελούν τυχαίες ενέργειες.
kTCCServiceEndpointSecurityClient
Επιτρέπει, μεταξύ άλλων δικαιωμάτων, να γράψει τη βάση δεδομένων TCC των χρηστών.
kTCCServiceSystemPolicySysAdminFiles
Επιτρέπει να αλλάξει το NFSHomeDirectory
χαρακτηριστικό ενός χρήστη που αλλάζει τη διαδρομή του φακέλου του και επομένως επιτρέπει να παρακαμφθεί το TCC.
kTCCServiceSystemPolicyAppBundles
Επιτρέπει την τροποποίηση αρχείων μέσα σε πακέτα εφαρμογών (μέσα στο app.app), κάτι που είναι απαγορευμένο από προεπιλογή.
Είναι δυνατόν να ελεγχθεί ποιος έχει αυτή την πρόσβαση στο System Settings > Privacy & Security > App Management.
kTCCServiceAccessibility
Η διαδικασία θα είναι σε θέση να καταχραστεί τις δυνατότητες προσβασιμότητας του macOS, που σημαίνει ότι για παράδειγμα θα μπορεί να πατάει πλήκτρα. Έτσι θα μπορούσε να ζητήσει πρόσβαση για να ελέγξει μια εφαρμογή όπως το Finder και να εγκρίνει το παράθυρο διαλόγου με αυτή την άδεια.
com.apple.security.cs.allow-jit
Αυτή η άδεια επιτρέπει να δημιουργηθεί μνήμη που είναι εγ writable και εκτελέσιμη περνώντας τη σημαία MAP_JIT
στη συνάρτηση συστήματος mmap()
. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.allow-unsigned-executable-memory
Αυτή η άδεια επιτρέπει να υπερκαλύψει ή να διορθώσει C κώδικα, να χρησιμοποιήσει τη μακροχρόνια αποσυρμένη NSCreateObjectFileImageFromMemory
(η οποία είναι θεμελιωδώς ανασφαλής), ή να χρησιμοποιήσει το DVDPlayback framework. Δείτε αυτό για περισσότερες πληροφορίες.
Η συμπερίληψη αυτής της άδειας εκθέτει την εφαρμογή σας σε κοινές ευπάθειες σε γλώσσες κώδικα που δεν είναι ασφαλείς στη μνήμη. Σκεφτείτε προσεκτικά αν η εφαρμογή σας χρειάζεται αυτή την εξαίρεση.
com.apple.security.cs.disable-executable-page-protection
Αυτή η άδεια επιτρέπει να τροποποιήσει τμήματα των δικών της εκτελέσιμων αρχείων στο δίσκο για να εξαναγκάσει την έξοδο. Δείτε αυτό για περισσότερες πληροφορίες.
Η άδεια Απενεργοποίησης Προστασίας Εκτελέσιμης Μνήμης είναι μια ακραία άδεια που αφαιρεί μια θεμελιώδη προστασία ασφαλείας από την εφαρμογή σας, καθιστώντας δυνατή την αναγραφή του εκτελέσιμου κώδικα της εφαρμογής σας χωρίς ανίχνευση. Προτιμήστε στενότερες άδειες αν είναι δυνατόν.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Αυτή η άδεια επιτρέπει την τοποθέτηση ενός συστήματος αρχείων nullfs (απαγορευμένο από προεπιλογή). Εργαλείο: mount_nullfs.
kTCCServiceAll
Σύμφωνα με αυτή την ανάρτηση στο blog, αυτή η άδεια TCC συνήθως βρίσκεται με τη μορφή:
Επιτρέψτε στη διαδικασία να ζητήσει όλες τις άδειες TCC.
kTCCServicePostEvent
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)