macOS Kernel Vulnerabilities
Reading time: 7 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Pwning OTA
このレポートでは ソフトウェアアップデーターを妥協させるカーネルの脆弱性がいくつか説明されています。
PoC。
2024: 実際の環境でのカーネル0-day (CVE-2024-23225 & CVE-2024-23296)
Appleは2024年3月にiOSとmacOSに対して積極的に悪用されていた2つのメモリ破損バグを修正しました(macOS 14.4/13.6.5/12.7.4で修正)。
- CVE-2024-23225 – カーネル
• XNU仮想メモリサブシステムにおけるバッファ外書き込みにより、特権のないプロセスがカーネルアドレス空間で任意の読み書きを取得でき、PAC/KTRRをバイパスします。
•
libxpc
内のバッファをオーバーフローさせるように作成されたXPCメッセージを介してユーザースペースからトリガーされ、メッセージが解析されるとカーネルにピボットします。 - CVE-2024-23296 – RTKit • Apple Silicon RTKit(リアルタイムコプロセッサ)におけるメモリ破損。 • 観察された悪用チェーンは、カーネルのR/WにCVE-2024-23225を使用し、PACを無効にするためにCVE-2024-23296を使用してセキュアコプロセッササンドボックスから脱出しました。
パッチレベル検出:
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タイプ混乱 – CVE-2023-41075
mach_msg()
リクエストが特権のないIOKitユーザクライアントに送信されると、MIG生成のグルーコードにおいてタイプ混乱が発生します。返信メッセージが元々割り当てられたよりも大きなアウトオブラインディスクリプタで再解釈されると、攻撃者はカーネルヒープゾーンへの制御されたOOB書き込みを達成し、最終的にroot
に昇格することができます。
プリミティブアウトライン(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, ...);
公開エクスプロイトは、バグを武器化するために以下の手順を踏みます:
- アクティブポートポインタで
ipc_kmsg
バッファをスプレーします。 - ダングリングポートの
ip_kobject
を上書きします。 mprotect()
を使用して PACで偽造されたアドレスにマッピングされたシェルコードにジャンプします。
2024-2025: サードパーティKextを通じたSIPバイパス – CVE-2024-44243(通称「Sigma」)
Microsoftのセキュリティ研究者は、高特権デーモン storagekitd
が署名されていないカーネル拡張をロードするよう強制され、完全にパッチが適用されたmacOS(15.2以前)で**システムインテグリティ保護(SIP)**を完全に無効にできることを示しました。攻撃の流れは以下の通りです:
- プライベート権限
com.apple.storagekitd.kernel-management
を悪用して、攻撃者の制御下にヘルパーを生成します。 - ヘルパーは、悪意のあるkextバンドルを指す作成された情報辞書を使用して
IOService::AddPersonalitiesFromKernelModule
を呼び出します。 - SIPの信頼性チェックは、
storagekitd
によってkextがステージングされた後に実行されるため、検証前にコードがリング0で実行され、csr_set_allow_all(1)
を使用してSIPをオフにすることができます。
検出のヒント:
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メッセージファズァーで、MIGサブシステムをターゲットにします (
github.com/preshing/luftrauser
)。 - oob-executor – CVE-2024-23225の研究で使用されるIPCアウトオブバウンズプリミティブジェネレーター。
- kmutil inspect – kextをロードする前に静的に分析するためのAppleの組み込みユーティリティ(macOS 11+):
kmutil inspect -b io.kext.bundleID
。
References
- Apple. “macOS Sonoma 14.4のセキュリティコンテンツについて。” https://support.apple.com/en-us/120895
- Microsoft Security Blog. “CVE-2024-44243の分析、カーネル拡張を通じたmacOSシステム整合性保護のバイパス。” 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ハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。