# macOS Permisos Peligrosos y Permisos TCC
Aprende hacking en AWS de cero a h茅roe conhtARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCI脫N**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colecci贸n de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆gueme** en **Twitter** 馃惁 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% hint style="warning" %}
Ten en cuenta que los permisos que comienzan con **`com.apple`** no est谩n disponibles para terceros, solo Apple puede otorgarlos.
{% endhint %}
## Alto
### `com.apple.rootless.install.heritable`
El permiso **`com.apple.rootless.install.heritable`** permite **evitar SIP**. Consulta [esto para m谩s informaci贸n](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`**
El permiso **`com.apple.rootless.install`** permite **evitar SIP**. Consulta [esto para m谩s informaci贸n](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports` (anteriormente llamado `task_for_pid-allow`)**
Este permiso permite obtener el **puerto de tarea para cualquier** proceso, excepto el kernel. Consulta [**esto para m谩s informaci贸n**](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow`
Este permiso permite que otros procesos con el permiso **`com.apple.security.cs.debugger`** obtengan el puerto de tarea del proceso ejecutado por el binario con este permiso e **inyecten c贸digo en 茅l**. Consulta [**esto para m谩s informaci贸n**](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger`
Las aplicaciones con el permiso de Herramienta de Depuraci贸n pueden llamar a `task_for_pid()` para recuperar un puerto de tarea v谩lido para aplicaciones no firmadas y de terceros con el permiso `Get Task Allow` establecido en `true`. Sin embargo, incluso con el permiso de herramienta de depuraci贸n, un depurador **no puede obtener los puertos de tarea** de procesos que **no tienen el permiso `Get Task Allow`**, y que por lo tanto est谩n protegidos por la Protecci贸n de Integridad del Sistema. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation`
Este permiso permite **cargar frameworks, plug-ins o bibliotecas sin estar firmados por Apple o con el mismo ID de Equipo** que el ejecutable principal, por lo que un atacante podr铆a abusar de alguna carga de biblioteca arbitraria para inyectar c贸digo. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
Este permiso es muy similar a **`com.apple.security.cs.disable-library-validation`** pero **en lugar** de **deshabilitar directamente** la validaci贸n de bibliotecas, permite que el proceso **llame a una llamada al sistema `csops` para desactivarla**.\
Consulta [**esto para m谩s informaci贸n**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables`
Este permiso permite **usar variables de entorno DYLD** que podr铆an usarse para inyectar bibliotecas y c贸digo. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` o `com.apple.rootless.storage`.`TCC`
[**Seg煤n este blog**](https://objective-see.org/blog/blog\_0x4C.html) **y** [**este blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), estos permisos permiten **modificar** la base de datos **TCC**.
### **`system.install.apple-software`** y **`system.install.apple-software.standar-user`**
Estos permisos permiten **instalar software sin pedir permiso** al usuario, lo que puede ser 煤til para una **escalada de privilegios**.
### `com.apple.private.security.kext-management`
Permiso necesario para solicitar al **kernel que cargue una extensi贸n de kernel**.
### **`com.apple.private.icloud-account-access`**
Con el permiso **`com.apple.private.icloud-account-access`** es posible comunicarse con el servicio XPC **`com.apple.iCloudHelper`** que **proporcionar谩 tokens de iCloud**.
**iMovie** y **Garageband** ten铆an este permiso.
Para m谩s **informaci贸n** sobre el exploit para **obtener tokens de iCloud** de ese permiso, consulta la charla: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token`
TODO: No s茅 qu茅 permite hacer esto
### `com.apple.private.apfs.revert-to-snapshot`
TODO: En [**este informe**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se menciona que esto podr铆a usarse para** actualizar los contenidos protegidos por SSV despu茅s de un reinicio. Si sabes c贸mo hacerlo, 隆por favor env铆a un PR!
### `com.apple.private.apfs.create-sealed-snapshot`
TODO: En [**este informe**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se menciona que esto podr铆a usarse para** actualizar los contenidos protegidos por SSV despu茅s de un reinicio. Si sabes c贸mo hacerlo, 隆por favor env铆a un PR!
### `keychain-access-groups`
Este permiso enumera los **grupos de llaveros** a los que la aplicaci贸n tiene acceso:
```xml
keychain-access-groupsichatappleappleaccountInternetAccountsIMCore
```
### **`kTCCServiceSystemPolicyAllFiles`**
Otorga permisos de **Acceso Completo al Disco**, uno de los permisos m谩s altos de TCC que puedes tener.
### **`kTCCServiceAppleEvents`**
Permite que la aplicaci贸n env铆e eventos a otras aplicaciones que com煤nmente se utilizan para **automatizar tareas**. Controlando otras apps, puede abusar de los permisos otorgados a estas otras apps.
Como hacer que le pidan al usuario su contrase帽a:
{% 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 %}
O haciendo que realicen **acciones arbitrarias**.
### **`kTCCServiceEndpointSecurityClient`**
Permite, entre otros permisos, **escribir la base de datos TCC del usuario**.
### **`kTCCServiceSystemPolicySysAdminFiles`**
Permite **cambiar** el atributo **`NFSHomeDirectory`** de un usuario que cambia la ruta de su carpeta de inicio y, por lo tanto, permite **evitar TCC**.
### **`kTCCServiceSystemPolicyAppBundles`**
Permite modificar archivos dentro del paquete de aplicaciones (dentro de app.app), lo cual est谩 **prohibido por defecto**.
Es posible verificar qui茅n tiene este acceso en _Configuraci贸n del Sistema_ > _Privacidad y Seguridad_ > _Gesti贸n de Aplicaciones._
### `kTCCServiceAccessibility`
El proceso podr谩 **abusar de las funciones de accesibilidad de macOS**, lo que significa que, por ejemplo, podr谩 presionar teclas. Entonces, podr铆a solicitar acceso para controlar una aplicaci贸n como Finder y aprobar el di谩logo con este permiso.
## Medio
### `com.apple.security.cs.allow-jit`
Este permiso permite **crear memoria que es escribible y ejecutable** pasando la bandera `MAP_JIT` a la funci贸n del sistema `mmap()`. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
Este permiso permite **sobrescribir o parchear c贸digo C**, usar el obsoleto **`NSCreateObjectFileImageFromMemory`** (que es fundamentalmente inseguro), o usar el framework **DVDPlayback**. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-unsigned-executable-memory).
{% hint style="danger" %}
Incluir este permiso expone tu aplicaci贸n a vulnerabilidades comunes en lenguajes de c贸digo inseguros en memoria. Considera cuidadosamente si tu aplicaci贸n necesita esta excepci贸n.
{% endhint %}
### `com.apple.security.cs.disable-executable-page-protection`
Este permiso permite **modificar secciones de sus propios archivos ejecutables** en disco para salir forzosamente. Consulta [**esto para m谩s informaci贸n**](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_disable-executable-page-protection).
{% hint style="danger" %}
El permiso de Desactivaci贸n de Protecci贸n de P谩ginas Ejecutables es un permiso extremo que elimina una protecci贸n de seguridad fundamental de tu aplicaci贸n, lo que permite que un atacante reescriba el c贸digo ejecutable de tu aplicaci贸n sin detecci贸n. Prefiere permisos m谩s espec铆ficos si es posible.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
TODO
### `com.apple.private.nullfs_allow`
Este permiso permite montar un sistema de archivos nullfs (prohibido por defecto). Herramienta: [**mount_nullfs**](https://github.com/JamaicanMoose/mount_nullfs/tree/master).
### `kTCCServiceAll`
De acuerdo con este blogpost, este permiso TCC suele encontrarse en la forma:
```
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
```
Permite al proceso **solicitar todos los permisos de TCC**.
### **`kTCCServicePostEvent`**
Aprende hacking en AWS de cero a h茅roe conhtARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** consulta los [**PLANES DE SUSCRIPCI脫N**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colecci贸n de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆gueme** en **Twitter** 馃惁 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).