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.
A día de hoy no
existe ningún parche oficial para corregir la vulnerabilidad.
Más información:
·
Prueba
de concepto https://github.com/GossiTheDog/zeroday/blob/master/ALPC-TaskSched-LPE/ALPC-TaskSched-LPE.cpp
·
Task
Scheduler ALPC exploit high level analysis https://doublepulsar.com/task-scheduler-alpc-exploit-high-level-analysis-ff08cda6ad4f
Fuente: Hispasec