Обработчики (процессоры) печати - библиотеки динамических ссылок (DLL), используемые службой спулера печати Windows (spoolsv.exe), - играют важную роль в управлении заданиями печати, обработке форматов данных и макетов печати.Однако злоумышленники могут использовать их в своих злонамеренных целях, например, для достижения постоянства и повышения привилегий в системе.
Использование злоумышленниками обработчиков печати
Злоумышленники используют обработчики печати для сохранения и повышения привилегий, выполняя вредоносные библиотеки DLL во время загрузки системы. Эти DLL загружаются службой спулера печати, spoolsv.exe. Злоумышленники могут добавлять вредоносные процессоры печати с помощью API AddPrintProcessor (для этого требуется привилегия SeLoadDriverPrivilege) или путем изменения реестра Windows.
Распространенный метод заключается в добавлении ключа к этому пути, который должен указывать на вредоносную DLL.
1 | HKLM\SYSTEM\[CurrentControlSet или ControlSet001]\Control\Print\Environments\[Windows архитектура]\Print Processors\[определяется пользователем]\Driver |
Вредоносная DLL должна находиться в системном каталоге процессора печати или по относительному пути, найденному с помощью API GetPrintProcessorDirectory. После установки перезапуск службы спулера печати активирует вредоносный процессор печати. Загруженная DLL получает повышенные привилегии, поскольку эта служба работает с правами уровня SYSTEM.
Например, APT-группа Earth Lusca использовала этот метод, выполнив:
1 | reg add "HKLM\SYSTEM\ControlSet001\Control\Print\Environments\Windows x64\Print Processors\UDPrint" /v Driver /d "spool.dll" /f |
Эта команда создает новый процессор печати UDPrint, драйвером которого является вредоносная DLL-библиотека spool.dll. При загрузке системы и перезапуске спулера печати spool.dll выполняется с правами SYSTEM.
Более того, вредоносная программа PipeMon, приписываемая хакерской группе Winnti, продемонстрировала использование этой техники для достижения стойкости. Вредоносная программа устанавливает вредоносный DLL-загрузчик в каталог, где хранятся процессоры печати, и затем регистрирует его в качестве альтернативного процессора печати, изменяя значения реестра.
Точнее говоря, вредоносная программа изменяет такие записи, как «PrintFilterPipelineSvc» и «lltdsvc1», чтобы они указывали на ее вредоносные DLL, такие как «DEment.dll» и «EntAppsvc.dll».
1 2 3 | HKLM\SYSTEM\ControlSet001\Control\Print\Environments\Windows x64\Print Processors\PrintFiiterPipelineSvc\Driver = "DEment.dll" HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\lltdsvc1\Driver = "EntAppsvc.dll" |
Такая настройка обеспечивает загрузку вредоносного процессора печати при каждом запуске службы спулера печати, что происходит при каждой загрузке системы, тем самым поддерживая присутствие и контроль вредоносной программы над взломанной системой.