Fondo
La función exportada por el gestor de tareas de Windows 10 no verifica el permiso del llamante. El usuario de cualquier autoridad puede llamar a la función para obtener el permiso de escritura del archivo de sistema sensible, y luego ocurre la mejora de privilegios.
La vulnerabilidad afecta a Windows 10 y Windows Server 2016. La EXP lanzada actualmente solo está disponible temporalmente para los sistemas x64.
Análisis
La interfaz ALPC en el gestor de tareas de sistema de Windows 10 exporta la función SchRpcSetSecurity, lo que configura un descriptor de seguridad para una tarea o carpeta.
El servicio de gestión de tareas se inicia por svchost.exe (netsvcs), y el dll correspondiente es schedsvc.dll.
En el sistema operativo Windows XP las tareas se almacenan en C:\Windows\Tasks con el sufijo .job. Las tareas de Windows 7 y las versiones posteriores se almacenan en C:\Windows\System32\Tasks en formato xml.
Tal vez por motivos de compatibilidad, la función SchRpcSetSecurity seguirá detectando si hay un archivo .job en el directorio C:\Windows\Tasks en Windows 10 y escribirá los datos DACL si existe. Si el archivo job está enlazado a un dll específico, dicho dll se escribirá en los datos DACL. Originalmente, el usuario normal solo tiene acceso al dll específico, con lo que tiene permiso de escritura, y luego escribe el código exploit en el dll. E inicia el programa correspondiente para obtener la mejora de privilegios.
Primero, encuentra un usuario normal con permisos de lectura y el sistema tiene un dll que escribe los permisos DACL. El EXP usa C:\Windows\System32\DriverStore\FileRepository\prnms003.inf_amd64_4592475aca2acf83\Amd64\printconfig.dll, y luego C: \Windows\Tasks\UpdateTask.job se enlaza a este dll.
Tras llamar a la función SchRpcSetSecurity para permitir que el usuario normal obtenga permiso para escribir el dll, escribe el exploit.dll en el archivo de recurso.
Printconfig.dll está relacionado con la impresión de sistema y no se inicia por defecto por el servicio de spooler de impresión. Por tanto, llama StartXpsPrintJob para iniciar una impresión XPS.
El programa de exploit se completa como dll, inyectado en el bloc de notas. Se encuentra que el bloc de notas creado por spoolsv.exe ya tiene permiso SYSTEM, y el printconfig.dll del sistema también se modifica en exploit.dll en el archivo de recurso.
Recordatorio
Se recomienda que los usuarios instalen 360 Total Security para defenderse de los ataques. No abra los programas de sitios desconocidos.