Фон
Функция, экспортированная планировщиком заданий в Windows 10, не проверяет разрешения вызывающего. Любой пользователь может вызвать функцию для получения разрешения на запись чувствительного файла системы, а затем выполнена эскалация привилегий.
Уязвимость затрагивает Windows 10 и Сервер Windows 2016. Сейчас выпущенный EXP доступен пока только для систем x64.
Анализ
Интерфейс ALPC в системном планировщике задач Windows 10 экспортирует функцию SchRpcSetSecurity, которая устанавливает дескриптор безопасности для задачи или папки.
Служба планирования задач запускается svchost.exe (netsvcs), и соответствующей dll — schedsvc.dll.
В операционной системе Windows XP задачи хранятся в C:\Windows\Tasks with the suffix .job. Задачи Windows 7 и более поздних версий хранятся в C:\Windows\System32\Tasks in xml format.
Возможно, по соображениям совместимости функция SchRpcSetSecurity все еще обнаруживает, есть ли файл .job в каталоге C: \ Windows \ Tasks в Windows 10 и записывает данные DACL, если он существует. Если файл задания привязан к конкретной DLL, то конкретная dll будет записана в данные DACL. Первоначально обычный пользователь имеет доступ только для чтения к конкретной DLL, так что он имеет разрешение на запись, а затем записывает код уязвимости в dll. И запустите соответствующую программу, чтобы получить эскалацию привилегий.
Во-первых, нужно найти обычного пользователя с правами на чтение, и в системе есть dll, которая записывает разрешения DACL. EXP использует C: \ Windows \ System32 \ DriverStore \ FileRepository \ prnms003.inf_amd64_4592475aca2acf83 \ Amd64 \ printconfig.dll, а затем привяжет C: \ Windows \ Tasks \ UpdateTask.job к этому dll.
После вызова функции SchRpcSetSecurity, чтобы обычный пользователь мог успешно получить разрешение на запись в DLL, напишите файл exploit.dll в файле ресурсов.
Printconfig.dll относится к системной печати и не запускается службой диспетчера очереди печати по умолчанию. Следовательно, вызовите StartXpsPrintJob, чтобы начать печать XPS.
Программа уязвимости компилируется как dll, которая вводится в блокнот. И обнаружит, что блокнот, созданный spoolsv.exe, уже имеет разрешение SYSTEM, а файл printconfig.dll в системе также изменяется в файле exploit.dll в файле ресурсов.
Напоминание
Пользователям рекомендуется установить 360 Total Security для защиты от атак. Не открывайте программы с неизвестных сайтов.
Подробнее о 360 Total Security