6.1 KiB
Extensions du noyau macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous voulez voir votre entreprise annoncée sur HackTricks ? Ou vous voulez accéder à 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 de PEASS et HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en envoyant une PR à hacktricks repo et hacktricks-cloud repo.
Informations de base
Les extensions du noyau (Kexts) sont des paquets avec 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 principal.
Exigences
Évidemment, c'est si puissant qu'il est compliqué de charger une extension du noyau. Voici les exigences qu'une extension du noyau doit remplir pour être chargée :
- Lorsque vous entrez en mode de récupération, les extensions du noyau doivent être autorisées à être chargées :
- L'extension du noyau doit être signée avec un certificat de signature de code du noyau, qui ne peut être délivré que par Apple. Qui examinera en détail l'entreprise et les raisons pour lesquelles elle est nécessaire.
- L'extension du noyau doit également être notarisée, Apple pourra la vérifier à la recherche de logiciels malveillants.
- Ensuite, l'utilisateur root est celui qui peut charger l'extension du noyau et les fichiers à l'intérieur du package doivent appartenir à root.
- Pendant le processus de chargement, le package doit être préparé dans un emplacement protégé sans racine :
/Library/StagedExtensions
(nécessite l'autorisationcom.apple.rootless.storage.KernelExtensionManagement
) - Enfin, lors de la tentative de chargement, l'utilisateur recevra une demande de confirmation et, s'il l'accepte, l'ordinateur doit redémarrer pour la charger.
Processus de chargement
Dans Catalina, c'était comme ça : Il est intéressant de noter que le processus de vérification se produit dans userland. Cependant, seules les applications avec l'autorisation com.apple.private.security.kext-management
peuvent demander au noyau de charger une extension : kextcache, kextload, kextutil, kextd, syspolicyd
kextutil
cli initie le processus de vérification pour charger une extension
- Il communiquera avec
kextd
en utilisant un service Mach
kextd
vérifiera plusieurs choses, comme la signature
- Il communiquera avec
syspolicyd
pour vérifier si l'extension peut être chargée
syspolicyd
demandera à l'utilisateur si l'extension n'a pas été chargée précédemment
syspolicyd
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.
Références
- https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/
- https://www.youtube.com/watch?v=hGKOskSiaQo
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous voulez voir votre entreprise annoncée sur HackTricks ? Ou vous voulez accéder à 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 de PEASS et HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de hacking en envoyant une demande de pull à hacktricks repo et hacktricks-cloud repo.