一个基于Pre和Post回调的开源框架,用于macOS内核监控。
[ 重磅消息 - 2019/08/28 ]
macOS Catalina 10.15 Beta 7 发布说明
https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_beta_7_release_notes
Endpoint Security
/* 经过测试,我发现这些 Kauth 接口实际上并未移除,Kemon 仍然可以工作。但我认为这份发布说明意味着通往 macOS 内核的大门正在关闭。(2019/08/28) */
Kemon 是一个开源的、基于 Pre 和 Post 回调的框架 [1],用于 macOS 内核监控 [2]。借助 Kemon 的强大功能,我们可以轻松实现 XPC/IPC 通信监控 [3]、强制访问控制(MAC)策略过滤、网络流量和内核扩展防火墙等。总的来说,从攻击者的角度来看,这个框架可以帮助实现更强大的 Rootkit;从防御的角度来看,Kemon 可以帮助构建更精细的监控能力。
我还基于这个框架实现了几个内核模糊测试工具 [4] [7],它们帮助我发现了许多内核漏洞,例如:
Apple Silicon AGX 系列 GPU、IOMobileFrameBuffer 和显示协处理器(DCP)[10]:
CVE-2024-40854、CVE-2024-44197 [33]、CVE-2024-44199 [34]、CVE-2025-24106 [35]、CVE-2025-24111 [38]、CVE-2025-24257 [36]、CVE-2025-24273 [37]、CVE-2025-43326 [39] [40] 等。
Apple 的 AMD 和 Intel 系列 GPU:
CVE-2017-7155、CVE-2017-7163、CVE-2017-13883 [11]、CVE-2018-4350、CVE-2018-4396、CVE-2018-4418 [12]、CVE-2019-8807 [13]、CVE-2022-22631、CVE-2022-22661、CVE-2022-46706 [23] 等。
Wi-Fi IO80211FamilyV1/V2 [5] [9]:
CVE-2020-9832、CVE-2020-9833、CVE-2020-9834 [15]、CVE-2020-9899 [16]、CVE-2020-10013 [17] [18] [19]、CVE-2022-26761 [24]、CVE-2022-26762 [25]、CVE-2022-32837、CVE-2022-32847、CVE-2022-32860 [26] [27] [28]、CVE-2022-32925、CVE-2022-46709 [29] [30]、CVE-2023-38610 [31] [32]、CVE-2025-43373 [41]、CVE-2026-20621 [42] [43] 等。
蓝牙主机控制器接口(HCI)[6]:
CVE-2020-3892、CVE-2020-3893、CVE-2020-3905、CVE-2020-3907、CVE-2020-3908、CVE-2020-3912、CVE-2020-9779、CVE-2020-9853 [14]、CVE-2020-9831 [15]、CVE-2020-9928、CVE-2020-9929 [16] 等。
内核内存映射机制 [8]:
CVE-2020-27914、CVE-2020-27915、CVE-2020-27936 [20] [21]、CVE-2021-30678 [22] 等。
Kemon 的功能包括:
此外,Kemon 项目还可以为任何 macOS 内核函数扩展基于 Pre 和 Post 回调的监控接口。
请使用 Xcode 项目或 makefile 构建 Kemon kext 驱动
如果你没有有效的内核证书,请先关闭 macOS 系统完整性保护(SIP)检查
使用命令 "sudo chown -R root:wheel kemon.kext" 更改 Kemon 内核扩展的所有者
使用命令 "sudo kextload kemon.kext" 安装 Kemon 内核扩展
使用命令 "sudo kextunload kemon.kext" 卸载 Kemon 内核扩展
欢迎通过创建 Issue 或发送 Pull Request 来贡献。请参阅《贡献指南》了解相关规范。
Kemon 基于 Apache License 2.0 许可。详见 LICENSE 文件。