CVE-2021-1675 — это критическая уязвимость удаленного выполнения кода и локального повышения привилегий, получившая название «PrintNightmare».
Были выпущены экспериментальные эксплойты (Python, C++) для возможности удаленного выполнения кода, а также версия C# для локального повышения привилегий. Мы не видели встроенной реализации в чистом PowerShell и хотели попробовать свои силы в доработке и переработке эксплойта.
Этот сценарий PowerShell выполняет локальное повышение привилегий (LPE) с помощью техники атаки PrintNightmare.
Это было протестировано на Windows Server 2016 и Windows Server 2019.
Добавьте нового пользователя в группу локальных администраторов по умолчанию:
Импорт-модуль .cve-2021-1675.ps1 Invoke-Nightmare # добавьте пользователя `adm1n`/`P@ssw0rd` в локальную группу администраторов по умолчаниюInvoke-Nightmare -DriverName "Xerox" -NewUser "deb" -NewPassword "SuperSecure"
Предоставьте пользовательскую полезную нагрузку DLL, чтобы делать все, что захотите.
Импорт-модуль .cve-2021-1675.ps1 Invoke-Nightmare -DLL "C:absolutepathtoyourbindshell.dll"
Метод LPE не требует работы с удаленным RPC или SMB, поскольку он работает только с функциями диспетчера очереди печати.
Этот сценарий встраивает полезную нагрузку GZIP в кодировке Base64 для пользовательской DLL, которая исправляется в соответствии с вашими аргументами, чтобы легко добавить нового пользователя в группу локальных администраторов.
Этот сценарий внедряет методы из PowerSploit/PowerUp для рефлексивного доступа к API Win32.
Этот метод не перебирает все драйверы принтера в поисках подходящего пути к DLL — он просто выбирает первый драйвер и определяет соответствующий путь.