macOS Dangerous Entitlements & TCC perms

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

warning

Tenga en cuenta que los derechos que comienzan con com.apple no est谩n disponibles para terceros, solo Apple puede otorgarlos.

Alto

com.apple.rootless.install.heritable

El derecho com.apple.rootless.install.heritable permite eludir SIP. Consulte esto para m谩s informaci贸n.

com.apple.rootless.install

El derecho com.apple.rootless.install permite eludir SIP. Consulte esto para m谩s informaci贸n.

com.apple.system-task-ports (anteriormente llamado task_for_pid-allow)

Este derecho permite obtener el puerto de tarea para cualquier proceso, excepto el n煤cleo. Consulte esto para m谩s informaci贸n.

com.apple.security.get-task-allow

Este derecho permite a otros procesos con el derecho com.apple.security.cs.debugger obtener el puerto de tarea del proceso ejecutado por el binario con este derecho y inyectar c贸digo en 茅l. Consulte esto para m谩s informaci贸n.

com.apple.security.cs.debugger

Las aplicaciones con el derecho 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 derecho Get Task Allow establecido en true. Sin embargo, incluso con el derecho de herramienta de depuraci贸n, un depurador no puede obtener los puertos de tarea de procesos que no tienen el derecho Get Task Allow, y que por lo tanto est谩n protegidos por la Protecci贸n de Integridad del Sistema. Consulte esto para m谩s informaci贸n.

com.apple.security.cs.disable-library-validation

Este derecho permite cargar frameworks, complementos o bibliotecas sin estar firmados por Apple o firmados con el mismo Team ID que el ejecutable principal, por lo que un atacante podr铆a abusar de alguna carga de biblioteca arbitraria para inyectar c贸digo. Consulte esto para m谩s informaci贸n.

com.apple.private.security.clear-library-validation

Este derecho es muy similar a com.apple.security.cs.disable-library-validation pero en lugar de deshabilitar directamente la validaci贸n de bibliotecas, permite al proceso llamar a una llamada al sistema csops para deshabilitarla.
Consulte esto para m谩s informaci贸n.

com.apple.security.cs.allow-dyld-environment-variables

Este derecho permite usar variables de entorno DYLD que podr铆an usarse para inyectar bibliotecas y c贸digo. Consulte esto para m谩s informaci贸n.

com.apple.private.tcc.manager o com.apple.rootless.storage.TCC

Seg煤n este blog y este blog, estos derechos permiten modificar la base de datos TCC.

system.install.apple-software y system.install.apple-software.standar-user

Estos derechos permiten instalar software sin pedir permisos al usuario, lo que puede ser 煤til para una escalada de privilegios.

com.apple.private.security.kext-management

Derecho necesario para pedir al n煤cleo que cargue una extensi贸n del n煤cleo.

com.apple.private.icloud-account-access

El derecho com.apple.private.icloud-account-access permite comunicarse con el servicio XPC com.apple.iCloudHelper que proporcionar谩 tokens de iCloud.

iMovie y Garageband ten铆an este derecho.

Para m谩s informaci贸n sobre el exploit para obtener tokens de iCloud de ese derecho, consulte la charla: #OBTS v5.0: "驴Qu茅 sucede en tu Mac, se queda en el iCloud de Apple?!" - Wojciech Regula

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 se menciona que esto podr铆a usarse para actualizar los contenidos protegidos por SSV despu茅s de un reinicio. Si sabe c贸mo, env铆e un PR, 隆por favor!

com.apple.private.apfs.create-sealed-snapshot

TODO: En este informe se menciona que esto podr铆a usarse para actualizar los contenidos protegidos por SSV despu茅s de un reinicio. Si sabe c贸mo, env铆e un PR, 隆por favor!

keychain-access-groups

Este derecho lista los grupos de keychain a los que la aplicaci贸n tiene acceso:

xml
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

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 se utilizan com煤nmente para automatizar tareas. Al controlar otras aplicaciones, puede abusar de los permisos otorgados a estas otras aplicaciones.

Como hacer que le pidan al usuario su contrase帽a:

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"'

O hacer que realicen acciones arbitrarias.

kTCCServiceEndpointSecurityClient

Permite, entre otros permisos, escribir la base de datos TCC de los usuarios.

kTCCServiceSystemPolicySysAdminFiles

Permite cambiar el atributo NFSHomeDirectory de un usuario que cambia la ruta de su carpeta de inicio y, por lo tanto, permite eludir 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 caracter铆sticas de accesibilidad de macOS, lo que significa que, por ejemplo, podr谩 presionar combinaciones de teclas. As铆 que 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 derecho permite crear memoria que es escribible y ejecutable al pasar la bandera MAP_JIT a la funci贸n del sistema mmap(). Consulta esto para m谩s informaci贸n.

com.apple.security.cs.allow-unsigned-executable-memory

Este derecho permite sobrescribir o parchear c贸digo C, usar el obsoleto NSCreateObjectFileImageFromMemory (que es fundamentalmente inseguro), o usar el marco DVDPlayback. Consulta esto para m谩s informaci贸n.

caution

Incluir este derecho 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.

com.apple.security.cs.disable-executable-page-protection

Este derecho permite modificar secciones de sus propios archivos ejecutables en disco para salir forzosamente. Consulta esto para m谩s informaci贸n.

caution

El Derecho de Desactivar la Protecci贸n de Memoria Ejecutable es un derecho extremo que elimina una protecci贸n de seguridad fundamental de tu aplicaci贸n, lo que permite a un atacante reescribir el c贸digo ejecutable de tu aplicaci贸n sin ser detectado. Prefiere derechos m谩s restringidos si es posible.

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

Este derecho permite montar un sistema de archivos nullfs (prohibido por defecto). Herramienta: mount_nullfs.

kTCCServiceAll

Seg煤n esta publicaci贸n de blog, este permiso TCC generalmente se encuentra en la forma:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

Permitir que el proceso pida todos los permisos de TCC.

kTCCServicePostEvent

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks