
Exploit de escalonamento de privilégios local em PowerShell para PrintNightmare (CVE-2021-34527) visando o Spooler de Impressão do Windows. Embute um payload DLL personalizado para adicionar um usuário administrador local via chamadas de API Win32 reflective.
Caleb Stewart | John Hammond | June 1, 2021
ATUALIZAÇÃO 2 de junho de 2021: Microsoft lançou um aviso sobre CVE-2021-34527, denominando corretamente esse identificador específico como o exploit de vulnerabilidade PrintNightmare. Anteriormente, a comunidade estava supondo que CVE-2021-1675 "era PrintNightmare" já que o patch de 8 de junho não resolveu este problema. Este repositório é idêntico ao original apenas com o nome CVE diferente.
CVE-2021-34527 é uma vulnerabilidade crítica de execução remota de código e escalação local de privilégios apelidada de "PrintNightmare".
Exploits de prova de conceito foram lançados (Python, C++) para a capacidade de execução remota de código, e uma versão em C# para escalação local de privilégios. Não tínhamos visto uma implementação nativa em PowerShell puro, e queríamos tentar refinar e recriar o exploit.
Este script PowerShell realiza escalação local de privilégios (LPE) com a técnica de ataque PrintNightmare.

Isso foi testado no Windows Server 2016 e Windows Server 2019.
Adicionar um novo usuário ao grupo de administradores locais por padrão:
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"
Forneça um payload DLL personalizado para fazer qualquer outra coisa que desejar.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"