mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
5.2 KiB
5.2 KiB
Estensioni del kernel di macOS
Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
- Lavori per una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata su HackTricks? O vuoi accedere all'ultima versione di PEASS o scaricare HackTricks in PDF? Dai un'occhiata ai PIANI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra esclusiva collezione di NFT
- Ottieni il merchandising ufficiale di PEASS e HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a hacktricks repo e hacktricks-cloud repo.
Informazioni di base
Le estensioni del kernel (Kexts) sono pacchetti con estensione .kext
che vengono caricati direttamente nello spazio del kernel di macOS, fornendo funzionalità aggiuntive al sistema operativo principale.
Requisiti
Ovviamente, è così potente che è complicato caricare un'estensione del kernel. Questi sono i requisiti che una estensione del kernel deve soddisfare per essere caricata:
- Quando si entra in modalità di ripristino, le estensioni del kernel devono essere autorizzate a essere caricate:
- L'estensione del kernel deve essere firmata con un certificato di firma del codice del kernel, che può essere concesso solo da Apple. Chi esaminerà dettagliatamente l'azienda e i motivi per cui è necessario.
- L'estensione del kernel deve anche essere notarizzata, Apple sarà in grado di controllarla per malware.
- Quindi, l'utente root è l'unico che può caricare l'estensione del kernel e i file all'interno del pacchetto devono appartenere a root.
- Durante il processo di caricamento, il pacchetto deve essere preparato in una posizione protetta non di root:
/Library/StagedExtensions
(richiede il permessocom.apple.rootless.storage.KernelExtensionManagement
). - Infine, quando si tenta di caricarlo, l'utente riceverà una richiesta di conferma e, se accettata, il computer deve essere riavviato per caricarla.
Processo di caricamento
In Catalina era così: È interessante notare che il processo di verifica avviene in userland. Tuttavia, solo le applicazioni con il permesso com.apple.private.security.kext-management
possono richiedere al kernel di caricare un'estensione: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
kextutil
cli avvia il processo di verifica per il caricamento di un'estensione
- Parlerà con
kextd
inviando tramite un servizio Mach.
kextd
controllerà diverse cose, come la firma
- Parlerà con
syspolicyd
per verificare se l'estensione può essere caricata.
syspolicyd
chiederà all'utente se l'estensione non è stata caricata in precedenza.
syspolicyd
riporterà il risultato akextd
kextd
potrà infine dire al kernel di caricare l'estensione
Se kextd
non è disponibile, kextutil
può eseguire gli stessi controlli.
References
- https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/
- https://www.youtube.com/watch?v=hGKOskSiaQo
Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
- Lavori per una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata su HackTricks? O vuoi accedere all'ultima versione di PEASS o scaricare HackTricks in PDF? Dai un'occhiata ai PIANI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra esclusiva collezione di NFT
- Ottieni il merchandising ufficiale di PEASS e HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a hacktricks repo e hacktricks-cloud repo.