hacktricks/macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-kernel-extensions.md

5.2 KiB

Vifurushi vya Kernel vya macOS

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Taarifa Msingi

Vifurushi vya Kernel (Kexts) ni vifurushi vyenye kielezo cha .kext ambavyo hulandishwa moja kwa moja katika nafasi ya kernel ya macOS, kutoa utendaji wa ziada kwa mfumo wa uendeshaji kuu.

Mahitaji

Dhahiri, hii ni nguvu sana hivyo ni vigumu kuhifadhi kifurushi cha kernel. Hizi ni mahitaji ambayo kifurushi cha kernel lazima kiyakidhi ili kuhifadhiwe:

  • Wakati wa kuingia kwenye hali ya kupona, kernel inapaswa kuruhusiwa kuhifadhiwa:
  • Kifurushi cha kernel lazima kiwe kimesainiwa na cheti cha usaini wa kanuni ya kernel, ambacho kinaweza kupewa tu na Apple. Ambayo itakagua kwa undani kampuni na sababu kwa nini inahitajika.
  • Kifurushi cha kernel pia lazima kiwe kimethibitishwa, Apple itaweza kukagua kwa zisizo za programu hasidi.
  • Kisha, mtumiaji wa root ndiye anayeweza kupakia kifurushi cha kernel na faili ndani ya kifurushi hicho lazima ziwe za root.
  • Wakati wa mchakato wa kupakia, kifurushi lazima kiwe tayari katika eneo la ulinzi lisilokuwa la root: /Library/StagedExtensions (inahitaji kibali cha com.apple.rootless.storage.KernelExtensionManagement).
  • Hatimaye, wakati wa kujaribu kuhifadhi, mtumiaji atapokea ombi la uthibitisho na, ikiwa itakubaliwa, kompyuta lazima izimishwe ili kuihifadhi.

Mchakato wa Kuhifadhi

Katika Catalina ilikuwa hivi: Ni muhimu kufahamu kuwa mchakato wa uthibitisho unatokea katika userland. Walakini, programu tu zenye kibali cha com.apple.private.security.kext-management ndizo zinaweza kuomba kernel kuhifadhi kifurushi: kextcache, kextload, kextutil, kextd, syspolicyd

  1. kextutil cli inaanza mchakato wa uthibitisho wa kuhifadhi kifurushi
  • Itazungumza na kextd kwa kutuma kutumia huduma ya Mach.
  1. kextd itachunguza mambo kadhaa, kama vile saini
  • Itazungumza na syspolicyd kucheki ikiwa kifurushi kinaweza kupakiwa.
  1. syspolicyd itamwomba mtumiaji ikiwa kifurushi hakijahifadhiwa hapo awali.
  • syspolicyd itaripoti matokeo kwa kextd
  1. kextd hatimaye itaweza kuambia kernel kuhifadhi kifurushi

Ikiwa kextd haipatikani, kextutil inaweza kufanya ukaguzi sawa.

Marejeo

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!