
CVE-2021-34527 est une vulnérabilité critique d'exécution de code à distance et d'élévation de privilèges locale surnommée « PrintNightmare ».
CVE-2021-34527 est une vulnérabilité critique d'exécution de code à distance et d'élévation de privilèges locaux surnommée « PrintNightmare ».
Des exploits de preuve de concept ont été publiés (Python, C++) pour la capacité d'exécution de code à distance, et une version C# pour l'élévation de privilèges locaux. Je n'avais pas vu d'implémentation native en PowerShell pur, et je voulais essayer de raffiner et de retravailler l'exploit.
Ce script PowerShell effectue une élévation de privilèges locaux (LPE) avec la technique d'attaque PrintNightmare.
Ceci a été testé sur Windows Server 2016 et Windows Server 2019.
Ajoute un nouvel utilisateur au groupe des administrateurs locaux par défaut :
Invoke-Nightmare # add user `adm1n`/`P@ssw0rd` in the local admin group by default
Invoke-Nightmare -DriverName "Xerox" -NewUser "K1LL9" -NewPassword "SuperSecure1o1"
Fournissez une charge utile DLL personnalisée pour faire tout autre chose que vous souhaitez.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"
La technique LPE n'a pas besoin de fonctionner avec RPC ou SMB distant, car elle ne travaille qu'avec les fonctions de Print Spooler. Ce script intègre une charge utile compressée GZIP encodée en Base64 pour une DLL personnalisée, qui est patchée selon vos arguments, pour ajouter facilement un nouvel utilisateur au groupe des administrateurs locaux. Ce script intègre des méthodes de PowerSploit/PowerUp pour accéder de manière réflexive aux API Win32. Cette méthode ne parcourt pas tous les pilotes d'imprimante pour trouver le chemin DLL approprié — elle prend simplement le premier pilote et détermine le chemin approprié.