# macOS Dangerous Entitlements & TCC perms
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
{% hint style="warning" %}
Zauwa偶, 偶e uprawnienia zaczynaj膮ce si臋 od **`com.apple`** nie s膮 dost臋pne dla os贸b trzecich, tylko Apple mo偶e je przyzna膰.
{% endhint %}
## Wysoki
### `com.apple.rootless.install.heritable`
Uprawnienie **`com.apple.rootless.install.heritable`** pozwala na **obej艣cie SIP**. Sprawd藕 [to dla wi臋cej informacji](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`**
Uprawnienie **`com.apple.rootless.install`** pozwala na **obej艣cie SIP**. Sprawd藕 [to dla wi臋cej informacji](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports` (wcze艣niej nazywane `task_for_pid-allow`)**
To uprawnienie pozwala uzyska膰 **port zadania dla dowolnego** procesu, z wyj膮tkiem j膮dra. Sprawd藕 [**to dla wi臋cej informacji**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow`
To uprawnienie pozwala innym procesom z uprawnieniem **`com.apple.security.cs.debugger`** uzyska膰 port zadania procesu uruchomionego przez binarny plik z tym uprawnieniem i **wstrzykn膮膰 kod**. Sprawd藕 [**to dla wi臋cej informacji**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger`
Aplikacje z uprawnieniem narz臋dzia debugowania mog膮 wywo艂a膰 `task_for_pid()`, aby uzyska膰 wa偶ny port zadania dla niepodpisanych i aplikacji os贸b trzecich z uprawnieniem `Get Task Allow` ustawionym na `true`. Jednak nawet z uprawnieniem narz臋dzia debugowania, debugger **nie mo偶e uzyska膰 port贸w zada艅** proces贸w, kt贸re **nie maj膮 uprawnienia `Get Task Allow`**, a kt贸re s膮 zatem chronione przez System Integrity Protection. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation`
To uprawnienie pozwala na **艂adowanie framework贸w, wtyczek lub bibliotek bez bycia podpisanym przez Apple lub podpisanym tym samym identyfikatorem zespo艂u** co g艂贸wny plik wykonywalny, wi臋c atakuj膮cy m贸g艂by nadu偶y膰 艂adowania dowolnej biblioteki, aby wstrzykn膮膰 kod. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
To uprawnienie jest bardzo podobne do **`com.apple.security.cs.disable-library-validation`**, ale **zamiast** **bezpo艣rednio wy艂膮cza膰** walidacj臋 bibliotek, pozwala procesowi **wywo艂a膰 wywo艂anie systemowe `csops`, aby je wy艂膮czy膰**.\
Sprawd藕 [**to dla wi臋cej informacji**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables`
To uprawnienie pozwala na **u偶ywanie zmiennych 艣rodowiskowych DYLD**, kt贸re mog膮 by膰 u偶ywane do wstrzykiwania bibliotek i kodu. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` lub `com.apple.rootless.storage`.`TCC`
[**Zgodnie z tym blogiem**](https://objective-see.org/blog/blog\_0x4C.html) **i** [**tym blogiem**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), te uprawnienia pozwalaj膮 na **modyfikacj臋** bazy danych **TCC**.
### **`system.install.apple-software`** i **`system.install.apple-software.standar-user`**
Te uprawnienia pozwalaj膮 na **instalacj臋 oprogramowania bez pytania o pozwolenie** u偶ytkownika, co mo偶e by膰 pomocne w przypadku **eskalacji uprawnie艅**.
### `com.apple.private.security.kext-management`
Uprawnienie potrzebne do poproszenia **j膮dra o za艂adowanie rozszerzenia j膮dra**.
### **`com.apple.private.icloud-account-access`**
Uprawnienie **`com.apple.private.icloud-account-access`** umo偶liwia komunikacj臋 z us艂ug膮 XPC **`com.apple.iCloudHelper`**, kt贸ra **dostarczy tokeny iCloud**.
**iMovie** i **Garageband** mia艂y to uprawnienie.
Aby uzyska膰 wi臋cej **informacji** na temat exploita do **uzyskania token贸w iCloud** z tego uprawnienia, sprawd藕 wyk艂ad: [**#OBTS v5.0: "Co si臋 dzieje na twoim Macu, zostaje na iCloud Apple?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token`
TODO: Nie wiem, co to pozwala zrobi膰
### `com.apple.private.apfs.revert-to-snapshot`
TODO: W [**tym raporcie**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **wspomniano, 偶e mo偶e to by膰 u偶yte do** aktualizacji zawarto艣ci chronionej SSV po ponownym uruchomieniu. Je艣li wiesz jak, wy艣lij PR, prosz臋!
### `com.apple.private.apfs.create-sealed-snapshot`
TODO: W [**tym raporcie**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **wspomniano, 偶e mo偶e to by膰 u偶yte do** aktualizacji zawarto艣ci chronionej SSV po ponownym uruchomieniu. Je艣li wiesz jak, wy艣lij PR, prosz臋!
### `keychain-access-groups`
To uprawnienie wymienia grupy **keychain**, do kt贸rych aplikacja ma dost臋p:
```xml
keychain-access-groupsichatappleappleaccountInternetAccountsIMCore
```
### **`kTCCServiceSystemPolicyAllFiles`**
Daje uprawnienia **Pe艂nego dost臋pu do dysku**, jedno z najwy偶szych uprawnie艅 TCC, jakie mo偶na mie膰.
### **`kTCCServiceAppleEvents`**
Pozwala aplikacji na wysy艂anie zdarze艅 do innych aplikacji, kt贸re s膮 powszechnie u偶ywane do **automatyzacji zada艅**. Kontroluj膮c inne aplikacje, mo偶e nadu偶ywa膰 uprawnie艅 przyznanych tym innym aplikacjom.
Na przyk艂ad, zmuszaj膮c je do poproszenia u偶ytkownika o has艂o:
{% code overflow="wrap" %}
```bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
```
{% endcode %}
Lub sprawi膰, by wykonywa艂y **dowolne akcje**.
### **`kTCCServiceEndpointSecurityClient`**
Pozwala, mi臋dzy innymi, na **zapisywanie bazy danych TCC u偶ytkownik贸w**.
### **`kTCCServiceSystemPolicySysAdminFiles`**
Pozwala na **zmian臋** atrybutu **`NFSHomeDirectory`** u偶ytkownika, co zmienia 艣cie偶k臋 do jego folderu domowego i tym samym pozwala na **obej艣cie TCC**.
### **`kTCCServiceSystemPolicyAppBundles`**
Pozwala na modyfikacj臋 plik贸w wewn膮trz pakiet贸w aplikacji (wewn膮trz app.app), co jest **domy艣lnie zabronione**.
Mo偶na sprawdzi膰, kto ma ten dost臋p w _Ustawienia systemowe_ > _Prywatno艣膰 i bezpiecze艅stwo_ > _Zarz膮dzanie aplikacjami._
### `kTCCServiceAccessibility`
Proces b臋dzie m贸g艂 **nadu偶ywa膰 funkcji dost臋pno艣ci macOS**, co oznacza, 偶e na przyk艂ad b臋dzie m贸g艂 naciska膰 klawisze. MO呕E poprosi膰 o dost臋p do kontrolowania aplikacji, takiej jak Finder, i zatwierdzi膰 okno dialogowe z tym uprawnieniem.
## 艢redni
### `com.apple.security.cs.allow-jit`
To uprawnienie pozwala na **tworzenie pami臋ci, kt贸ra jest zapisywalna i wykonywalna** poprzez przekazanie flagi `MAP_JIT` do funkcji systemowej `mmap()`. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
To uprawnienie pozwala na **nadpisywanie lub patchowanie kodu C**, u偶ycie d艂ugo nieaktualizowanej **`NSCreateObjectFileImageFromMemory`** (co jest zasadniczo niebezpieczne), lub u偶ycie frameworka **DVDPlayback**. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %}
Uwzgl臋dnienie tego uprawnienia nara偶a Twoj膮 aplikacj臋 na powszechne luki w kodzie j臋zyk贸w niebezpiecznych dla pami臋ci. Starannie rozwa偶, czy Twoja aplikacja potrzebuje tego wyj膮tku.
{% endhint %}
### `com.apple.security.cs.disable-executable-page-protection`
To uprawnienie pozwala na **modyfikacj臋 sekcji w艂asnych plik贸w wykonywalnych** na dysku, aby wymusi膰 wyj艣cie. Sprawd藕 [**to dla wi臋cej informacji**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %}
Uprawnienie do wy艂膮czenia ochrony pami臋ci wykonywalnej jest ekstremalnym uprawnieniem, kt贸re usuwa fundamentaln膮 ochron臋 bezpiecze艅stwa z Twojej aplikacji, co umo偶liwia atakuj膮cemu przepisanie kodu wykonywalnego Twojej aplikacji bez wykrycia. Preferuj w臋偶sze uprawnienia, je艣li to mo偶liwe.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
TODO
### `com.apple.private.nullfs_allow`
To uprawnienie pozwala na zamontowanie systemu plik贸w nullfs (domy艣lnie zabronione). Narz臋dzie: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll`
Zgodnie z tym wpisem na blogu, to uprawnienie TCC zazwyczaj wyst臋puje w formie:
```
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
```
Zezw贸l procesowi na **poproszenie o wszystkie uprawnienia TCC**.
### **`kTCCServicePostEvent`**
{% hint style="success" %}
Ucz si臋 i 膰wicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz si臋 i 膰wicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie dla HackTricks
* Sprawd藕 [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Do艂膮cz do** 馃挰 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **艣led藕** nas na **Twitterze** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel si臋 trikami hackingowymi, przesy艂aj膮c PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytori贸w github.
{% endhint %}