macOS Kernel Vulnerabilities
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pwning OTA
U ovom izveštaju objašnjene su nekoliko ranjivosti koje su omogućile kompromitovanje kernela kompromitujući softverski ažurirač.
PoC.
2024: U divljini Kernel 0-dana (CVE-2024-23225 & CVE-2024-23296)
Apple je zakrpio dve greške u korupciji memorije koje su aktivno korišćene protiv iOS-a i macOS-a u martu 2024 (ispravljeno u macOS 14.4/13.6.5/12.7.4).
- CVE-2024-23225 – Kernel
• Pisanje van granica u XNU virtuelnom memorijskom podsistemu omogućava neprivilegovanom procesu da dobije proizvoljno čitanje/pisanje u adresnom prostoru kernela, zaobilazeći PAC/KTRR.
• Aktivira se iz korisničkog prostora putem kreirane XPC poruke koja preplavljuje bafer u
libxpc
, a zatim prelazi u kernel kada se poruka analizira. - CVE-2024-23296 – RTKit • Korupcija memorije u Apple Silicon RTKit (real-time ko-procesor). • Lanac eksploatacije koji je primećen koristio je CVE-2024-23225 za kernel R/W i CVE-2024-23296 za izlazak iz sandboxes-a sigurnog ko-procesora i onemogućavanje PAC.
Patch level detection:
sw_vers # ProductVersion 14.4 or later is patched
authenticate sudo sysctl kern.osversion # 23E214 or later for Sonoma
Ako nadogradnja nije moguća, ublažite problem onemogućavanjem ranjivih usluga:
launchctl disable system/com.apple.analyticsd
launchctl disable system/com.apple.rtcreportingd
2023: MIG Type-Confusion – CVE-2023-41075
mach_msg()
zahtevi poslati neprivilegovanom IOKit korisničkom klijentu dovode do tipa konfuzije u MIG generisanom lepljivom kodu. Kada se odgovor poruka ponovo interpretira sa većim van-linijskim deskriptorom nego što je prvobitno alocirano, napadač može postići kontrolisano OOB pisanje u kernel heap zone i na kraju
escalirati na root
.
Primitive outline (Sonoma 14.0-14.1, Ventura 13.5-13.6):
// userspace stub
typed_port_t p = get_user_client();
uint8_t spray[0x4000] = {0x41};
// heap-spray via IOSurfaceFastSetValue
io_service_open_extended(...);
// malformed MIG message triggers confusion
mach_msg(&msg.header, MACH_SEND_MSG|MACH_RCV_MSG, ...);
Public exploits weaponise the bug by:
- Prskanjem
ipc_kmsg
bafera sa aktivnim pokazivačima portova. - Prepisivanjem
ip_kobject
od visećeg porta. - Skakanjem na shellcode mapiran na PAC-falsifikovanu adresu koristeći
mprotect()
.
2024-2025: SIP Bypass kroz treće strane Kexts – CVE-2024-44243 (poznat kao “Sigma”)
Istraživači bezbednosti iz Microsoft-a su pokazali da se visoko privilegovani demon storagekitd
može primorati da učita nepotpisanu kernel ekstenziju i tako potpuno onemogući System Integrity Protection (SIP) na potpuno zakrčenom macOS-u (pre 15.2). Tok napada je:
- Zloupotreba privatnog prava
com.apple.storagekitd.kernel-management
da se pokrene pomoćni program pod kontrolom napadača. - Pomoćni program poziva
IOService::AddPersonalitiesFromKernelModule
sa kreiranim info-rečnikom koji upućuje na zloćudni kext paket. - Pošto se SIP provere poverenja vrše nakon što
storagekitd
postavi kext, kod se izvršava u ring-0 pre validacije i SIP se može isključiti sacsr_set_allow_all(1)
.
Detection tips:
kmutil showloaded | grep -v com.apple # list non-Apple kexts
log stream --style syslog --predicate 'senderImagePath contains "storagekitd"' # watch for suspicious child procs
Odmah rešenje je ažurirati na macOS Sequoia 15.2 ili noviji.
Brza enumeracija Cheatsheet
uname -a # Kernel build
kmutil showloaded # List loaded kernel extensions
kextstat | grep -v com.apple # Legacy (pre-Catalina) kext list
sysctl kern.kaslr_enable # Verify KASLR is ON (should be 1)
csrutil status # Check SIP from RecoveryOS
spctl --status # Confirms Gatekeeper state
Fuzzing & Research Tools
- Luftrauser – Mach message fuzzer koji cilja MIG pod sisteme (
github.com/preshing/luftrauser
). - oob-executor – IPC out-of-bounds primitivni generator korišćen u istraživanju CVE-2024-23225.
- kmutil inspect – Ugrađeni Apple alat (macOS 11+) za statičku analizu kext-ova pre učitavanja:
kmutil inspect -b io.kext.bundleID
.
References
- Apple. “About the security content of macOS Sonoma 14.4.” https://support.apple.com/en-us/120895
- Microsoft Security Blog. “Analyzing CVE-2024-44243, a macOS System Integrity Protection bypass through kernel extensions.” https://www.microsoft.com/en-us/security/blog/2025/01/13/analyzing-cve-2024-44243-a-macos-system-integrity-protection-bypass-through-kernel-extensions/
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.