11 KiB
macOS Autorisations dangereuses et permissions TCC
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
{% 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 dedans. 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.private.security.clear-library-validation
Cette autorisation est très similaire à com.apple.security.cs.disable-library-validation
mais au lieu de désactiver directement la validation de la bibliothèque, elle permet au processus d'appeler un appel système csops
pour la désactiver.
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.
system.install.apple-software
et system.install.apple-software.standar-user
Ces autorisations permettent d'installer des logiciels sans demander la permission de l'utilisateur, ce qui peut être utile pour une escalade de privilèges.
com.apple.private.security.kext-management
Autorisation nécessaire pour demander au noyau de charger une extension de noyau.
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 l'envoyer, veuillez soumettre une demande de pull (PR) s'il vous plaît !
keychain-access-groups
Cette liste d'attribution de privilèges keychain regroupe les groupes auxquels l'application a accès :
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>
kTCCServiceSystemPolicyAllFiles
Donne les permissions d'accès complet au disque, l'une des permissions les plus élevées de TCC que vous pouvez avoir.
kTCCServiceAppleEvents
Permet à l'application d'envoyer des événements à d'autres applications couramment utilisées pour l'automatisation des tâches. En contrôlant d'autres applications, elle peut abuser des permissions 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 fichiers à l'intérieur des bundles d'applications (à l'intérieur de app.app), ce qui est désactivé par défaut.
Moyen
com.apple.security.cs.allow-jit
Cette autorisation permet de créer de la mémoire qui est accessible en écriture 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
Cette autorisation permet de contourner ou de patcher du code C, d'utiliser la fonction longtemps obsolète NSCreateObjectFileImageFromMemory
(qui est fondamentalement non sécurisée) ou d'utiliser le framework DVDPlayback. Consultez ceci pour plus d'informations.
{% hint style="danger" %} L'inclusion de cette autorisation 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
Cette autorisation permet de modifier des sections de ses propres fichiers exécutables sur le disque pour forcer la sortie. Consultez ceci pour plus d'informations.
{% hint style="danger" %} L'autorisation de désactivation de la protection de la mémoire exécutable est une autorisation 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 autorisations plus restreintes si possible. {% endhint %}
com.apple.security.cs.allow-relative-library-loads
TODO
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous souhaitez voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.