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)
Σημειώστε ότι οι δικαιοδοσίες που ξεκινούν με com.apple
δεν είναι διαθέσιμες σε τρίτους, μόνο η Apple μπορεί να τις χορηγήσει.
com.apple.rootless.install.heritable
Η δικαιοδοσία com.apple.rootless.install.heritable
επιτρέπει να παρακαμφθεί το SIP. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.rootless.install
Η δικαιοδοσία com.apple.rootless.install
επιτρέπει να παρακαμφθεί το SIP. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.system-task-ports
(προηγουμένως ονομαζόταν task_for_pid-allow
)Αυτή η δικαιοδοσία επιτρέπει να αποκτηθεί η θύρα εργασίας για οποιαδήποτε διαδικασία, εκτός από τον πυρήνα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.get-task-allow
Αυτή η δικαιοδοσία επιτρέπει σε άλλες διαδικασίες με τη δικαιοδοσία com.apple.security.cs.debugger
να αποκτούν τη θύρα εργασίας της διαδικασίας που εκτελείται από το δυαδικό αρχείο με αυτή τη δικαιοδοσία και να εισάγουν κώδικα σε αυτήν. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.debugger
Οι εφαρμογές με τη Δικαιοδοσία Εργαλείου Αποσφαλμάτωσης μπορούν να καλέσουν task_for_pid()
για να ανακτήσουν μια έγκυρη θύρα εργασίας για μη υπογεγραμμένες και τρίτες εφαρμογές με τη δικαιοδοσία Get Task Allow
ρυθμισμένη σε true
. Ωστόσο, ακόμη και με τη δικαιοδοσία εργαλείου αποσφαλμάτωσης, ένας αποσφαλματωτής δεν μπορεί να αποκτήσει τις θύρες εργασίας διαδικασιών που δεν έχουν τη δικαιοδοσία Get Task Allow
, και οι οποίες προστατεύονται από την Προστασία Ακεραιότητας Συστήματος. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.disable-library-validation
Αυτή η δικαιοδοσία επιτρέπει να φορτώνονται πλαίσια, πρόσθετα ή βιβλιοθήκες χωρίς να είναι είτε υπογεγραμμένα από την Apple είτε υπογεγραμμένα με το ίδιο Team ID με το κύριο εκτελέσιμο, έτσι ώστε ένας επιτιθέμενος να μπορούσε να εκμεταλλευτεί κάποια αυθαίρετη φόρτωση βιβλιοθήκης για να εισάγει κώδικα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.private.security.clear-library-validation
Αυτή η δικαιοδοσία είναι πολύ παρόμοια με com.apple.security.cs.disable-library-validation
αλλά αντί να απενεργοποιεί άμεσα την επικύρωση βιβλιοθηκών, επιτρέπει στη διαδικασία να καλέσει μια κλήση συστήματος csops
για να την απενεργοποιήσει.
Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.security.cs.allow-dyld-environment-variables
Αυτή η δικαιοδοσία επιτρέπει να χρησιμοποιούνται μεταβλητές περιβάλλοντος DYLD που θα μπορούσαν να χρησιμοποιηθούν για να εισάγουν βιβλιοθήκες και κώδικα. Δείτε αυτό για περισσότερες πληροφορίες.
com.apple.private.tcc.manager
ή com.apple.rootless.storage
.TCC
Σύμφωνα με αυτό το blog και αυτό το blog, αυτές οι δικαιοδοσίες επιτρέπουν να τροποποιηθεί η βάση δεδομένων TCC.
system.install.apple-software
και system.install.apple-software.standar-user
Αυτές οι δικαιοδοσίες επιτρέπουν να εγκαθίστανται λογισμικά χωρίς να ζητούν άδειες από τον χρήστη, κάτι που μπορεί να είναι χρήσιμο για μια κλιμάκωση προνομίων.
com.apple.private.security.kext-management
Δικαιοδοσία που απαιτείται για να ζητήσει ο πυρήνας να φορτώσει μια επέκταση πυρήνα.
com.apple.private.icloud-account-access
Η δικαιοδοσία com.apple.private.icloud-account-access
επιτρέπει την επικοινωνία με την υπηρεσία XPC com.apple.iCloudHelper
η οποία θα παρέχει tokens iCloud.
iMovie και Garageband είχαν αυτή τη δικαιοδοσία.
Για περισσότερες πληροφορίες σχετικά με την εκμετάλλευση για να αποκτήσετε tokens icloud από αυτή τη δικαιοδοσία δείτε την ομιλία: #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
Αυτή η δικαιοδοσία καταγράφει τις ομάδες 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
Αυτή η άδεια επιτρέπει να δημιουργήσει μνήμη που είναι εγγράψιμη και εκτελέσιμη περνώντας τη σημαία 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)