Все Windows, выпущенные с 1996 г., можно взломать простым и необычным способом

- КиТ :: Будь в СЕТИ!

Исследователи безопасности Алекс Ионеску (Alex Ionescu) и Ярден Шафир (Yarden Shafir) опубликовали детальные сведения об опасной уязвимости в службе печати операционной системы Windows. Согласно представленному специалистами отчету, проблема присутствует во всех версиях ОС корпорации Microsoft, начиная с Windows NT 4, релиз которой состоялся летом 1996 г.

Уязвимость, получившая название Printdemon, связана с диспетчером очереди печати Windows или Windows Print Spooler. Зная о ней, злоумышленник с локальным доступом без особых привилегий, по сути, с помощью лишь одной команды в интегрированной среде сценариев Powershell может получить права администратора. Эксплуатация бреши возможна и в системах, не имеющих данного инструмента, но для этого потребуется несколько больше усилий.

Первыми Printdemon обнаружили специалисты компании Safebreach Labs Пелег Хадар (Peleg Hadar) и Томер Бар (Tomer Bar), сообщившие о ней Microsoft. Уязвимость CVE-2020-1048 была исправлена в обновлении безопасности, вышедшем в рамках традиционного «патчевого вторника» (Patch Tuesday), который в этот раз выпал на 13 мая 2020 г.

Эксплуатация уязвимости

По задумке разработчиков, служба Windows Print Spooler должна принимать задания на печать от любых запущенных приложений, вне зависимости от того, с какими полномочиями они выполняются.

Принцип эксплуатации уязвимости заключается в том, что злоумышленник, используя любую доступную учетную запись в Windows, может «отправить на печать» бинарный код собственной программы через порт, который на самом деле представляет собой файл, к примеру, системной библиотеки.

Microsoft исправила уязвимость Printdemon, которая затрагивает все версии Windows, выпущенные с 1996 г.

Чтобы получить права на запись в такой файл, принудительно вызывается сбой службы Windows Print Spooler, в результате чего она автоматически перезапускается, причем уже с самыми широкими привилегиями (SYSTEM). Затем процесс печати в системный файл успешно доводится до завершения.

Напомним, при добавлении принтера в качестве порта вывода на печать, помимо обычных USB/LPT-интерфейсов или сетевого порта TCP, можно указать локальный файл. Авторы особо подчеркивают, что «печать в файл» и «печать через порт, указывающий на файл» не одно и то же. В рамках Windows Print Spooler это две принципиально разные концепции, причем последняя не очень хорошо документирована.

Основная проблема для злоумышленника в данном случае заключается в том, что ему необходимо обладать теми же привилегиями, которые нужны для доступа к файлу-порту, в который будет «заливаться» вредоносный код.

Однако, как выяснили ИБ-специалисты, и эта трудность решается, причем элементарно. В частности, при использовании Powershell команды "Add-PrinterPort -Name c:\windows\system32\ualapi.dll" будет достаточно, чтобы добавить в систему порт, указывающий на системную библиотеку ualapi.dll. После чего можно легко добавить в систему новый виртуальный принтер, который будет «печатать» прямо в нее от имени любого пользователя. Это возможно из-за ошибочной реализации проверки корректности имени порта – она в Windows осуществляется лишь на уровне пользовательского интерфейса (клиентской части). Используя же инструменты вроде того же Powershell, к серверной части службы управления очередью печати можно обратиться напрямую.

ПодпискаБудь в СЕТИ! Новости социальных сетей - всегда актуальное
 
Группы: ВК | OK | Tg