mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 17:44:47 +00:00
6.1 KiB
6.1 KiB
Extensões de Kernel do macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? Ou gostaria de ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra The PEASS Family, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS e HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do Telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando um PR para repositório hacktricks e repositório hacktricks-cloud.
Informações básicas
As extensões de 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 de kernel. Estes são os requisitos que uma extensão de kernel deve atender para ser carregada:
- Ao entrar no modo de recuperação, as extensões de kernel devem ser permitidas para serem carregadas:
- A extensão de kernel deve ser assinada com um certificado de assinatura de código do kernel, que só pode ser concedido pela Apple. A Apple irá revisar detalhadamente a empresa e as razões pelas quais ela é necessária.
- A extensão de kernel também deve ser notarizada, a Apple poderá verificá-la em busca de malware.
- Em seguida, o usuário root é aquele que pode carregar a extensão de kernel e os arquivos dentro do pacote devem pertencer ao root.
- Durante o processo de carregamento, o pacote deve ser preparado em um local protegido não-root:
/Library/StagedExtensions
(requer a concessãocom.apple.rootless.storage.KernelExtensionManagement
). - Por fim, ao tentar carregá-la, o usuário receberá uma solicitação de confirmação e, se aceita, o computador deve ser reiniciado para carregá-la.
Processo de carregamento
No Catalina era assim: É interessante notar que o processo de verificação ocorre em userland. No entanto, apenas aplicativos com a concessão com.apple.private.security.kext-management
podem solicitar ao kernel que carregue uma extensão: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
- O cli
kextutil
inicia o processo de verificação para carregar uma extensão
- Ele irá se comunicar com o
kextd
enviando usando um serviço Mach.
- O
kextd
verificará várias coisas, como a assinatura
- Ele irá se comunicar com o
syspolicyd
para verificar se a extensão pode ser carregada.
- O
syspolicyd
irá solicitar ao usuário se a extensão não tiver sido carregada anteriormente.
- O
syspolicyd
irá relatar o resultado aokextd
- O
kextd
finalmente poderá dizer ao kernel para carregar a extensão
Se o kextd
não estiver disponível, o 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 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? Ou gostaria de ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra The PEASS Family, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS e HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do Telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando um PR para repositório hacktricks e repositório hacktricks-cloud.