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 hupakiwa moja kwa moja katika nafasi ya kernel ya macOS, kutoa utendaji wa ziada kwa mfumo wa uendeshaji kuu.

Mahitaji

Kwa wazi, hii ni nguvu sana hivyo ni vigumu kupakia kifurushi cha kernel. Hizi ni mahitaji ambayo kifurushi cha kernel lazima kiyakidhi ili kipakiwe:

  • Wakati wa kuingia kwenye hali ya kupona, vifurushi vya kernel lazima viweze kupakiwa:
  • Kifurushi cha kernel lazima kiwe kimesainiwa na cheti cha usaini wa nambari ya kernel, ambacho kinaweza kupewa tu na Apple. Ambayo itakagua kwa undani kampuni na sababu kwa nini inahitajika.
  • Kifurushi cha kernel lazima pia 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 mali ya root.
  • Wakati wa mchakato wa kupakia, kifurushi lazima kiwe tayari katika eneo la ulinzi lisilo la root: /Library/StagedExtensions (inahitaji idhini ya com.apple.rootless.storage.KernelExtensionManagement).
  • Hatimaye, wakati wa kujaribu kupakia, mtumiaji atapokea ombi la uthibitisho na, ikiwa itakubaliwa, kompyuta lazima izimishwe ili kuipakia.

Mchakato wa Upakiaji

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

  1. kextutil cli inaanza mchakato wa uthibitisho wa kupakia kifurushi
  • Itazungumza na kextd kwa kutuma kutumia huduma ya Mach.
  1. kextd itachunguza mambo kadhaa, kama vile saini
  • Itazungumza na syspolicyd ili kuthibitisha ikiwa kifurushi kinaweza kupakiwa.
  1. syspolicyd itamwomba mtumiaji ikiwa kifurushi hakijapakiwa hapo awali.
  • syspolicyd itaripoti matokeo kwa kextd
  1. kextd hatimaye itaweza kuambia kernel kupakia 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)!