探索OSX内核漏洞的利器——Passive Fuzzing Framework
项目介绍
PayMe
是一款基于被动内联挂钩机制的OSX内核模糊测试框架。它是一个典型的内核驱动程序,对与IOKit框架和内核服务相关的导入API进行了内联挂钩。当内核崩溃时,你可以收集内核转储并重现漏洞。该项目由开发者@Flyic(moony li)创建,并在PacSec 2016东京大会上详细介绍了其“主动模糊测试作为被动模糊测试的补充”的主题。
项目技术分析
PayMe
构建于the_flying_circus
OS X rootkit之上,该rootkit由fG!编写。这个框架通过在内核模式下进行被动内联挂钩,以监控系统关键API的调用,从而实现模糊测试。它能捕获可能触发内核级别的错误操作,帮助研究人员发现潜在的安全漏洞。
项目及技术应用场景
这款框架适用于Mac Pro、Mac Air等流行的OSX版本。经过测试,从10.11到10.11.6的内核修订版对被动模糊测试的影响较小或无影响。它的主要用途包括:
- 内核漏洞发现:对于安全研究人员来说,
PayMe
是寻找和验证OSX内核漏洞的理想工具。 - 开发人员调试:软件开发者可以利用它来测试代码对内核稳定性的影响。
- 安全性审计:组织和个人可以通过它定期检查系统的脆弱性。
项目特点
- 内联挂钩:通过对关键API进行内联挂钩,
PayMe
可以在不中断正常系统功能的情况下监控系统行为。 - 兼容性强:支持从10.11到10.11.6的OSX版本,适应多种硬件配置。
- 风险提示:加载内核驱动可能导致突然的内核崩溃,需谨慎使用,建议在备份数据后进行测试。
- 便捷部署:提供了快速启动和全功能启动两种方式,即使对于没有经验的用户也相对友好。
- 资料丰富:附带了收集到的内核转储文件、日志和PoC,便于学习和研究。
使用注意事项
由于PayMe
可能会导致内核崩溃,请务必做好数据备份。此外,全功能启动方法需要另一台调试器OSX机器和Thunderbolt线缆。在开始前,请仔细阅读项目文档中的说明和步骤。
总体而言,PayMe
为OSX内核安全研究提供了一种强大且高效的工具。如果你致力于OSX平台的安全工作或者对此领域感兴趣,不妨尝试一下这款开源项目,它将助你一臂之力。