mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-22 02:53:28 +00:00
4.1 KiB
4.1 KiB
Extensões de Kernel do macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer 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 & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.
Informações Básicas
As extensões de kernel (Kexts) são pacotes com 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 para que uma extensão de kernel seja carregada:
- Ao entrar no modo de recuperação, as extensões de kernel precisam ser autorizadas a 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. Que irá revisar detalhadamente a empresa e as razões pelas quais isso é necessário.
- A extensão de kernel também precisa ser notarizada, a Apple poderá verificá-la em busca de malware.
- Em seguida, o usuário root é o único que pode carregar a extensão de kernel e os arquivos dentro do pacote devem pertencer ao root.
- Finalmente, ao tentar carregá-lo, o usuário será solicitado a confirmar e, se aceito, o computador deve reiniciar para carregá-lo.
Processo de Carregamento
De volta ao Catalina, era assim: É interessante notar que o processo de verificação ocorre em userland. No entanto, apenas aplicativos com a permissão com.apple.private.security.kext-management
podem solicitar ao kernel para carregar uma extensão: kextcache, kextload, kextutil, kextd, syspolicyd
- O cli
kextutil
inicia o processo de verificação para carregar uma extensão- Ele falará com o
kextd
enviando usando um serviço Mach
- Ele falará com o
- O
kextd
verificará várias coisas, como a assinatura- Ele falará com o
syspolicyd
para verificar se a extensão pode ser carregada
- Ele falará com o
- O
syspolicyd
pergunta ao usuário se a extensão não foi carregada anteriormentesyspolicyd
indicará o resultado aokextd
- O
kextd
finalmente poderá indicar ao kernel para carregar a extensão
Se o kextd não estiver disponível, o kextutil pode realizar as mesmas verificações.