
Script PowerShell pour l'escalade de privilèges locale via PrintNightmare (CVE-2021-34527). Injecte une charge utile DLL personnalisée pour ajouter un utilisateur administrateur local, en exploitant les API du Spouleur d'impression sans RPC/SMB distant.
Caleb Stewart | John Hammond | 1er juin 2021
MISE À JOUR 2 juin 2021 : Microsoft a publié un avis sur CVE-2021-34527 en qualifiant correctement cet identifiant spécifique comme étant la vulnérabilité PrintNightmare. Auparavant, la communauté supposait que CVE-2021-1675 "était PrintNightmare" car le correctif du 8 juin n'a pas résolu ce problème. Ce dépôt est identique à l'original avec juste un nom de CVE différent.
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".
Des preuves de concept (PoC) ont été publiées (Python, C++) pour la capacité d'exécution de code à distance, ainsi qu'une version en C# pour l'élévation de privilèges locale. Nous n'avions pas vu d'implémentation native en PowerShell pur, et nous voulions tenter de raffiner et de reformuler l'exploit.
Ce script PowerShell effectue une élévation de privilèges locale (LPE) avec la technique d'attaque PrintNightmare.

Ce script a été testé sur Windows Server 2016 et Windows Server 2019.
Ajouter un nouvel utilisateur au groupe des administrateurs locaux par défaut :
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"
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"