9.4 KiB
Entitlements Peligrosos de macOS y Permisos de TCC
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
{% hint style="warning" %}
Ten en cuenta que los entitlements que comienzan con com.apple
no están disponibles para terceros, solo Apple puede otorgarlos.
{% endhint %}
Alto
com.apple.rootless.install.heritable
El entitlement com.apple.rootless.install.heritable
permite burlar SIP. Consulta esto para más información.
com.apple.rootless.install
El entitlement com.apple.rootless.install
permite burlar SIP. Consulta esto para más información.
com.apple.system-task-ports
(anteriormente llamado task_for_pid-allow
)
Este entitlement permite obtener el puerto de tarea para cualquier proceso, excepto el kernel. Consulta esto para más información.
com.apple.security.get-task-allow
Este entitlement permite a otros procesos con el entitlement com.apple.security.cs.debugger
obtener el puerto de tarea del proceso ejecutado por el binario con este entitlement e inyectar código en él. Consulta esto para más información.
com.apple.security.cs.debugger
Las aplicaciones con el Entitlement de Herramienta de Depuración pueden llamar a task_for_pid()
para obtener un puerto de tarea válido para aplicaciones no firmadas y de terceros con el entitlement Get Task Allow
establecido en true
. Sin embargo, incluso con el entitlement de herramienta de depuración, un depurador no puede obtener los puertos de tarea de procesos que no tienen el entitlement Get Task Allow
, y que por lo tanto están protegidos por System Integrity Protection. Consulta esto para más información.
com.apple.security.cs.disable-library-validation
Este entitlement permite cargar frameworks, complementos o bibliotecas sin estar firmados por Apple o firmados 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.
com.apple.security.cs.allow-dyld-environment-variables
Este entitlement permite usar variables de entorno DYLD que podrían ser utilizadas para inyectar bibliotecas y código. Consulta esto para más información.
com.apple.private.tcc.manager
y com.apple.rootless.storage
.TCC
Según este blog, estos entitlements permiten modificar la base de datos TCC.
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 el contenido protegido por SSV después de un reinicio. Si sabes cómo hacerlo, envía un PR por favor.
com.apple.private.apfs.create-sealed-snapshot
TODO: En este informe se menciona que esto podría usarse para actualizar el contenido protegido por SSV después de un reinicio. Si sabes cómo hacerlo, envía un PR por favor.
kTCCServiceSystemPolicyAllFiles
Otorga permisos de Acceso Completo al Disco, uno de los permisos más altos de TCC que se pueden tener.
kTCCServiceAppleEvents
Permite que la aplicación envíe eventos a otras aplicaciones que se utilizan comúnmente para automatizar tareas. Controlando otras aplicaciones, puede abusar de los permisos otorgados a estas otras aplicaciones.
kTCCServiceSystemPolicySysAdminFiles
Permite cambiar el atributo NFSHomeDirectory
de un usuario que cambia su carpeta de inicio y, por lo tanto, permite evadir TCC.
kTCCServiceSystemPolicyAppBundles
Permite modificar aplicaciones dentro de sus carpetas (dentro de app.app), lo cual está deshabilitado de forma predeterminada.
Medio
com.apple.security.cs.allow-jit
Este permiso permite crear memoria que es escribible y ejecutable al pasar la bandera MAP_JIT
a la función del sistema mmap()
. Consulta esto para obtener más información.
com.apple.security.cs.allow-unsigned-executable-memory
Este permiso permite anular o parchear código C, utilizar el marco de trabajo NSCreateObjectFileImageFromMemory
(que es fundamentalmente inseguro) o utilizar el marco de trabajo DVDPlayback. Consulta esto para obtener más información.
{% hint style="danger" %} Incluir este permiso expone tu aplicación a vulnerabilidades comunes en lenguajes de código no seguro 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 obtener más información.
{% hint style="danger" %} El permiso de desactivación de protección de memoria ejecutable 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 ser detectado. Prefiere permisos más específicos si es posible. {% endhint %}
com.apple.security.cs.allow-relative-library-loads
TODO
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el merchandising oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.