mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/macos-hardening/macos-security-and-privilege-escalation
This commit is contained in:
parent
38a2a19abd
commit
5ee8cebf33
@ -8,13 +8,13 @@
|
|||||||
|
|
||||||
Οι χρήστες συναντούν το TCC όταν οι εφαρμογές ζητούν πρόσβαση σε προστατευμένες δυνατότητες. Αυτό είναι ορατό μέσω μιας προτροπής που επιτρέπει στους χρήστες να **εγκρίνουν ή να απορρίψουν την πρόσβαση**. Επιπλέον, το TCC διευκολύνει άμεσες ενέργειες του χρήστη, όπως **σύρσιμο και απόθεση αρχείων σε μια εφαρμογή**, για να παραχωρήσει πρόσβαση σε συγκεκριμένα αρχεία, διασφαλίζοντας ότι οι εφαρμογές έχουν πρόσβαση μόνο σε ό,τι έχει ρητά επιτραπεί.
|
Οι χρήστες συναντούν το TCC όταν οι εφαρμογές ζητούν πρόσβαση σε προστατευμένες δυνατότητες. Αυτό είναι ορατό μέσω μιας προτροπής που επιτρέπει στους χρήστες να **εγκρίνουν ή να απορρίψουν την πρόσβαση**. Επιπλέον, το TCC διευκολύνει άμεσες ενέργειες του χρήστη, όπως **σύρσιμο και απόθεση αρχείων σε μια εφαρμογή**, για να παραχωρήσει πρόσβαση σε συγκεκριμένα αρχεία, διασφαλίζοντας ότι οι εφαρμογές έχουν πρόσβαση μόνο σε ό,τι έχει ρητά επιτραπεί.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user