mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 09:34:03 +00:00
6 KiB
6 KiB
Extensões do Kernel do 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.
Informações Básicas
Extensões do kernel (Kexts) são pacotes com a extensão .kext
que são carregados diretamente no espaço do kernel do macOS, fornecendo funcionalidades adicionais ao sistema operacional principal.
Requisitos
Obviamente, isso é tão poderoso que é complicado carregar uma extensão do kernel. Estes são os requisitos que uma extensão do kernel deve cumprir para ser carregada:
- Ao entrar no modo de recuperação, as extensões do kernel devem ser permitidas para serem carregadas:
- A extensão do kernel deve ser assinada com um certificado de assinatura de código do kernel, que só pode ser concedido pela Apple. A Apple revisará detalhadamente a empresa e os motivos pelos quais é necessária.
- A extensão do kernel também deve ser notarizada, permitindo que a Apple a verifique quanto a malware.
- Então, o usuário root é quem pode carregar a extensão do kernel e os arquivos dentro do pacote devem pertencer ao root.
- Durante o processo de carregamento, o pacote deve ser preparado em uma localização protegida não-root:
/Library/StagedExtensions
(requer a permissãocom.apple.rootless.storage.KernelExtensionManagement
). - Finalmente, ao tentar carregá-la, o usuário receberá um pedido de confirmação e, se aceito, o computador deve ser reiniciado para carregá-la.
Processo de Carregamento
Em Catalina era assim: É interessante notar que o processo de verificação ocorre no userland. No entanto, apenas aplicações com a permissão com.apple.private.security.kext-management
podem solicitar ao kernel para carregar uma extensão: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
- A CLI
kextutil
inicia o processo de verificação para carregar uma extensão
- Ela se comunicará com o
kextd
enviando um serviço Mach.
kextd
verificará várias coisas, como a assinatura
- Ele se comunicará com o
syspolicyd
para verificar se a extensão pode ser carregada.
syspolicyd
irá solicitar ao usuário se a extensão ainda não foi carregada anteriormente.
syspolicyd
informará o resultado aokextd
.
kextd
finalmente poderá dizer ao kernel para carregar a extensão
Se kextd
não estiver disponível, kextutil
pode realizar as mesmas verificações.
Referências
- 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.