hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md

6.3 KiB

Entitlements Peligrosos de macOS

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

{% 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.security.get-task-allow

Este entitlement permite obtener el puerto de tarea del proceso ejecutado por el binario con este entitlement e inyectar código en él. Consulta esto para obtener 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 obtener 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 sin firmar 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 los procesos que no tienen el entitlement Get Task Allow y que, por lo tanto, están protegidos por la Protección de Integridad del Sistema. Consulta esto para obtener 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 obtener más información.

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

Este entitlement permite usar variables de entorno DYLD que podrían usarse para inyectar bibliotecas y código. Consulta esto para obtener más información.

Medio

com.apple.security.cs.allow-jit

Este entitlement permite crear memoria que es escribible y ejecutable pasando 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 entitlement permite anular o parchear código C, usar el obsoleto NSCreateObjectFileImageFromMemory (que es fundamentalmente inseguro) o usar el framework DVDPlayback. Consulta esto para obtener más información.

{% hint style="danger" %} Incluir este entitlement 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 entitlement 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 Entitlement de Desactivación de Protección de Memoria Ejecutable es un entitlement 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 entitlements más específicos si es posible. {% endhint %}

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

TODO