macOS Kernel Extensions

HackTricks'i Destekleyin

Temel Bilgiler

Kernel uzantıları (Kexts), macOS çekirdek alanına doğrudan yüklenen ve ana işletim sistemine ek işlevsellik sağlayan .kext uzantısına sahip paketlerdir.

Gereksinimler

Açıkça, bu kadar güçlü olduğu için bir kernel uzantısını yüklemek karmaşıktır. Bir kernel uzantısının yüklenebilmesi için karşılaması gereken gereksinimler şunlardır:

  • kurtarma moduna girerken, kernel uzantılarının yüklenmesine izin verilmelidir:

  • Kernel uzantısı, yalnızca Apple tarafından verilebilen bir kernel kod imzalama sertifikası ile imzalanmış olmalıdır. Şirketi ve neden gerekli olduğunu detaylı bir şekilde inceleyecek olan kimdir.

  • Kernel uzantısı ayrıca notarize edilmelidir, Apple bunu kötü amaçlı yazılım için kontrol edebilecektir.

  • Ardından, root kullanıcısı kernel uzantısını yükleyebilen kişidir ve paket içindeki dosyalar root'a ait olmalıdır.

  • Yükleme sürecinde, paket korumalı bir kök olmayan konumda hazırlanmalıdır: /Library/StagedExtensions (bu, com.apple.rootless.storage.KernelExtensionManagement iznini gerektirir).

  • Son olarak, yüklemeye çalışırken, kullanıcı bir onay isteği alacaktır ve kabul edilirse, bilgisayar yeniden başlatılmalıdır.

Yükleme süreci

Catalina'da böyleydi: doğrulama sürecinin kullanıcı alanında gerçekleştiğini belirtmek ilginçtir. Ancak, yalnızca com.apple.private.security.kext-management iznine sahip uygulamalar kernel'den bir uzantıyı yüklemesini isteyebilir: kextcache, kextload, kextutil, kextd, syspolicyd

  1. kextutil cli bir uzantıyı yüklemek için doğrulama sürecini başlatır

  • kextd ile Mach servisi kullanarak iletişim kuracaktır.

  1. kextd birkaç şeyi kontrol edecektir, örneğin imzayı

  • Uzantının yüklenip yüklenemeyeceğini kontrol etmek için syspolicyd ile iletişim kuracaktır.

  1. syspolicyd, uzantı daha önce yüklenmemişse kullanıcıya soracaktır.

  • syspolicyd, sonucu kextd'ye bildirecektir.

  1. kextd nihayetinde kernel'e uzantıyı yüklemesini söyleyebilecektir.

Eğer kextd mevcut değilse, kextutil aynı kontrolleri gerçekleştirebilir.

Referanslar

HackTricks'i Destekleyin

Last updated