Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PrintSpoofer-ReflectiveDLL — Уязвимость повышения привилегий в Windows Print Spooler (CVE-2019-1040/CVE-2019-1019) реализована в виде Reflective DLL для тестирования на проникновение. | Kitploit
Инструменты/GitHubGitHub/jonyfilc/printspoofer-reflectivedll
Повышение привилегийЭксплуатацияЛатеральное перемещениеПост-эксплуатацияТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubjonyfilc/printspoofer-reflectivedll

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PrintSpoofer-ReflectiveDLL

Уязвимость повышения привилегий в Windows Print Spooler (CVE-2019-1040/CVE-2019-1019) реализована в виде Reflective DLL для тестирования на проникновение.

Репозиторий
235 дней назадЕщё не проверено

Детали PrintSpoofer

License Platform C++

PrintSpoofer — это инструмент для локального повышения привилегий, использующий уязвимость в службе диспетчера печати Windows (CVE-2019-1040 / CVE-2019-1019). Данный проект реализует эксплойт PrintSpoofer в формате Reflective DLL, что делает его пригодным для использования с фреймворками для тестирования на проникновение, такими как Cobalt Strike.

Содержание

  • Обзор
  • Как это работает
  • Технические подробности
  • Требования
  • Сборка
  • Использование
  • Структура проекта
  • Отказ от ответственности
  • Ссылки

Обзор

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

Возможности

  • Формат Reflective DLL — может быть загружен полностью в память без касания диска
  • Работает с привилегией SE_IMPERSONATE_NAME
  • Взаимодействует со службой диспетчера печати по протоколу RPC
  • Использует механизм именованных каналов для олицетворения токенов

Как это работает

PrintSpoofer работает, выполняя следующие шаги:

1. Проверка привилегий

Сначала эксплойт проверяет, имеет ли текущий токен привилегию SE_IMPERSONATE_NAME. Она необходима для олицетворения токена другого пользователя.

2. Создание именованного канала

Создаётся именованный канал с использованием случайного UUID. Путь к каналу:

root@kitploit:~
\\.\pipe\<UUID>\pipe\spoolss

3. Ожидание подключения к каналу

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

4. Запуск подключения диспетчера печати

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

5. Олицетворение токена

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

6. Привилегированная операция

С токеном SYSTEM теперь можно выполнять действия с высокими привилегиями.

Технические подробности

Уязвимость диспетчера печати

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

RPC-взаимодействие

Проект взаимодействует со службой диспетчера печати, используя протокол MS-RPRN (Print System Remote Protocol). Этот протокол описан в файле IDL (язык описания интерфейсов) и обеспечивает выполнение RPC-вызовов.

Внедрение Reflective DLL

Reflective DLL ведёт себя иначе, чем стандартные DLL:

  • Он может быть загружен непосредственно в память без касания диска
  • Не требует API LoadLibrary
  • Вручную разбирает и загружает формат PE (Portable Executable)

Требования

Для сборки

  • Visual Studio 2022 (рабочая нагрузка «Разработка классических приложений на C++»)
  • Windows 10/11

Для запуска

  • Windows 10/11
  • Запущенная служба диспетчера печати
  • Привилегия SE_IMPERSONATE_NAME (по умолчанию доступна большинству обычных пользователей)
  • Cobalt Strike или аналогичный фреймворк (необязательно)

Сборка

Сборка с помощью Visual Studio

  1. Откройте файл PrintSpoofer.sln в Visual Studio.

  2. Выберите Платформу решения и Конфигурацию:

    • Платформа: x64 или Win32 (в зависимости от целевой архитектуры)
    • Конфигурация: Release (продуктовая) или Debug (отладочная)
  3. Выполните сборку решения через «Собрать решение» (Ctrl+Shift+B).

  4. Скомпилированная DLL будет расположена по адресу:

    root@kitploit:~
    PrintSpoofer\x64\Release\PrintSpoofer.dll   (для x64)
    PrintSpoofer\Win32\Release\PrintSpoofer.dll (для x86)
    

Параметры сборки

В проекте используются следующие определения препроцессора:

  • REFLECTIVE_DLL_EXPORTS: Включает экспортные функции Reflective DLL
  • REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN: Использует пользовательский DllMain
  • REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR: Включает LoadRemoteLibraryR (в режиме Release)

Использование

Использование с Cobalt Strike

PrintSpoofer можно использовать с командой elevate в Cobalt Strike:

root@kitploit:~
elevate PrintSpoofer LISTENER_NAME

Где:

  • PrintSpoofer: Имя модуля повышения привилегий
  • LISTENER_NAME: Слушатель, который примет сессию с повышенными привилегиями

Ручное использование

DLL может быть загружена вручную с помощью методов внедрения Reflective DLL.

Ожидаемый результат

Успешное выполнение эксплойта покажет:

root@kitploit:~
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] ImpersonateNamedPipeClient OK
[+] Exploit successfully, enjoy your shell

Описание файлов

dllmain.cpp

  • Точка входа DLL (DllMain)
  • Управляет логикой эксплойта
  • Обрабатывает функциональность, специфичную для Reflective DLL

PrintSpoofer.cpp

  • CheckAndEnablePrivilege: Проверяет и включает привилегии токена
  • GenerateRandomPipeName: Генерирует имена каналов на основе случайных UUID
  • CreateSpoolNamedPipe: Создаёт именованные каналы и настраивает безопасность
  • ConnectSpoolNamedPipe: Подготавливает каналы для асинхронных подключений
  • TriggerNamedPipeConnection: Создаёт поток для запуска подключения диспетчера печати
  • TriggerNamedPipeConnectionThread: Выполняет RPC-вызов
  • GetSystem: Выполняет олицетворение токена

ms-rprn.idl

  • IDL-определение протокола MS-RPRN от Microsoft
  • Обрабатывается компилятором MIDL для генерации RPC-заглушек

ReflectiveLoader.cpp

  • Реализует разбор PE и загрузку в память для внедрения Reflective DLL

Отказ от ответственности

Этот инструмент предназначен только для образовательных целей и для авторизованного тестирования на проникновение.

Ссылки

  • https://www.itm4n.fr/printspoofer-abusing-impersonate-privileges/
  • https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation

Лицензия

Этот проект лицензирован по лицензии MIT. Для получения дополнительной информации см. файл LICENSE.

Скачать инструмент