
Exploit de escalada de privilegios local en PowerShell para PrintNightmare (CVE-2021-34527) dirigido al Spooler de Impresión de Windows. Incrusta un payload DLL personalizado para agregar un usuario administrador local mediante llamadas reflexivas a la API Win32.
Caleb Stewart | John Hammond | 1 de junio de 2021
ACTUALIZACIÓN 2 de junio de 2021: Microsoft ha publicado un aviso sobre CVE-2021-34527, denominando correctamente ese identificador específico como la vulnerabilidad PrintNightmare. Anteriormente, la comunidad asumía que CVE-2021-1675 "era PrintNightmare", ya que el parche del 8 de junio no resolvía este problema. Este repositorio es idéntico al original solo con el nombre de CVE diferente.
CVE-2021-34527 es una vulnerabilidad crítica de ejecución remota de código y escalada de privilegios local denominada "PrintNightmare".
Se han publicado exploits de prueba de concepto (Python, C++) para la capacidad de ejecución remota de código, y una versión en C# para la escalada de privilegios local. No habíamos visto una implementación nativa en PowerShell puro, y queríamos intentar refinar y reelaborar el exploit.
Este script de PowerShell realiza escalada de privilegios local (LPE) con la técnica de ataque PrintNightmare.

Esto ha sido probado en Windows Server 2016 y Windows Server 2019.
Agregar un nuevo usuario al grupo de administradores locales por defecto:
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"
Proporcione un payload DLL personalizado para hacer cualquier otra cosa que desee.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"