hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md

9.7 KiB

macOS Autorisations dangereuses et permissions TCC

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

{% hint style="warning" %} Notez que les autorisations commençant par com.apple ne sont pas disponibles pour les tiers, seuls Apple peut les accorder. {% endhint %}

Élevé

com.apple.rootless.install.heritable

L'autorisation com.apple.rootless.install.heritable permet de contourner SIP. Consultez ceci pour plus d'informations.

com.apple.rootless.install

L'autorisation com.apple.rootless.install permet de contourner SIP. Consultez ceci pour plus d'informations.

com.apple.system-task-ports (anciennement appelé task_for_pid-allow)

Cette autorisation permet d'obtenir le port de tâche pour n'importe quel processus, à l'exception du noyau. Consultez ceci pour plus d'informations.

com.apple.security.get-task-allow

Cette autorisation permet à d'autres processus disposant de l'autorisation com.apple.security.cs.debugger d'obtenir le port de tâche du processus exécuté par le binaire avec cette autorisation et d'injecter du code. Consultez ceci pour plus d'informations.

com.apple.security.cs.debugger

Les applications avec l'autorisation Debugging Tool peuvent appeler task_for_pid() pour récupérer un port de tâche valide pour les applications non signées et tierces avec l'autorisation Get Task Allow définie sur true. Cependant, même avec l'autorisation de l'outil de débogage, un débogueur ne peut pas obtenir les ports de tâche des processus qui n'ont pas l'autorisation Get Task Allow, et qui sont donc protégés par la Protection de l'intégrité du système. Consultez ceci pour plus d'informations.

com.apple.security.cs.disable-library-validation

Cette autorisation permet de charger des frameworks, des plug-ins ou des bibliothèques sans qu'ils soient signés par Apple ou signés avec le même ID d'équipe que l'exécutable principal, de sorte qu'un attaquant pourrait abuser d'un chargement de bibliothèque arbitraire pour injecter du code. Consultez ceci pour plus d'informations.

com.apple.security.cs.allow-dyld-environment-variables

Cette autorisation permet d'utiliser des variables d'environnement DYLD qui pourraient être utilisées pour injecter des bibliothèques et du code. Consultez ceci pour plus d'informations.

com.apple.private.tcc.manager et com.apple.rootless.storage.TCC

Selon ce blog, ces autorisations permettent de modifier la base de données TCC.

com.apple.private.tcc.manager.check-by-audit-token

TODO: Je ne sais pas ce que cela permet de faire

com.apple.private.apfs.revert-to-snapshot

TODO: Dans ce rapport, il est mentionné que cela pourrait être utilisé pour mettre à jour les contenus protégés par SSV après un redémarrage. Si vous savez comment faire, envoyez une PR s'il vous plaît !

com.apple.private.apfs.create-sealed-snapshot

TODO: Dans ce rapport, il est mentionné que cela pourrait être utilisé pour mettre à jour les contenus protégés par SSV après un redémarrage. Si vous savez comment faire, envoyez une PR s'il vous plaît !

kTCCServiceSystemPolicyAllFiles

Accorde des autorisations d'accès complet au disque, l'une des autorisations les plus élevées de TCC.

kTCCServiceAppleEvents

Permet à l'application d'envoyer des événements à d'autres applications couramment utilisées pour automatiser des tâches. En contrôlant d'autres applications, elle peut abuser des autorisations accordées à ces autres applications.

kTCCServiceSystemPolicySysAdminFiles

Permet de modifier l'attribut NFSHomeDirectory d'un utilisateur qui modifie son dossier personnel et permet donc de contourner TCC.

kTCCServiceSystemPolicyAppBundles

Permet de modifier les applications à l'intérieur de leurs dossiers (à l'intérieur de app.app), ce qui est interdit par défaut.

Moyen

com.apple.security.cs.allow-jit

Cet avantage permet de créer de la mémoire qui est inscriptible et exécutable en passant le drapeau MAP_JIT à la fonction système mmap(). Consultez ceci pour plus d'informations.

com.apple.security.cs.allow-unsigned-executable-memory

Cet avantage permet de remplacer ou patcher du code C, d'utiliser la fonction NSCreateObjectFileImageFromMemory (qui est fondamentalement non sécurisée), ou d'utiliser le framework DVDPlayback. Consultez ceci pour plus d'informations.

{% hint style="danger" %} Inclure cet avantage expose votre application à des vulnérabilités courantes dans les langages de code non sécurisés en mémoire. Réfléchissez attentivement à la nécessité de cette exception pour votre application. {% endhint %}

com.apple.security.cs.disable-executable-page-protection

Cet avantage permet de modifier les sections de ses propres fichiers exécutables sur le disque pour forcer la sortie. Consultez ceci pour plus d'informations.

{% hint style="danger" %} L'avantage de désactivation de la protection de la mémoire exécutable est un avantage extrême qui supprime une protection de sécurité fondamentale de votre application, permettant à un attaquant de réécrire le code exécutable de votre application sans détection. Privilégiez des avantages plus restreints si possible. {% endhint %}

com.apple.security.cs.allow-relative-library-loads

TODO

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