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
3db39713bc
commit
38a2a19abd
@ -288,7 +288,6 @@
|
|||||||
- [PsExec/Winexec/ScExec](windows-hardening/lateral-movement/psexec-and-winexec.md)
|
- [PsExec/Winexec/ScExec](windows-hardening/lateral-movement/psexec-and-winexec.md)
|
||||||
- [RDPexec](windows-hardening/lateral-movement/rdpexec.md)
|
- [RDPexec](windows-hardening/lateral-movement/rdpexec.md)
|
||||||
- [SCMexec](windows-hardening/lateral-movement/scmexec.md)
|
- [SCMexec](windows-hardening/lateral-movement/scmexec.md)
|
||||||
- [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md)
|
|
||||||
- [WinRM](windows-hardening/lateral-movement/winrm.md)
|
- [WinRM](windows-hardening/lateral-movement/winrm.md)
|
||||||
- [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
|
- [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
|
||||||
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
|
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Οι χρήστες συναντούν το 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`).
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ ps -ef | grep 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.
|
||||||
@ -42,10 +42,10 @@ ps -ef | grep 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]
|
||||||
> Η **διεπαφή του κέντρου ειδοποιήσεων** μπορεί να κάνει **αλλαγές στη βάση δεδομένων TCC του συστήματος**:
|
> Το **UI του κέντρου ειδοποιήσεων** μπορεί να κάνει **αλλαγές στη βάση δεδομένων TCC του συστήματος**:
|
||||||
>
|
>
|
||||||
> ```bash
|
> ```bash
|
||||||
> codesign -dv --entitlements :- /System/Library/PrivateFrameworks/TCC.framework/> Support/tccd
|
> codesign -dv --entitlements :- /System/Library/PrivateFrameworks/TCC.framework/> Support/tccd
|
||||||
@ -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`** υποδεικνύει αν είναι Αναγνωριστικό Πακέτου(0) ή απόλυτη διαδρομή(1)
|
- Ο **`client_type`** υποδεικνύει αν είναι Αναγνωριστικό Bundle(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;
|
||||||
@ -169,12 +169,12 @@ echo "$REQ_STR" | csreq -r- -b /tmp/csreq.bin
|
|||||||
REQ_HEX=$(xxd -p /tmp/csreq.bin | tr -d '\n')
|
REQ_HEX=$(xxd -p /tmp/csreq.bin | tr -d '\n')
|
||||||
echo "X'$REQ_HEX'"
|
echo "X'$REQ_HEX'"
|
||||||
```
|
```
|
||||||
- Για περισσότερες πληροφορίες σχετικά με τα **άλλα πεδία** του πίνακα [**ελέγξτε αυτή την ανάρτηση στο blog**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive).
|
- Για περισσότερες πληροφορίες σχετικά με τα **άλλα πεδία** του πίνακα [**ελέγξτε αυτήν την ανάρτηση στο blog**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive).
|
||||||
|
|
||||||
Μπορείτε επίσης να ελέγξετε **τις ήδη παραχωρηθείσες άδειες** σε εφαρμογές στο `System Preferences --> Security & Privacy --> Privacy --> Files and Folders`.
|
Μπορείτε επίσης να ελέγξετε **τις ήδη παραχωρηθείσες άδειες** σε εφαρμογές στο `System Preferences --> Security & Privacy --> Privacy --> Files and Folders`.
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> Οι χρήστες _μπορούν_ **να διαγράψουν ή να ερωτήσουν κανόνες** χρησιμοποιώντας **`tccutil`** .
|
> Οι χρήστες _μπορούν_ να **διαγράψουν ή να ερωτήσουν κανόνες** χρησιμοποιώντας **`tccutil`**.
|
||||||
|
|
||||||
#### Επαναφορά αδειών TCC
|
#### Επαναφορά αδειών TCC
|
||||||
```bash
|
```bash
|
||||||
@ -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;
|
||||||
@ -203,12 +203,12 @@ csreq -t -r /tmp/telegram_csreq.bin
|
|||||||
|
|
||||||
### Δικαιώματα & Άδειες TCC
|
### Δικαιώματα & Άδειες TCC
|
||||||
|
|
||||||
Οι εφαρμογές **δεν χρειάζεται μόνο** να **ζητούν** και να έχουν **παραχωρηθεί πρόσβαση** σε ορισμένους πόρους, αλλά πρέπει επίσης να **έχουν τα σχετικά δικαιώματα**.\
|
Οι εφαρμογές **δεν χρειάζεται μόνο** να **ζητούν** και να έχουν **παραχωρημένη πρόσβαση** σε ορισμένους πόρους, αλλά πρέπει επίσης να **έχουν τα σχετικά δικαιώματα**.\
|
||||||
Για παράδειγμα, **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
|
||||||
[...]
|
[...]
|
||||||
@ -222,7 +222,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
|||||||
Αυτό θα αποτρέψει το Calendar να ζητήσει από τον χρήστη να έχει πρόσβαση σε υπενθυμίσεις, ημερολόγιο και το βιβλίο διευθύνσεων.
|
Αυτό θα αποτρέψει το Calendar να ζητήσει από τον χρήστη να έχει πρόσβαση σε υπενθυμίσεις, ημερολόγιο και το βιβλίο διευθύνσεων.
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> Εκτός από κάποια επίσημη τεκμηρίωση σχετικά με τα δικαιώματα, είναι επίσης δυνατή η εύρεση ανεπίσημων **ενδιαφερόντων πληροφοριών σχετικά με τα δικαιώματα σε** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)
|
> Εκτός από κάποια επίσημη τεκμηρίωση σχετικά με τα δικαιώματα, είναι επίσης δυνατό να βρείτε ανεπίσημες **ενδιαφέρουσες πληροφορίες σχετικά με τα δικαιώματα σε** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)
|
||||||
|
|
||||||
Ορισμένες άδειες TCC είναι: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Δεν υπάρχει δημόσια λίστα που να ορίζει όλες αυτές, αλλά μπορείτε να ελέγξετε αυτή τη [**λίστα με τις γνωστές**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service).
|
Ορισμένες άδειες TCC είναι: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Δεν υπάρχει δημόσια λίστα που να ορίζει όλες αυτές, αλλά μπορείτε να ελέγξετε αυτή τη [**λίστα με τις γνωστές**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service).
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
|||||||
|
|
||||||
### Πρόθεση Χρήστη / com.apple.macl
|
### Πρόθεση Χρήστη / com.apple.macl
|
||||||
|
|
||||||
Όπως αναφέρθηκε προηγουμένως, είναι δυνατόν να **παραχωρήσετε πρόσβαση σε μια εφαρμογή σε ένα αρχείο με τη μέθοδο drag\&drop**. Αυτή η πρόσβαση δεν θα καθορίζεται σε καμία βάση δεδομένων TCC αλλά ως **εκτεταμένο** **χαρακτηριστικό του αρχείου**. Αυτό το χαρακτηριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής:
|
Όπως αναφέρθηκε προηγουμένως, είναι δυνατό να **παραχωρήσετε πρόσβαση σε μια εφαρμογή σε ένα αρχείο σύροντας και αποθέτοντας το σε αυτήν**. Αυτή η πρόσβαση δεν θα καθορίζεται σε καμία βάση δεδομένων TCC αλλά ως **εκτεταμένο** **γνωριστικό του αρχείου**. Αυτό το γνωριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής:
|
||||||
```bash
|
```bash
|
||||||
xattr Desktop/private.txt
|
xattr Desktop/private.txt
|
||||||
com.apple.macl
|
com.apple.macl
|
||||||
@ -361,7 +361,7 @@ EOD
|
|||||||
Μπορείτε να εκμεταλλευτείτε αυτό για να **γράψετε τη δική σας βάση δεδομένων TCC χρήστη**.
|
Μπορείτε να εκμεταλλευτείτε αυτό για να **γράψετε τη δική σας βάση δεδομένων TCC χρήστη**.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Με αυτή την άδεια θα μπορείτε να **ζητήσετε από τον Finder να αποκτήσει πρόσβαση σε περιορισμένους φακέλους TCC** και να σας δώσει τα αρχεία, αλλά όσο γνωρίζω δεν θα μπορείτε να κάνετε τον Finder να εκτελεί αυθαίρετο κώδικα για να εκμεταλλευτείτε πλήρως την πρόσβαση FDA του.
|
> Με αυτή την άδεια θα μπορείτε να **ζητήσετε από τον Finder να αποκτήσει πρόσβαση σε περιορισμένους φακέλους TCC** και να σας δώσει τα αρχεία, αλλά όσο γνωρίζω δεν θα **μπορείτε να κάνετε τον Finder να εκτελεί αυθαίρετο κώδικα** για να εκμεταλλευτείτε πλήρως την πρόσβαση FDA του.
|
||||||
>
|
>
|
||||||
> Επομένως, δεν θα μπορείτε να εκμεταλλευτείτε πλήρως τις δυνατότητες της FDA.
|
> Επομένως, δεν θα μπορείτε να εκμεταλλευτείτε πλήρως τις δυνατότητες της FDA.
|
||||||
|
|
||||||
@ -370,7 +370,7 @@ EOD
|
|||||||
<figure><img src="../../../../images/image (27).png" alt="" width="244"><figcaption></figcaption></figure>
|
<figure><img src="../../../../images/image (27).png" alt="" width="244"><figcaption></figcaption></figure>
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
> Σημειώστε ότι επειδή η εφαρμογή **Automator** έχει την άδεια TCC **`kTCCServiceAppleEvents`**, μπορεί να **ελέγξει οποιαδήποτε εφαρμογή**, όπως τον Finder. Έτσι, έχοντας την άδεια να ελέγξετε τον Automator, μπορείτε επίσης να ελέγξετε τον **Finder** με έναν κώδικα όπως ο παρακάτω:
|
> Σημειώστε ότι επειδή η εφαρμογή **Automator** έχει την άδεια TCC **`kTCCServiceAppleEvents`**, μπορεί να **ελέγξει οποιαδήποτε εφαρμογή**, όπως τον Finder. Έτσι, έχοντας την άδεια να ελέγξετε τον Automator, θα μπορούσατε επίσης να ελέγξετε τον **Finder** με έναν κώδικα όπως ο παρακάτω:
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
@ -400,7 +400,7 @@ EOD
|
|||||||
|
|
||||||
### Αυτοματοποίηση (SE) σε κάποια TCC
|
### Αυτοματοποίηση (SE) σε κάποια TCC
|
||||||
|
|
||||||
**Τα System Events μπορούν να δημιουργήσουν Folder Actions, και οι Folder actions μπορούν να έχουν πρόσβαση σε ορισμένους φακέλους TCC** (Desktop, Documents & Downloads), οπότε ένα σενάριο όπως το παρακάτω μπορεί να χρησιμοποιηθεί για να εκμεταλλευτεί αυτή τη συμπεριφορά:
|
**Τα System Events μπορούν να δημιουργήσουν Folder Actions, και οι Folder actions μπορούν να έχουν πρόσβαση σε ορισμένους φακέλους TCC** (Επιφάνεια Εργασίας, Έγγραφα & Λήψεις), οπότε ένα σενάριο όπως το παρακάτω μπορεί να χρησιμοποιηθεί για να εκμεταλλευτεί αυτή τη συμπεριφορά:
|
||||||
```bash
|
```bash
|
||||||
# Create script to execute with the action
|
# Create script to execute with the action
|
||||||
cat > "/tmp/script.js" <<EOD
|
cat > "/tmp/script.js" <<EOD
|
||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user