Durcissement Windows - Désactiver le spooler d'impression
Introduction
Le Spooleur d’impression (Print Spooler en anglais) du système d’exploitation Microsoft Windows est un service permettant la gestion des tâches d’impression. L’exécutable de ce service est spoolsv.exe
et ce service est actif par défaut sur la plupart des systèmes Microsoft Windows.
Il a été impacté par un grand nombre de vulnérabilités au cours des dernières années, et constituait le vecteur de propagation du virus Stuxnet.
Récemment, deux nouvelles vulnérabilités critiques ont été publiées. La CVE-2021-1675 (également appelée PrintNightmare) et la CVE-2021-34527.
Afin de pallier ces vulnérabilités, il est généralement conseillé de désactiver le service du Spooleur d’impression sur les serveurs qui ne l’utilisent pas. Dans les sections suivantes, nous allons voir 3 méthodes pour désactiver ce service.
Détection du Spooleur d’impression par les attaquants
Durant la phase de reconnaissance d’un pentest ou tout simplement d’une attaque dans le réseau interne d’une entreprise, les attaquants réalisent des scans des machines. Ces scans permettent de détecter les services et leur versions qui tournent sur les machines du réseau. Le service du spooleur d’impression étant un service RPC, un attaquant peut vérifier si il est actif avec la commande rpcdump.py
suivante :
# rpcdump.py 192.168.1.21 | grep MS-RPRN -A6
Si le service est actif, il sera affiché dans la liste des services RPC et sera trouvé par le grep MS-RPRN -A6
:
Désactiver le service Print Spooler via l’interface graphique
Afin de désactiver le service Print Spooler
via l’interface graphique, il faut utiliser le Gestionnaire de Services de Windows. Ensuite, sélectionnez le service Print Spooler
dans la liste des services de cette interface et cliquez sur propriétés. Stoppez le service, puis désactivez le depuis le menu déroulant du StartupType
.
Désactiver le service Print Spooler via un objet de stratégie de groupe
Il est aussi possible de désactiver le service sur plusieurs machines du domaine à l’aide d’un objet de stratégie de groupe. Pour ce faire :
Désactiver le service Print Spooler via powershell
Pour désactiver le service Print Spooler via powershell, nous allons vérifier dans un premier temps le status du service, en utilisant la commande powershell Get-Service:
Get-Service -DisplayName "Print Spooler"
Nous voyons sur la capture d’écran ci-dessus que le Status
du service est Running
, ce qui signifie qu’il est activé et en fonctionnement. Nous allons donc le stopper. Pour le stopper nous allons utiliser la commande powershell suivante, permettant de sélectionner le service, et de le stopper avec la commande Set-Service :
Get-Service -DisplayName "Print Spooler" | Stop-Service
Il faut ensuite désactiver le service en passant le StartupType
à la valeur disabled
comme ceci :
Get-Service -DisplayName "Print Spooler" | Set-Service -Status stopped -StartupType disabled
Nous pouvons aussi vérifier dans la console de management des services que le spooleur d’impression est désactivé :
En résumé
Pour désactiver le service du spooleur d’impression (Print Spooler
) de Windows, il faut taper les commandes powershell suivantes :
Get-Service -DisplayName "Print Spooler"
Get-Service -DisplayName "Print Spooler" | Stop-Service
Get-Service -DisplayName "Print Spooler" | Set-Service -Status stopped -StartupType disabled
Références
- https://www.lemondeinformatique.fr/actualites/lire-printnightmare-le-Spooleur-d-impression-windows-vulnerable-a-des-attaques-rce-83470.html
- https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/d42db7d5-f141-4466-8f47-0a4be14e2fc1
- https://docs.microsoft.com/fr-fr/defender-for-identity/cas-isp-print-spooler
- https://docs.microsoft.com/fr-fr/powershell/scripting/samples/managing-services?view=powershell-7.1