
Локальный эксплойт повышения привилегий для macOS (CVE-2016-1757), использующий состояние гонки в Mach IPC для обхода защит SIP и SUID, нацелен на несколько версий OS X.
Mach Race OS X Local Privilege Escalation Exploit
(c) fG! 2015, 2016, [email protected] - https://reverse.put.as
Универсальный эксплойт для OS X, использующий SUID, SIP и двоичные атрибуты (CVE-2016-1757).
Использование против SUID-бинарника:
./mach_race_server /bin/ps _compat_mode
for i in seq 0 1000000; do ./mach_race_client /bin/ps; done
Против бинарника с атрибутами для обхода 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: нет необходимости делать два отдельных приложения — достаточно одного бинарника; нужно просто выполнить fork на сервер и клиент.
Ссылки:
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 для старых версий.