martes, 28 de agosto de 2018

Vulnerabilidad en el planificador de tareas de Microsoft Windows permite a un usuario local obtener privilegios de administrador

Una vulnerabilidad 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. 



Francisco Salido
fsalido@hispasec.com

Más información: