mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 21:24:06 +00:00
5.4 KiB
5.4 KiB
Rozszerzenia jądra macOS
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Czy 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ź PLANY SUBSKRYPCYJNE!
- Odkryj Rodzinę PEASS, naszą ekskluzywną kolekcję NFT
- Zdobądź oficjalny swag PEASS i HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegram albo śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakowania, wysyłając PR do repozytorium hacktricks i repozytorium hacktricks-cloud.
Podstawowe informacje
Rozszerzenia jądra (Kexts) to pakiety z rozszerzeniem .kext
, które są ładowane bezpośrednio do przestrzeni jądra macOS, zapewniając dodatkową funkcjonalność 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 zostało załadowane:
- Podczas wejścia w tryb odzyskiwania, rozszerzenia muszą być zezwolone na załadowanie:
- Rozszerzenie jądra musi być podpisane certyfikatem podpisywania kodu jądra, który może być udzielony tylko przez Apple. Firma dokładnie przeanalizuje, dlaczego jest to potrzebne.
- Rozszerzenie jądra musi również być znotaryzowane, aby Apple mogło sprawdzić je pod kątem złośliwego oprogramowania.
- Następnie użytkownik root 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 niebędącym rootem:
/Library/StagedExtensions
(wymaga uprawnieniacom.apple.rootless.storage.KernelExtensionManagement
). - Wreszcie, 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 zachodzi w userlandzie. Jednak tylko aplikacje z uprawnieniem com.apple.private.security.kext-management
mogą żądać od jądra załadowania rozszerzenia: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
kextutil
wiersz poleceń rozpoczyna proces weryfikacji ładowania rozszerzenia
- Skontaktuje się z
kextd
, wysyłając żądanie za pomocą usługi Mach.
kextd
sprawdzi kilka rzeczy, takich jak podpis
- Skontaktuje 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 przeprowadzić te same kontrole.
Referencje
- https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/
- https://www.youtube.com/watch?v=hGKOskSiaQo
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Czy 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ź PLANY SUBSKRYPCYJNE!
- Odkryj Rodzinę PEASS, naszą ekskluzywną kolekcję NFT
- Zdobądź oficjalny swag PEASS i HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegram albo śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakowania, wysyłając PR do repozytorium hacktricks i repozytorium hacktricks-cloud.