macOS Kernel Extensions

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Osnovne informacije

Kernel ekstenzije (Kexts) su paketi sa ekstenzijom .kext koji se direktno učitavaju u macOS kernel prostor, pružajući dodatne funkcionalnosti glavnom operativnom sistemu.

Zahtevi

Očigledno, ovo je toliko moćno da je komplikovano učitati kernel ekstenziju. Ovo su zahtevi koje kernel ekstenzija mora ispuniti da bi bila učitana:

  • Prilikom ulaska u režim oporavka, kernel ekstenzije moraju biti dozvoljene za učitavanje:

  • Kernel ekstenzija mora biti potpisana kernel potpisnim sertifikatom, koji može dodeliti samo Apple. Ko će detaljno pregledati kompaniju i razloge zašto je potrebno.

  • Kernel ekstenzija takođe mora biti notarizovana, Apple će moći da je proveri na prisustvo malvera.

  • Zatim, root korisnik je taj koji može učitati kernel ekstenziju i fajlovi unutar paketa moraju pripadati root-u.

  • Tokom procesa učitavanja, paket mora biti pripremljen na zaštićenoj lokaciji koja nije root: /Library/StagedExtensions (zahteva com.apple.rootless.storage.KernelExtensionManagement dozvolu).

  • Na kraju, prilikom pokušaja učitavanja, korisnik će dobiti zahtev za potvrdu i, ako se prihvati, računar mora biti restartovan da bi se učitao.

Proces učitavanja

U Catalina-i je bilo ovako: Zanimljivo je napomenuti da se proces verifikacije dešava u userland-u. Međutim, samo aplikacije sa com.apple.private.security.kext-management dozvolom mogu zatražiti od kernela da učita ekstenziju: kextcache, kextload, kextutil, kextd, syspolicyd

  1. kextutil cli pokreće proces verifikacije za učitavanje ekstenzije

  • Razgovaraće sa kextd slanjem korišćenjem Mach servisa.

  1. kextd će proveriti nekoliko stvari, kao što je potpis

  • Razgovaraće sa syspolicyd-om da proveri da li se ekstenzija može učitati.

  1. syspolicyd će zatražiti od korisnika potvrdu ako ekstenzija prethodno nije učitana.

  • syspolicyd će prijaviti rezultat kextd-u

  1. kextd će na kraju moći da kaže kernelu da učita ekstenziju

Ako kextd nije dostupan, kextutil može obaviti iste provere.

References

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Last updated