Бесплатно Экспресс-аудит сайта:

02.07.2021

Патч для уязвимости PrintNightmare не полностью исправляет проблему

Ряд исследователей в области кибербезопасности сообщили , что патч, выпущенный компанией Microsoft для исправления уязвимости CVE-2021-1675 , устраняет только вектор атаки с повышением привилегий. Компьютерные системы, получившие патч, все еще остается уязвимыми к удаленному выполнению кода, поскольку Microsoft, похоже, объединила две различные проблемы под одним и тем же идентификатором CVE.

Напомним, 8 июня 2021 года Microsoft выпустила уведомление и исправление для критической уязвимости PrintNightmare (CVE-2021-1675) в диспетчере очереди печати Windows Print Spooler. Изначально проблема была классифицирована как уязвимость повышения привилегий, позволяющая злоумышленникам получить права администратора, но позже Microsoft обновила описание и классифицировала CVE-2021-1675 как уязвимость удаленного выполнения кода.

Китайская ИБ-фирма QiAnXin опубликовала GIF-файл, в котором впервые показана эксплуатация проблемы без каких-либо технических подробностей. Затем ИБ-специалисты из компании Sangfor опубликовали на GitHub полностью рабочий PoC-код для эксплуатации уязвимости.

Как подтвердили специалисты компании Rapid7, как минимум три эксплоита работают на полностью исправленных системах Windows Server 2019. Уязвимая служба Print Spooler включена по умолчанию в Windows Server, за исключением Windows Server Core. Следовательно, в подавляющем большинстве корпоративных сред все контроллеры домена, в том числе полностью исправленные, уязвимы к удаленному выполнению кода авторизованными злоумышленниками.

Уязвимость заключается в вызове RpcAddPrinterDriver диспетчера очереди печати Windows. Клиент использует вызов RPC для добавления драйвера на сервер, сохраняя нужный драйвер в локальном каталоге или на сервере через SMB. Затем клиент выделяет объект DRIVER_INFO_2 и инициализирует объект DRIVER_CONTAINER, который содержит выделенный объект DRIVER_INFO_2. Объект DRIVER_CONTAINER используется в вызове RpcAddPrinterDriver для загрузки драйвера. Драйвер может содержать произвольный код, который будет выполняться с правами SYSTEM на сервере. Команду может выполнить любой пользователь, прошедший аутентификацию в службе диспетчера очереди печати.

Пока Microsoft не выпустила патч, исправляющий проблему, наиболее эффективными мерами по предотвращению эксплуатации уязвимости является отключение самой службы диспетчера очереди печати. Это должно быть сделано на всех конечных точках, серверах и особенно контроллерах домена.