mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-24 12:03:37 +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 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 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
kextutil
cli inicia o processo de verificação para carregar uma extensão- Ele irá se comunicar com
kextd
enviando usando um serviço Mach
- Ele irá se comunicar com
kextd
verificará várias coisas, como a assinatura- Ele irá se comunicar com
syspolicyd
para verificar se a extensão pode ser carregada
- Ele irá se comunicar com
syspolicyd
pergunta ao usuário se a extensão não foi carregada anteriormentesyspolicyd
indicará o resultado parakextd
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.