mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
5.4 KiB
5.4 KiB
Rozszerzenia jądra macOS
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną na HackTricks? A może chcesz uzyskać dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj The PEASS Family, naszą ekskluzywną kolekcję NFT
- Zdobądź oficjalne gadżety PEASS i HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, wysyłając PR do repozytorium hacktricks i repozytorium hacktricks-cloud.
Podstawowe informacje
Rozszerzenia jądra (Kexts) to pakiet o rozszerzeniu .kext
, które są ładowane bezpośrednio do przestrzeni jądra macOS, dostarczając dodatkowej funkcjonalności głównemu systemowi operacyjnemu.
Wymagania
Oczywiście, jest to tak potężne, że ładowanie rozszerzenia jądra jest skomplikowane. Oto wymagania, które musi spełnić rozszerzenie jądra, aby mogło być załadowane:
- Podczas wejścia w tryb odzyskiwania, rozszerzenia muszą być dozwolone do załadowania:
- Rozszerzenie jądra musi być podpisane certyfikatem podpisu kodu jądra, który może być przyznany tylko przez Apple. Apple szczegółowo przeanalizuje firmę i powody, dla których jest to potrzebne.
- Rozszerzenie jądra musi również być zatwierdzone przez Apple w celu sprawdzenia, czy nie zawiera złośliwego oprogramowania.
- Następnie użytkownik root jest tym, który może załadować rozszerzenie jądra, a pliki wewnątrz pakietu muszą należeć do roota.
- Podczas procesu ładowania pakiet musi być przygotowany w chronionym miejscu bez uprawnień roota:
/Library/StagedExtensions
(wymaga uprawnieniacom.apple.rootless.storage.KernelExtensionManagement
). - Ostatecznie, podczas próby załadowania użytkownik otrzyma prośbę o potwierdzenie, a jeśli zostanie zaakceptowana, komputer musi zostać ponownie uruchomiony, aby załadować rozszerzenie.
Proces ładowania
W przypadku systemu Catalina wyglądało to tak: Warto zauważyć, że proces weryfikacji odbywa się w userlandzie. Jednak tylko aplikacje posiadające uprawnienie com.apple.private.security.kext-management
mogą poprosić jądro o załadowanie rozszerzenia: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
- Wiersz poleceń
kextutil
rozpoczyna proces weryfikacji dla załadowania rozszerzenia
- Komunikuje się z
kextd
za pomocą usługi Mach.
kextd
sprawdzi kilka rzeczy, takich jak podpis
- Komunikuje się z
syspolicyd
, aby sprawdzić, czy rozszerzenie może być załadowane.
syspolicyd
poprosi użytkownika, jeśli rozszerzenie nie zostało wcześniej załadowane.
syspolicyd
przekaże wynik dokextd
kextd
w końcu będzie mógł powiedzieć jądrze, aby załadowało rozszerzenie
Jeśli kextd
nie jest dostępne, kextutil
może wykonać te same sprawdzenia.
Referencje
- https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/
- https://www.youtube.com/watch?v=hGKOskSiaQo
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną na HackTricks? A może chcesz uzyskać dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj The PEASS Family, naszą ekskluzywną kolekcję NFT
- Zdobądź oficjalne gadżety PEASS i HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, wysyłając PR do repozytorium hacktricks i repozytorium hacktricks-cloud.