6.1 KiB
Extensions du noyau macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR a hacktricks repo y hacktricks-cloud repo.
Informations de base
Les extensions du noyau (Kexts) sont des paquets avec une extension .kext
qui sont chargés directement dans l'espace du noyau macOS, offrant des fonctionnalités supplémentaires au système d'exploitation principal.
Exigences
Évidemment, c'est tellement puissant qu'il est compliqué de charger une extension du noyau. Voici les exigences qu'une extension du noyau doit satisfaire pour être chargée :
- Lors de l'entrée 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 accordé 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 pour les logiciels malveillants.
- Ensuite, l'utilisateur root est celui qui peut charger l'extension du noyau et les fichiers à l'intérieur du paquet doivent appartenir à root.
- Pendant le processus de téléchargement, le paquet doit être préparé dans un emplacement protégé non-root :
/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, si acceptée, l'ordinateur doit être redémarré pour la charger.
Processus de chargement
À Catalina, c'était comme ça : Il est intéressant de noter que le processus de vérification se produit dans l'espace utilisateur. 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
- La CLI
kextutil
démarre le processus de vérification pour charger une extension- Elle communiquera avec
kextd
en utilisant un service Mach.
- Elle communiquera avec
kextd
vérifiera plusieurs choses, telles que la signature- Il communiquera avec
syspolicyd
pour vérifier si l'extension peut être chargée.
- Il communiquera avec
syspolicyd
invitera l'utilisateur si l'extension n'a pas été précédemment chargée.syspolicyd
rapportera le résultat àkextd
.
kextd
pourra finalement dire 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 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR a hacktricks repo y hacktricks-cloud repo.