4.1 KiB
Extensions de noyau macOS
☁️ 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.
Informations de base
Les extensions de noyau (Kexts) sont des bundles utilisant l'extension .kext
qui sont chargés directement dans l'espace du noyau de macOS, fournissant des fonctionnalités supplémentaires au système d'exploitation de base.
Exigences
Évidemment, c'est tellement puissant qu'il est compliqué de charger une extension de noyau. Voici les exigences d'une extension de noyau pour être chargée :
- En allant en mode de récupération, les Kexts doivent être autorisés à être chargés :
- Le Kext doit être signé avec un certificat de signature de code de noyau, qui ne peut être accordé que par Apple. Qui va examiner en détail la société et les raisons pour lesquelles cela est nécessaire.
- Le Kext doit également être notarisé, Apple pourra le vérifier pour les logiciels malveillants.
- Ensuite, l'utilisateur root est celui qui peut charger le Kext et les fichiers à l'intérieur du bundle doivent appartenir à root.
- Enfin, une fois qu'on essaie de le charger, l'utilisateur sera invité à confirmer et si c'est accepté, l'ordinateur doit redémarrer pour le charger.
Processus de chargement
De retour à Catalina, c'était comme ça : Il est intéressant de noter que le processus de vérification se produit sur userland. Cependant, seules les applications avec l'entitlement com.apple.private.security.kext-management
peuvent demander au noyau de charger une extension : kextcache, kextload, kextutil, kextd, syspolicyd
kextutil
cli démarre le processus de vérification pour charger une extension- Il parlera à
kextd
en envoyant en utilisant un service Mach
- Il parlera à
kextd
vérifiera plusieurs choses, telles que la signature- Il parlera à
syspolicyd
pour vérifier si l'extension peut être chargée
- Il parlera à
syspolicyd
demandera à l'utilisateur si l'extension n'a pas été chargée précédemmentsyspolicyd
indiquera le résultat àkextd
kextd
pourra enfin indiquer au noyau de charger l'extension
Si kextd n'est pas disponible, kextutil peut effectuer les mêmes vérifications.