macOS Kernel Vulnerabilities
Reading time: 5 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Pwning OTA
Σε αυτή την αναφορά εξηγούνται αρκετές ευπάθειες που επέτρεψαν την παραβίαση του πυρήνα παραβιάζοντας τον ενημερωτή λογισμικού.
PoC.
2024: In-the-wild Kernel 0-days (CVE-2024-23225 & CVE-2024-23296)
Η Apple διόρθωσε δύο σφάλματα διαφθοράς μνήμης που εκμεταλλεύονταν ενεργά κατά του iOS και macOS τον Μάρτιο του 2024 (διορθώθηκε στο macOS 14.4/13.6.5/12.7.4).
- CVE-2024-23225 – Kernel
• Η εγγραφή εκτός ορίων στο υποσύστημα εικονικής μνήμης XNU επιτρέπει σε μια διαδικασία χωρίς δικαιώματα να αποκτήσει αυθαίρετη ανάγνωση/εγγραφή στον χώρο διευθύνσεων του πυρήνα, παρακάμπτοντας το PAC/KTRR.
• Προκαλείται από το userspace μέσω ενός κατασκευασμένου μηνύματος XPC που υπερχειλίζει ένα buffer στο
libxpc
, και στη συνέχεια μεταβαίνει στον πυρήνα όταν αναλύεται το μήνυμα. - CVE-2024-23296 – RTKit • Διαφθορά μνήμης στο Apple Silicon RTKit (πραγματικού χρόνου συν-επεξεργαστής). • Οι αλυσίδες εκμετάλλευσης που παρατηρήθηκαν χρησιμοποίησαν το CVE-2024-23225 για R/W πυρήνα και το CVE-2024-23296 για να ξεφύγουν από το sandbox του ασφαλούς συν-επεξεργαστή και να απενεργοποιήσουν το PAC.
Patch level detection:
sw_vers # ProductVersion 14.4 or later is patched
authenticate sudo sysctl kern.osversion # 23E214 or later for Sonoma
Αν η αναβάθμιση δεν είναι δυνατή, μετριάστε απενεργοποιώντας τις ευάλωτες υπηρεσίες:
launchctl disable system/com.apple.analyticsd
launchctl disable system/com.apple.rtcreportingd
2023: MIG Type-Confusion – CVE-2023-41075
mach_msg()
αιτήματα που αποστέλλονται σε έναν μη προνομιούχο πελάτη IOKit οδηγούν σε μια σύγχυση τύπου στον κωδικό συγκόλλησης που παράγεται από το MIG. Όταν το μήνυμα απάντησης επαναερμηνεύεται με έναν μεγαλύτερο εκτός γραμμής περιγραφέα από αυτόν που είχε αρχικά κατανεμηθεί, ένας επιτιθέμενος μπορεί να επιτύχει έναν ελεγχόμενο OOB write σε ζώνες σωρού πυρήνα και τελικά να
κλιμακώσει σε 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:
- Spraying
ipc_kmsg
buffers with active port pointers. - Overwriting
ip_kobject
of a dangling port. - Jumping to shellcode mapped at a PAC-forged address using
mprotect()
.
2024-2025: SIP Bypass through Third-party Kexts – CVE-2024-44243 (aka “Sigma”)
Οι ερευνητές ασφαλείας από τη Microsoft έδειξαν ότι ο υψηλά προνομιούχος δαίμονας storagekitd
μπορεί να αναγκαστεί να φορτώσει μια μη υπογεγραμμένη επέκταση πυρήνα και έτσι να απενεργοποιήσει εντελώς την Προστασία Ακεραιότητας Συστήματος (SIP) σε πλήρως ενημερωμένο macOS (πριν από την έκδοση 15.2). Η ροή της επίθεσης είναι:
- Κατάχρηση του ιδιωτικού δικαιώματος
com.apple.storagekitd.kernel-management
για να δημιουργηθεί ένας βοηθός υπό τον έλεγχο του επιτιθέμενου. - Ο βοηθός καλεί
IOService::AddPersonalitiesFromKernelModule
με ένα κατασκευασμένο λεξικό πληροφοριών που δείχνει σε ένα κακόβουλο πακέτο kext. - Επειδή οι έλεγχοι εμπιστοσύνης SIP εκτελούνται μετά που το kext έχει σταλεί από τον
storagekitd
, ο κώδικας εκτελείται σε ring-0 πριν από την επικύρωση και η SIP μπορεί να απενεργοποιηθεί μεcsr_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
Άμεση αποκατάσταση είναι η ενημέρωση σε macOS Sequoia 15.2 ή νεότερη έκδοση.
Γρήγορο Φύλλο Συμβουλών Αρίθμησης
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 που στοχεύει σε MIG subsystems (
github.com/preshing/luftrauser
). - oob-executor – IPC out-of-bounds primitive generator που χρησιμοποιείται στην έρευνα CVE-2024-23225.
- kmutil inspect – Ενσωματωμένο εργαλείο της Apple (macOS 11+) για στατική ανάλυση kexts πριν τη φόρτωση:
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
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.