Как повышать и сохранять универсальные привилегии

Как повышать и сохранять универсальные привилегии

 
Диспетчер очереди печати отвечает за управление и обработку заданий принтера. Он работает как служба с привилегиями уровня SYSTEM в средах Windows. Злоупотребление службой диспетчера очереди печати — не новость, и успешная эксплуатация (PrintNightmare) может позволить локальные привилегии и эскалацию домена, поскольку служба по умолчанию работает на контроллерах домена. За исключением этих сценариев, он также может использоваться как универсальное повышение привилегий и постоянство, позволяющее получать привилегии уровня СИСТЕМЫ на каждом хосте в сети путем совместного использования произвольного принтера по сети. Поэтому в данной статье расберем как повышать и сохранять универсальные привилегии.
 

Бенджамин Делпи выпустил поддельный драйвер принтера как часть Mimikatz, который можно использовать для демонстрации этих сценариев. Следующий фрагмент PowerShell необходимо выполнить в скомпрометированной системе, в которой был получен доступ локального администратора, чтобы сделать систему сервером печати. Будет добавлен новый принтер с одним из встроенных драйверов Windows (Generic). Вредоносный драйвер (mimispool.dll) будет скопирован из Mimikatz в папку драйверов принтера, и будут созданы необходимые ключи реестра, которые будут указывать на вредоносный драйвер.
 
Как повышать и сохранять универсальные привилегии
 
Как повышать и сохранять универсальные привилегии
 
Создать общий принтер
 

Принтер будет виден в Управлении печатью.

Как повышать и сохранять универсальные привилегии

Поддельный принтер

К новому принтеру будет предоставлен общий доступ, поэтому к нему можно будет получить доступ из любой системы в сети.

Как повышать и сохранять универсальные привилегии

Общий принтер

Как обычный пользователь, аутентифицируемый на любом узле в сети и выполняющий следующие действия из консоли PowerShell, соединит поддельный принтер с узлом. Во время подключения также будут загружены вредоносные драйверы.

Как повышать и сохранять универсальные привилегии

Как повышать и сохранять универсальные привилегии

Клиент — подключение к принтеру через PowerShell

В качестве альтернативы это соединение можно установить через проводник Windows и дважды щелкнуть сетевой принтер.

Как повышать и сохранять универсальные привилегии

Установка принтера в Windows

После завершения установки вредоносный драйвер также будет загружен, и любой произвольный код будет выполняться в контексте с повышенными правами (SYSTEM). По умолчанию «mimispool.dll» открывает командную строку с повышенными привилегиями. Даже если пользователь инициирует установку, код будет выполняться с повышенными привилегиями, поскольку служба диспетчера очереди печати, работающая как SYSTEM, фактически выполнит установку.

Принтер — повышенная командная строка

Как повышать и сохранять универсальные привилегии

Повышение привилегий через принтер

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

C:\Windows\System32\spool\drivers\x64\3\

Полезно понять, как работает техника на заднем плане. Первоначально процесс spoolsv.exe скопирует файл драйвера из общей папки печати.

CreateFile – mimispool.dl

Произвольный файл драйвера будет скопирован в локальную папку драйверов.

Копирование mimispool.dll локально

Ключи реестра, связанные с принтером, будут отображаться локально в той же структуре, что и система, которая действует как сервер печати.

Ключи реестра

Процесс spoolsv.exe запускается от имени пользователя SYSTEM. Поэтому файлы и ключи реестра можно копировать в привилегированные места, такие как HKLM и Windows System32.

spoolsv.exe Процесс

Spoolsv — ключ реестра mimispool.dll

После завершения установки сетевого принтера в системе будет выполнен произвольный код. По умолчанию драйвер предназначен для открытия командной строки с точки зрения пользователя СИСТЕМЫ. Родительский процесс имеет код PID 1648.

Процесс cmd

Изучив процессы системы, можно увидеть, что процесс с PID 1648 принадлежит «spoolsv.exe», что доказывает, как произошло повышение привилегий.

Процесс spoolsv.exe

Заключение

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

 

 

 

 

 

 

 

 

 
 
 

 

 
 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.