Translated ['src/macos-hardening/macos-security-and-privilege-escalation

This commit is contained in:
Translator 2025-04-13 14:22:51 +00:00
parent 38a2a19abd
commit 5ee8cebf33

View File

@ -8,13 +8,13 @@
Οι χρήστες συναντούν το TCC όταν οι εφαρμογές ζητούν πρόσβαση σε προστατευμένες δυνατότητες. Αυτό είναι ορατό μέσω μιας προτροπής που επιτρέπει στους χρήστες να **εγκρίνουν ή να απορρίψουν την πρόσβαση**. Επιπλέον, το TCC διευκολύνει άμεσες ενέργειες του χρήστη, όπως **σύρσιμο και απόθεση αρχείων σε μια εφαρμογή**, για να παραχωρήσει πρόσβαση σε συγκεκριμένα αρχεία, διασφαλίζοντας ότι οι εφαρμογές έχουν πρόσβαση μόνο σε ό,τι έχει ρητά επιτραπεί. Οι χρήστες συναντούν το TCC όταν οι εφαρμογές ζητούν πρόσβαση σε προστατευμένες δυνατότητες. Αυτό είναι ορατό μέσω μιας προτροπής που επιτρέπει στους χρήστες να **εγκρίνουν ή να απορρίψουν την πρόσβαση**. Επιπλέον, το TCC διευκολύνει άμεσες ενέργειες του χρήστη, όπως **σύρσιμο και απόθεση αρχείων σε μια εφαρμογή**, για να παραχωρήσει πρόσβαση σε συγκεκριμένα αρχεία, διασφαλίζοντας ότι οι εφαρμογές έχουν πρόσβαση μόνο σε ό,τι έχει ρητά επιτραπεί.
![Ένα παράδειγμα προτροπής TCC](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855) ![An example of a TCC prompt](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
**TCC** διαχειρίζεται από τον **daemon** που βρίσκεται στο `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` και ρυθμίζεται στο `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (καταχωρώντας την υπηρεσία mach `com.apple.tccd.system`). **TCC** διαχειρίζεται από το **daemon** που βρίσκεται στο `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` και ρυθμίζεται στο `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (καταχωρώντας την υπηρεσία mach `com.apple.tccd.system`).
Υπάρχει μια **tccd σε λειτουργία χρήστη** που εκτελείται ανά χρήστη που έχει συνδεθεί, καθορισμένη στο `/System/Library/LaunchAgents/com.apple.tccd.plist`, καταχωρώντας τις υπηρεσίες mach `com.apple.tccd` και `com.apple.usernotifications.delegate.com.apple.tccd`. Υπάρχει ένα **tccd σε λειτουργία χρήστη** που εκτελείται ανά χρήστη που έχει συνδεθεί, ορισμένο στο `/System/Library/LaunchAgents/com.apple.tccd.plist`, καταχωρώντας τις υπηρεσίες mach `com.apple.tccd` και `com.apple.usernotifications.delegate.com.apple.tccd`.
Εδώ μπορείτε να δείτε την tccd να εκτελείται ως σύστημα και ως χρήστης: Εδώ μπορείτε να δείτε το tccd να εκτελείται ως σύστημα και ως χρήστης:
```bash ```bash
ps -ef | grep tcc ps -ef | grep tcc
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system 0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
@ -27,22 +27,22 @@ ps -ef | grep tcc
Οι επιτρεπόμενες/απαγορευμένες ενέργειες αποθηκεύονται σε ορισμένες βάσεις δεδομένων TCC: Οι επιτρεπόμενες/απαγορευμένες ενέργειες αποθηκεύονται σε ορισμένες βάσεις δεδομένων TCC:
- Η βάση δεδομένων σε επίπεδο συστήματος βρίσκεται στο **`/Library/Application Support/com.apple.TCC/TCC.db`**. - Η βάση δεδομένων σε επίπεδο συστήματος βρίσκεται στο **`/Library/Application Support/com.apple.TCC/TCC.db`**.
- Αυτή η βάση δεδομένων είναι **SIP προστατευμένη**, επομένως μόνο μια παράκαμψη SIP μπορεί να γράψει σε αυτήν. - Αυτή η βάση δεδομένων είναι **SIP προστατευμένη**, οπότε μόνο μια παράκαμψη SIP μπορεί να γράψει σε αυτήν.
- Η βάση δεδομένων TCC του χρήστη **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** για προτιμήσεις ανά χρήστη. - Η βάση δεδομένων TCC του χρήστη **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** για προτιμήσεις ανά χρήστη.
- Αυτή η βάση δεδομένων είναι προστατευμένη, επομένως μόνο διαδικασίες με υψηλά δικαιώματα TCC όπως η Πρόσβαση σε Όλο το Δίσκο μπορούν να γράψουν σε αυτήν (αλλά δεν προστατεύεται από SIP). - Αυτή η βάση δεδομένων είναι προστατευμένη, οπότε μόνο διαδικασίες με υψηλά δικαιώματα TCC όπως η Πρόσβαση σε Όλο το Δίσκο μπορούν να γράψουν σε αυτήν (αλλά δεν είναι προστατευμένη από SIP).
> [!WARNING] > [!WARNING]
> Οι προηγούμενες βάσεις δεδομένων είναι επίσης **TCC προστατευμένες για πρόσβαση ανάγνωσης**. Έτσι, **δεν θα μπορείτε να διαβάσετε** τη βάση δεδομένων TCC του κανονικού σας χρήστη εκτός αν είναι από μια διαδικασία με δικαιώματα TCC. > Οι προηγούμενες βάσεις δεδομένων είναι επίσης **TCC προστατευμένες για πρόσβαση ανάγνωσης**. Έτσι, **δεν θα μπορείτε να διαβάσετε** τη βάση δεδομένων TCC του κανονικού σας χρήστη εκτός αν είναι από μια διαδικασία με δικαιώματα TCC.
> >
> Ωστόσο, θυμηθείτε ότι μια διαδικασία με αυτά τα υψηλά δικαιώματα (όπως **FDA** ή **`kTCCServiceEndpointSecurityClient`**) θα μπορεί να γράψει στη βάση δεδομένων TCC των χρηστών. > Ωστόσο, θυμηθείτε ότι μια διαδικασία με αυτά τα υψηλά δικαιώματα (όπως **FDA** ή **`kTCCServiceEndpointSecurityClient`**) θα μπορεί να γράψει στη βάση δεδομένων TCC των χρηστών.
- Υπάρχει μια **τρίτη** βάση δεδομένων TCC στο **`/var/db/locationd/clients.plist`** για να υποδείξει τους πελάτες που επιτρέπεται να **πρόσβαση στις υπηρεσίες τοποθεσίας**. - Υπάρχει μια **τρίτη** βάση δεδομένων TCC στο **`/var/db/locationd/clients.plist`** για να υποδείξει τους πελάτες που επιτρέπεται να **προσεγγίζουν τις υπηρεσίες τοποθεσίας**.
- Το SIP προστατευμένο αρχείο **`/Users/carlospolop/Downloads/REG.db`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει την **τοποθεσία** όλων των **έγκυρων βάσεων δεδομένων TCC**. - Το SIP προστατευμένο αρχείο **`/Users/carlospolop/Downloads/REG.db`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει την **τοποθεσία** όλων των **έγκυρων βάσεων δεδομένων TCC**.
- Το SIP προστατευμένο αρχείο **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει περισσότερες άδειες που έχουν παραχωρηθεί από το TCC. - Το SIP προστατευμένο αρχείο **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει περισσότερες άδειες που έχουν παραχωρηθεί από το TCC.
- Το SIP προστατευμένο αρχείο **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (αλλά αναγνώσιμο από οποιονδήποτε) είναι μια λίστα επιτρεπόμενων εφαρμογών που απαιτούν εξαίρεση TCC. - Το SIP προστατευμένο αρχείο **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (αλλά αναγνώσιμο από οποιονδήποτε) είναι μια λίστα επιτρεπόμενων εφαρμογών που απαιτούν εξαίρεση TCC.
> [!TIP] > [!TIP]
> Η βάση δεδομένων TCC στο **iOS** βρίσκεται στο **`/private/var/mobile/Library/TCC/TCC.db`**. > Η βάση δεδομένων TCC στο **iOS** είναι στο **`/private/var/mobile/Library/TCC/TCC.db`**.
> [!NOTE] > [!NOTE]
> Το **UI του κέντρου ειδοποιήσεων** μπορεί να κάνει **αλλαγές στη βάση δεδομένων TCC του συστήματος**: > Το **UI του κέντρου ειδοποιήσεων** μπορεί να κάνει **αλλαγές στη βάση δεδομένων TCC του συστήματος**:
@ -54,7 +54,7 @@ ps -ef | grep tcc
> com.apple.rootless.storage.TCC > com.apple.rootless.storage.TCC
> ``` > ```
> >
> Ωστόσο, οι χρήστες μπορούν να **διαγράψουν ή να ερωτήσουν κανόνες** με το **`tccutil`** εργαλείο γραμμής εντολών. > Ωστόσο, οι χρήστες μπορούν να **διαγράψουν ή να ερωτήσουν κανόνες** με το εργαλείο γραμμής εντολών **`tccutil`**.
#### Ερώτηση στις βάσεις δεδομένων #### Ερώτηση στις βάσεις δεδομένων
@ -105,8 +105,8 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
> Ελέγχοντας και τις δύο βάσεις δεδομένων μπορείτε να ελέγξετε τις άδειες που έχει επιτρέψει μια εφαρμογή, έχει απαγορεύσει ή δεν έχει (θα ζητήσει την άδεια). > Ελέγχοντας και τις δύο βάσεις δεδομένων μπορείτε να ελέγξετε τις άδειες που έχει επιτρέψει μια εφαρμογή, έχει απαγορεύσει ή δεν έχει (θα ζητήσει την άδεια).
- Η **`service`** είναι η συμβολοσειρά αναπαράστασης της άδειας TCC - Η **`service`** είναι η συμβολοσειρά αναπαράστασης της άδειας TCC
- Ο **`client`** είναι το **bundle ID** ή η **διαδρομή προς το δυαδικό** με τις άδειες - Η **`client`** είναι το **bundle ID** ή η **διαδρομή προς το δυαδικό** με τις άδειες
- Ο **`client_type`** υποδεικνύει αν είναι Αναγνωριστικό Bundle(0) ή απόλυτη διαδρομή(1) - Η **`client_type`** υποδεικνύει αν είναι Αναγνωριστικό Πακέτου(0) ή απόλυτη διαδρομή(1)
<details> <details>
@ -153,7 +153,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
- Η **`auth_value`** μπορεί να έχει διαφορετικές τιμές: denied(0), unknown(1), allowed(2) ή limited(3). - Η **`auth_value`** μπορεί να έχει διαφορετικές τιμές: denied(0), unknown(1), allowed(2) ή limited(3).
- Η **`auth_reason`** μπορεί να πάρει τις εξής τιμές: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) - Η **`auth_reason`** μπορεί να πάρει τις εξής τιμές: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
- Το πεδίο **csreq** είναι εκεί για να υποδείξει πώς να επαληθεύσετε το δυαδικό αρχείο που θα εκτελέσετε και να παραχωρήσετε τα δικαιώματα TCC: - Το πεδίο **csreq** είναι εκεί για να υποδείξει πώς να επαληθεύσετε το δυαδικό αρχείο προς εκτέλεση και να παραχωρήσετε τα δικαιώματα TCC:
```bash ```bash
# Query to get cserq in printable hex # Query to get cserq in printable hex
select service, client, hex(csreq) from access where auth_value=2; select service, client, hex(csreq) from access where auth_value=2;
@ -186,7 +186,7 @@ tccutil reset All
``` ```
### TCC Έλεγχοι Υπογραφής ### TCC Έλεγχοι Υπογραφής
Η βάση δεδομένων TCC **αποθηκεύει** το **Bundle ID** της εφαρμογής, αλλά επίσης **αποθηκεύει** **πληροφορίες** σχετικά με την **υπογραφή** για να **διασφαλίσει** ότι η εφαρμογή που ζητά να χρησιμοποιήσει μια άδεια είναι η σωστή. Η TCC **βάση δεδομένων** αποθηκεύει το **Bundle ID** της εφαρμογής, αλλά επίσης **αποθηκεύει** **πληροφορίες** σχετικά με την **υπογραφή** για να **διασφαλίσει** ότι η εφαρμογή που ζητά να χρησιμοποιήσει μια άδεια είναι η σωστή.
```bash ```bash
# From sqlite # From sqlite
sqlite> select service, client, hex(csreq) from access where auth_value=2; sqlite> select service, client, hex(csreq) from access where auth_value=2;
@ -206,9 +206,9 @@ csreq -t -r /tmp/telegram_csreq.bin
Οι εφαρμογές **δεν χρειάζεται μόνο** να **ζητούν** και να έχουν **παραχωρημένη πρόσβαση** σε ορισμένους πόρους, αλλά πρέπει επίσης να **έχουν τα σχετικά δικαιώματα**.\ Οι εφαρμογές **δεν χρειάζεται μόνο** να **ζητούν** και να έχουν **παραχωρημένη πρόσβαση** σε ορισμένους πόρους, αλλά πρέπει επίσης να **έχουν τα σχετικά δικαιώματα**.\
Για παράδειγμα, το **Telegram** έχει το δικαίωμα `com.apple.security.device.camera` για να ζητήσει **πρόσβαση στην κάμερα**. Μια **εφαρμογή** που **δεν έχει** αυτό το **δικαίωμα δεν θα μπορεί** να έχει πρόσβαση στην κάμερα (και ο χρήστης δεν θα ρωτηθεί καν για τις άδειες). Για παράδειγμα, το **Telegram** έχει το δικαίωμα `com.apple.security.device.camera` για να ζητήσει **πρόσβαση στην κάμερα**. Μια **εφαρμογή** που **δεν έχει** αυτό το **δικαίωμα δεν θα μπορεί** να έχει πρόσβαση στην κάμερα (και ο χρήστης δεν θα ρωτηθεί καν για τις άδειες).
Ωστόσο, για να **έχουν πρόσβαση** οι εφαρμογές σε **ορισμένους φακέλους χρηστών**, όπως `~/Desktop`, `~/Downloads` και `~/Documents`, **δεν χρειάζεται** να έχουν κανένα συγκεκριμένο **δικαίωμα.** Το σύστημα θα διαχειριστεί την πρόσβαση διαφανώς και θα **ζητήσει από τον χρήστη** όπως απαιτείται. Ωστόσο, για να **έχουν πρόσβαση** οι εφαρμογές σε **ορισμένους φακέλους χρηστών**, όπως `~/Desktop`, `~/Downloads` και `~/Documents`, **δεν χρειάζεται** να έχουν κανένα συγκεκριμένο **δικαίωμα.** Το σύστημα θα διαχειριστεί διαφανώς την πρόσβαση και θα **ζητήσει από τον χρήστη** όπως απαιτείται.
Οι εφαρμογές της Apple **δεν θα δημιουργήσουν προτροπές**. Περιέχουν **προπαραχωρημένα δικαιώματα** στη λίστα **δικαιωμάτων** τους, που σημαίνει ότι **ποτέ δεν θα δημιουργήσουν αναδυόμενο παράθυρο**, **ούτε** θα εμφανιστούν σε καμία από τις **βάσεις δεδομένων TCC.** Για παράδειγμα: Οι εφαρμογές της Apple **δεν θα δημιουργήσουν προτροπές**. Περιέχουν **προπαραχωρημένα δικαιώματα** στη λίστα **δικαιωμάτων** τους, που σημαίνει ότι **δεν θα δημιουργήσουν ποτέ αναδυόμενο παράθυρο**, **ούτε** θα εμφανιστούν σε καμία από τις **βάσεις δεδομένων TCC.** Για παράδειγμα:
```bash ```bash
codesign -dv --entitlements :- /System/Applications/Calendar.app codesign -dv --entitlements :- /System/Applications/Calendar.app
[...] [...]
@ -234,7 +234,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
### Πρόθεση Χρήστη / com.apple.macl ### Πρόθεση Χρήστη / com.apple.macl
Όπως αναφέρθηκε προηγουμένως, είναι δυνατό να **παραχωρήσετε πρόσβαση σε μια εφαρμογή σε ένα αρχείο σύροντας και αποθέτοντας το σε αυτήν**. Αυτή η πρόσβαση δεν θα καθορίζεται σε καμία βάση δεδομένων TCC αλλά ως **εκτεταμένο** **γνωριστικό του αρχείου**. Αυτό το γνωριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής: Όπως αναφέρθηκε προηγουμένως, είναι δυνατό να **παραχωρήσετε πρόσβαση σε μια εφαρμογή σε ένα αρχείο σύροντας και αποθέτοντας το σε αυτήν**. Αυτή η πρόσβαση δεν θα καθοριστεί σε καμία βάση δεδομένων TCC αλλά ως **εκτεταμένο** **χαρακτηριστικό του αρχείου**. Αυτό το χαρακτηριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής:
```bash ```bash
xattr Desktop/private.txt xattr Desktop/private.txt
com.apple.macl com.apple.macl
@ -252,9 +252,9 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
> [!NOTE] > [!NOTE]
> Είναι περίεργο ότι το **`com.apple.macl`** χαρακτηριστικό διαχειρίζεται από το **Sandbox**, όχι από το tccd. > Είναι περίεργο ότι το **`com.apple.macl`** χαρακτηριστικό διαχειρίζεται από το **Sandbox**, όχι από το tccd.
> >
> Επίσης, σημειώστε ότι αν μεταφέρετε ένα αρχείο που επιτρέπει το UUID μιας εφαρμογής στον υπολογιστή σας σε διαφορετικό υπολογιστή, επειδή η ίδια εφαρμογή θα έχει διαφορετικά UIDs, δεν θα παραχωρήσει πρόσβαση σε αυτήν την εφαρμογή. > Επίσης, σημειώστε ότι αν μεταφέρετε ένα αρχείο που επιτρέπει το UUID μιας εφαρμογής στον υπολογιστή σας σε διαφορετικό υπολογιστή, επειδή η ίδια εφαρμογή θα έχει διαφορετικά UIDs, δεν θα παραχωρήσει πρόσβαση σε αυτή την εφαρμογή.
Το εκτεταμένο χαρακτηριστικό `com.apple.macl` **δεν μπορεί να διαγραφεί** όπως άλλα εκτεταμένα χαρακτηριστικά επειδή είναι **προστατευμένο από το SIP**. Ωστόσο, όπως [**εξηγείται σε αυτήν την ανάρτηση**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), είναι δυνατόν να το απενεργοποιήσετε **συμπιέζοντας** το αρχείο, **διαγράφοντας** το και **αποσυμπιέζοντας** το. Το εκτεταμένο χαρακτηριστικό `com.apple.macl` **δεν μπορεί να διαγραφεί** όπως άλλα εκτεταμένα χαρακτηριστικά επειδή είναι **προστατευμένο από το SIP**. Ωστόσο, όπως [**εξηγείται σε αυτή την ανάρτηση**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), είναι δυνατόν να το απενεργοποιήσετε **συμπιέζοντας** το αρχείο, **διαγράφοντας** το και **αποσυμπιέζοντας** το.
## TCC Privesc & Bypasses ## TCC Privesc & Bypasses
@ -374,7 +374,7 @@ EOD
<details> <details>
<summary>Get a shell inside Automator</summary> <summary>Αποκτήστε ένα shell μέσα στον Automator</summary>
```applescript ```applescript
osascript<<EOD osascript<<EOD
set theScript to "touch /tmp/something" set theScript to "touch /tmp/something"
@ -492,40 +492,40 @@ keystroke "v" using {command down}
end tell end tell
EOF EOF
``` ```
### `kTCCServiceAccessibility` προς FDA\* ### `kTCCServiceAccessibility` για FDA\*
Δείτε αυτή τη σελίδα για μερικά [**payloads για κατάχρηση των δικαιωμάτων Accessibility**](macos-tcc-payloads.md#accessibility) για privesc προς FDA\* ή για να τρέξετε έναν keylogger για παράδειγμα. Δείτε αυτή τη σελίδα για μερικά [**payloads για κατάχρηση των δικαιωμάτων Accessibility**](macos-tcc-payloads.md#accessibility) για privesc σε FDA\* ή για να τρέξετε ένα keylogger για παράδειγμα.
### **Endpoint Security Client προς FDA** ### **Endpoint Security Client για FDA**
Αν έχετε **`kTCCServiceEndpointSecurityClient`**, έχετε FDA. Τέλος. Αν έχετε **`kTCCServiceEndpointSecurityClient`**, έχετε FDA. Τέλος.
### Αρχείο SysAdmin Πολιτικής Συστήματος προς FDA ### Αρχείο SysAdmin Πολιτικής Συστήματος για FDA
**`kTCCServiceSystemPolicySysAdminFiles`** επιτρέπει να **αλλάξετε** την **`NFSHomeDirectory`** ιδιότητα ενός χρήστη που αλλάζει τον φάκελο του και επομένως επιτρέπει να **παρακάμψει το TCC**. **`kTCCServiceSystemPolicySysAdminFiles`** επιτρέπει να **αλλάξετε** την **`NFSHomeDirectory`** ιδιότητα ενός χρήστη που αλλάζει τον φάκελο του και επομένως επιτρέπει να **παρακάμψει το TCC**.
### Βάση Δεδομένων TCC Χρήστη προς FDA ### Βάση Δεδομένων TCC Χρήστη για FDA
Αποκτώντας **δικαιώματα εγγραφής** πάνω στη **βάση δεδομένων TCC** του χρήστη δεν μπορείτε να παραχωρήσετε στον εαυτό σας **`FDA`** δικαιώματα, μόνο αυτός που βρίσκεται στη βάση δεδομένων του συστήματος μπορεί να το παραχωρήσει. Αποκτώντας **δικαιώματα εγγραφής** πάνω στη **βάση δεδομένων TCC** του χρήστη δεν μπορείτε να παραχωρήσετε στον εαυτό σας **`FDA`** δικαιώματα, μόνο αυτός που βρίσκεται στη βάση δεδομένων του συστήματος μπορεί να το παραχωρήσει.
Αλλά μπορείτε να **δώσετε** στον εαυτό σας **`Automation rights to Finder`**, και να καταχραστείτε την προηγούμενη τεχνική για να κλιμακωθείτε σε FDA\*. Αλλά μπορείτε να **δώσετε** στον εαυτό σας **`Automation rights to Finder`**, και να καταχραστείτε την προηγούμενη τεχνική για να κλιμακωθείτε σε FDA\*.
### **FDA προς TCC δικαιώματα** ### **FDA σε TCC δικαιώματα**
**Full Disk Access** είναι το όνομα TCC **`kTCCServiceSystemPolicyAllFiles`** **Full Disk Access** είναι το όνομα TCC **`kTCCServiceSystemPolicyAllFiles`**
Δεν νομίζω ότι αυτό είναι πραγματική privesc, αλλά για κάθε περίπτωση που μπορεί να το βρείτε χρήσιμο: Αν ελέγχετε ένα πρόγραμμα με FDA μπορείτε να **τροποποιήσετε τη βάση δεδομένων TCC των χρηστών και να δώσετε στον εαυτό σας οποιαδήποτε πρόσβαση**. Αυτό μπορεί να είναι χρήσιμο ως τεχνική επιμονής σε περίπτωση που μπορεί να χάσετε τα δικαιώματα FDA. Δεν νομίζω ότι είναι πραγματική privesc, αλλά για κάθε περίπτωση που μπορεί να το βρείτε χρήσιμο: Αν ελέγχετε ένα πρόγραμμα με FDA μπορείτε να **τροποποιήσετε τη βάση δεδομένων TCC των χρηστών και να δώσετε στον εαυτό σας οποιαδήποτε πρόσβαση**. Αυτό μπορεί να είναι χρήσιμο ως τεχνική επιμονής σε περίπτωση που μπορεί να χάσετε τα δικαιώματα FDA.
### **SIP Bypass προς TCC Bypass** ### **SIP Bypass για TCC Bypass**
Η βάση δεδομένων **TCC** του συστήματος προστατεύεται από **SIP**, γι' αυτό μόνο οι διαδικασίες με τις **υποδεικνυόμενες επιδοτήσεις θα μπορούν να την τροποποιήσουν**. Επομένως, αν ένας επιτιθέμενος βρει μια **SIP bypass** πάνω σε ένα **αρχείο** (να μπορεί να τροποποιήσει ένα αρχείο περιορισμένο από SIP), θα μπορεί να: Η βάση δεδομένων **TCC** του συστήματος προστατεύεται από **SIP**, γι' αυτό μόνο οι διαδικασίες με τα **υποδεικνυόμενα δικαιώματα θα μπορούν να την τροποποιήσουν**. Επομένως, αν ένας επιτιθέμενος βρει ένα **SIP bypass** σε ένα **αρχείο** (να μπορεί να τροποποιήσει ένα αρχείο περιορισμένο από SIP), θα μπορεί να:
- **Αφαιρέσει την προστασία** μιας βάσης δεδομένων TCC και να δώσει στον εαυτό του όλα τα δικαιώματα TCC. Θα μπορούσε να καταχραστεί οποιοδήποτε από αυτά τα αρχεία για παράδειγμα: - **Αφαιρέσει την προστασία** μιας βάσης δεδομένων TCC και να δώσει στον εαυτό του όλα τα δικαιώματα TCC. Θα μπορούσε να καταχραστεί οποιοδήποτε από αυτά τα αρχεία για παράδειγμα:
- Η βάση δεδομένων TCC συστημάτων - Η βάση δεδομένων TCC συστημάτων
- REG.db - REG.db
- MDMOverrides.plist - MDMOverrides.plist
Ωστόσο, υπάρχει μια άλλη επιλογή για να καταχραστεί αυτή η **SIP bypass για να παρακάμψει το TCC**, το αρχείο `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` είναι μια λίστα επιτρεπόμενων εφαρμογών που απαιτούν μια εξαίρεση TCC. Επομένως, αν ένας επιτιθέμενος μπορεί να **αφαιρέσει την προστασία SIP** από αυτό το αρχείο και να προσθέσει την **δική του εφαρμογή**, η εφαρμογή θα μπορεί να παρακάμψει το TCC.\ Ωστόσο, υπάρχει μια άλλη επιλογή για να καταχραστεί αυτό το **SIP bypass για να παρακάμψει το TCC**, το αρχείο `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` είναι μια λίστα επιτρεπόμενων εφαρμογών που απαιτούν μια εξαίρεση TCC. Επομένως, αν ένας επιτιθέμενος μπορεί να **αφαιρέσει την προστασία SIP** από αυτό το αρχείο και να προσθέσει την **δική του εφαρμογή**, η εφαρμογή θα μπορεί να παρακάμψει το TCC.\
Για παράδειγμα για να προσθέσετε το terminal: Για παράδειγμα για να προσθέσετε το terminal:
```bash ```bash
# Get needed info # Get needed info
@ -560,7 +560,7 @@ AllowApplicationsList.plist:
macos-tcc-bypasses/ macos-tcc-bypasses/
{{#endref}} {{#endref}}
## Αναφορές ## References
- [**https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive) - [**https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)
- [**https://gist.githubusercontent.com/brunerd/8bbf9ba66b2a7787e1a6658816f3ad3b/raw/34cabe2751fb487dc7c3de544d1eb4be04701ac5/maclTrack.command**](https://gist.githubusercontent.com/brunerd/8bbf9ba66b2a7787e1a6658816f3ad3b/raw/34cabe2751fb487dc7c3de544d1eb4be04701ac5/maclTrack.command) - [**https://gist.githubusercontent.com/brunerd/8bbf9ba66b2a7787e1a6658816f3ad3b/raw/34cabe2751fb487dc7c3de544d1eb4be04701ac5/maclTrack.command**](https://gist.githubusercontent.com/brunerd/8bbf9ba66b2a7787e1a6658816f3ad3b/raw/34cabe2751fb487dc7c3de544d1eb4be04701ac5/maclTrack.command)