
Exploit di escalation dei privilegi locali in PowerShell per PrintNightmare (CVE-2021-34527) che prende di mira Windows Print Spooler. Incorpora un payload DLL personalizzato per aggiungere un utente amministratore locale tramite chiamate riflessive alle API Win32.
Caleb Stewart | John Hammond | 1 giugno 2021
UPDATE 2 giugno 2021: Microsoft ha pubblicato un advisory su CVE-2021-34527, definendo correttamente quell'identificatore specifico come la vulnerabilità dell'exploit PrintNightmare. In precedenza, la comunità presumeva che CVE-2021-1675 "fosse PrintNightmare" poiché il path dell'8 giugno non risolveva questo problema. Questo repository è identico all'originale solo con il nome CVE diverso.
CVE-2021-34527 è una vulnerabilità critica di esecuzione remota di codice e di escalation locale dei privilegi soprannominata "PrintNightmare."
Sono stati rilasciati proof-of-concept exploit (Python, C++) per la capacità di esecuzione remota di codice, e una versione in C# per l'escalation locale dei privilegi. Non avevamo visto un'implementazione nativa in puro PowerShell, e volevamo cimentarci nel raffinare e ricreare l'exploit.
Questo script PowerShell esegue l'escalation locale dei privilegi (LPE) con la tecnica di attacco PrintNightmare.

È stato testato su Windows Server 2016 e Windows Server 2019.
Aggiungi un nuovo utente al gruppo degli amministratori locali per impostazione predefinita:
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"
Fornisci un payload DLL personalizzato per fare qualsiasi altra cosa desideri.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"