
Эксплойт локального повышения привилегий на PowerShell для PrintNightmare (CVE-2021-34527), нацеленный на Windows Print Spooler. Встраивает пользовательский DLL-пейлоад для добавления локального администратора через рефлексивные вызовы Win32 API.
Caleb Stewart | John Hammond | 1 июня 2021 года
Обновление от 2 июня 2021 г.: Microsoft опубликовала рекомендацию по CVE-2021-34527, правильно назвав этот конкретный идентификатор уязвимостью PrintNightmare. Ранее сообщество предполагало, что CVE-2021-1675 "был PrintNightmare", так как патч от 8 июня не решил эту проблему. Этот репозиторий идентичен оригиналу только с другим именем CVE.
CVE-2021-34527 — это критическая уязвимость удаленного выполнения кода и локального повышения привилегий, получившая название «PrintNightmare».
Эксплойты Proof-of-concept были опубликованы (Python, C++) для возможности удаленного выполнения кода и версия на C# для локального повышения привилегий. Мы не видели нативной реализации на чистом PowerShell и захотели попробовать свои силы в доработке и переработке эксплойта.
Этот скрипт PowerShell выполняет локальное повышение привилегий (LPE) с помощью атакующей техники PrintNightmare.

Это было протестировано на Windows Server 2016 и Windows Server 2019.
Добавление нового пользователя в локальную группу администраторов по умолчанию:
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare # add user `adm1n`/`P@ssw0rd` in the local admin group by default
Invoke-Nightmare -DriverName "Xerox" -NewUser "john" -NewPassword "SuperSecure"
Укажите собственный DLL-пейлоад для выполнения любых других действий.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"