Una vulnerabilidad ( 0-Day ) en el planificador de tareas de Microsoft Windows permitiría escalar privilegios a través de uno de los métodos de su API.
La investigadora de seguridad @SandboxScaper publicó el pasado 27 de agosto un “0-day” que permitiría a un usuario obtener privilegios de sistema a través de uno de los métodos de la API del planificador de tareas de Microsoft Windows.
Las tareas creadas por el planificador de tareas escribirán el correspondiente fichero en ‘c:\windows\system32\tasks’, pero además se genera un fichero .job en ‘c:\windows\tasks’. Carpeta a la que un usuario normal (e incluso invitado) tiene acceso de escritura.
La vulnerabilidad en el método ‘SchRpcSetSecurity’ permitiría modificar los permisos de cualquier fichero localizado en ‘c:\windows\tasks’. Como decíamos, esta carpeta es accesible por cualquier usuario, por lo que podríamos crear un enlace permanente a algún fichero arbitrario y modificar la DACL (lista de control de acceso) a ese elemento.
long _SchRpcSetSecurity(
[in][string] wchar_t* arg_1, //Task name
[in][string] wchar_t* arg_2, //Security Descriptor string
[in]long arg_3);
En la prueba de concepto publicada por @SandboxScaper se utiliza la DLL ‘PrintConfig.dll’ para secuestrar el proceso ‘spoolsv.exe’ y llamar a otros procesos con privilegios de sistema.
Procesos generados por ‘spoolsv.exe’. Créditos a Will Dormann
A día de hoy no existe ningún parche oficial para corregir la vulnerabilidad.
https://github.com/GossiTheDog/zeroday/blob/master/ALPC-TaskSched-LPE/ALPC-TaskSched-LPE.cppTask Scheduler ALPC exploit high level analysis
https://doublepulsar.com/task-scheduler-alpc-exploit-high-level-analysis-ff08cda6ad4f