macOS Kernel Extensions

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

Temel Bilgiler

Kernel uzantıları (Kexts), ana işletim sistemine ek işlevsellik sağlayan .kext uzantılı paketler olan ve doğrudan macOS çekirdek alanına yüklenen bileşenlerdir.

Gereksinimler

Bu kadar güçlü olduğundan açıkça bir çekirdek uzantısını yüklemek karmaşıktır. Bir çekirdek uzantısının yüklenmesi gereken gereksinimler şunlardır:

  • Kurtarma moduna girildiğinde, çekirdek uzantıların yüklenmesine izin verilmelidir:

  • Çekirdek uzantısı, yalnızca Apple tarafından verilebilen bir çekirdek kodu imzalama sertifikası ile imzalanmış olmalıdır. Şirketi ve neden gerekli olduğunu detaylı olarak inceleyecek olan Apple.

  • Çekirdek uzantısı ayrıca notarized olmalıdır, Apple tarafından kötü amaçlı yazılım açısından kontrol edilebilir.

  • Ardından, root kullanıcısı, çekirdek uzantısını yükleyebilen ve paket içindeki dosyaların root'a ait olması gereken kişidir.

  • Yükleme işlemi sırasında, paketin korunan bir kök olmayan konumda hazırlanmış olması gerekir: /Library/StagedExtensions (com.apple.rootless.storage.KernelExtensionManagement iznini gerektirir).

  • Son olarak, yüklemeye çalışıldığında, kullanıcı bir onay isteği alacaktır ve kabul edilirse, bilgisayarın yüklenmesi için yeniden başlatılması gerekir.

Yükleme işlemi

Catalina'da böyleydi: Doğrulama işlemi userland 'da gerçekleşir. Ancak, yalnızca com.apple.private.security.kext-management iznine sahip uygulamalar, çekirdeğe bir uzantı yüklemesini istemek için çekirdeğe başvurabilir: kextcache, kextload, kextutil, kextd, syspolicyd

  1. kextutil cli, bir uzantının yüklenmesi için doğrulama işlemini başlatır

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

  1. kextd, imza gibi birçok şeyi kontrol edecektir.

  • syspolicyd ile iletişim kurarak uzantının yüklenip yüklenemeyeceğini kontrol edecektir.

  1. syspolicyd, uzantının daha önce yüklenmediyse kullanıcıya bir onay isteği gönderecektir.

  • syspolicyd, sonucu kextd 'ye bildirecektir**

  1. kextd, sonunda çekirdeğe uzantıyı yüklemesini söyleyebilecektir

kextd mevcut değilse, kextutil aynı kontrolleri yapabilir.

Referanslar

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

Last updated