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
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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:
<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:
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
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.