Seguridad y Escalación de Privilegios en macOS
Reading time: 5 minutes
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.
MacOS Básico
Si no estás familiarizado con macOS, deberías comenzar a aprender los conceptos básicos de macOS:
- Archivos y permisos especiales de macOS:
macOS Files, Folders, Binaries & Memory
- Usuarios comunes de macOS
macOS Users & External Accounts
- AppleFS
- La arquitectura del kernel
macOS Kernel & System Extensions
- Servicios y protocolos de red comunes de macOS
macOS Network Services & Protocols
- Opensource macOS: https://opensource.apple.com/
- Para descargar un
tar.gz
, cambia una URL como https://opensource.apple.com/source/dyld/ a https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz
MDM de MacOS
En las empresas, los sistemas macOS probablemente serán gestionados con un MDM. Por lo tanto, desde la perspectiva de un atacante, es interesante saber cómo funciona eso:
MacOS - Inspección, Depuración y Fuzzing
macOS Apps - Inspecting, debugging and Fuzzing
Protecciones de Seguridad de MacOS
Superficie de Ataque
Permisos de Archivos
Si un proceso que se ejecuta como root escribe un archivo que puede ser controlado por un usuario, el usuario podría abusar de esto para escalar privilegios.
Esto podría ocurrir en las siguientes situaciones:
- El archivo utilizado ya fue creado por un usuario (pertenece al usuario)
- El archivo utilizado es escribible por el usuario debido a un grupo
- El archivo utilizado está dentro de un directorio propiedad del usuario (el usuario podría crear el archivo)
- El archivo utilizado está dentro de un directorio propiedad de root, pero el usuario tiene acceso de escritura sobre él debido a un grupo (el usuario podría crear el archivo)
Poder crear un archivo que va a ser utilizado por root, permite a un usuario aprovechar su contenido o incluso crear symlinks/hardlinks para apuntar a otro lugar.
Para este tipo de vulnerabilidades, no olvides verificar instaladores .pkg
vulnerables:
Manejadores de Extensiones de Archivos y Esquemas de URL
Aplicaciones extrañas registradas por extensiones de archivo podrían ser abusadas y diferentes aplicaciones pueden registrarse para abrir protocolos específicos.
macOS File Extension & URL scheme app handlers
Escalación de Privilegios TCC / SIP en macOS
En macOS, las aplicaciones y binarios pueden tener permisos para acceder a carpetas o configuraciones que los hacen más privilegiados que otros.
Por lo tanto, un atacante que quiera comprometer con éxito una máquina macOS necesitará escalar sus privilegios TCC (o incluso eludir SIP, dependiendo de sus necesidades).
Estos privilegios generalmente se otorgan en forma de derechos con los que la aplicación está firmada, o la aplicación podría solicitar algunos accesos y después de que el usuario los apruebe, pueden encontrarse en las bases de datos TCC. Otra forma en que un proceso puede obtener estos privilegios es siendo un hijo de un proceso con esos privilegios, ya que generalmente son heredados.
Sigue estos enlaces para encontrar diferentes formas de escalar privilegios en TCC, para eludir TCC y cómo en el pasado se ha eludido SIP.
Escalación de Privilegios Tradicional en macOS
Por supuesto, desde la perspectiva de un equipo rojo, también deberías estar interesado en escalar a root. Consulta la siguiente publicación para algunos consejos:
Cumplimiento de macOS
Referencias
- Respuesta a Incidentes de OS X: Scripting y Análisis
- https://taomm.org/vol1/analysis.html
- https://github.com/NicolasGrimonpont/Cheatsheet
- https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ
- https://www.youtube.com/watch?v=vMGiplQtjTY
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.