Vulnérabilité Windows PrintNightmare : tentons de comprendre ce qu’il en est vraiment

Difficile de passer à côté, depuis le 29 juin cette vulnérabilité affectant le spouleur d’impression Windows n’en finit pas de remplir des pixels sur les écrans de la communauté sécu, vu que plus personne n’ose imprimer de peur de se faire poncer. Le 30 juin, le CERT-FR de l’ANSSI publie une alerte concernant cette vulnérabilité1. Le vendredi 2 juillet, l’ANSSI publie une nouvelle alerte sur le sujet2 annonçant que la vulnérabilité initialement identifiée comme 0 day, la CVE-2021-1675 a été correctement corrigée dans le patch tuesday de juin et qu’une nouvelle vulnérabilité, la CVE-2021-34527, quant à elle, est en attente de correctif. S’en suit une révision de l’alerte côté CERT Santé3, l’info est diffusée aux ARS qui relaient aux établissements de santé dans la foulée en fin d’après-midi, de quoi faire passer à l’ensemble des destinataires un excellent week-end ! Trêve de plaisanterie, saluons cette communication rapide.

Comme il y a beaucoup de cafouillages et de débats autour de cette vulnérabilité annoncée depuis par Microsoft comme activement exploitée4, tentons de comprendre ce qu’il s’est passé dans cet épisode de Dallas et ce qu’il en est réellement du cauchemar pour nos machines Windows.

Le 8 juin, Microsoft publie dans son patch tuesday, un correctif pour la vulnérabilité CVE-2021-16755 affectant le spouleur d’impression Windows et permettant une élévation de privilèges locale. Le 21 juin, Microsoft revient sur son bulletin initial et classe la vulnérabilité comme critique car elle permet également une exécution de code arbitraire à distance. Comme moi, vous aviez peut-être raté cette révision, mais bon, le spouleur d’impression Windows basé sur un protocole aussi fragile que RPC, nous savons bien que c’est une bête à chagrin en terme de sécurité.

 

 Le 28 juin, l’équipe RedDrip Team de la société Chinoise QiAnXin Technology, publie une vidéo démontrant comment exploiter la vulnérabilité et réaliser une élévation de privilège locale, ainsi qu’une exécution de code à distance6.

 

Le 29 juin, un chercheur concurrent de chez Sangfor, une autre société Chinoise publie un rapport technique et un POC d’exploitation de la vulnérabilité, baptisée PrintNightmare, et dont la présentation était initialement prévue pour BlackHat USA. Manque de bol, le POC fonctionne sur des systèmes à jour du dernier correctif de juin… Il semblerait donc que le correctif de Microsoft pour la CVE-2021-1675 ne soit pas totalement fonctionnel. Le POC a été retiré de Github7, mais autant dire qu’il était déjà trop tard… LA boulette… On se retrouve donc avec une vulnérabilité 0 day dans la nature !

 

Microsoft a donc annoncé que PrintNightmare serait une nouvelle vulnérabilité, la CVE-2021-34527, similaire à la CVE-2021-1675 mais bien distincte4. Pourquoi pas...

Au vu des résultats des tests de Benjamin DELPY, nous pouvons quand même supposer qu’il existe un très fort lien entre ces « deux » vulnérabilités, qui laisse plutôt penser à un correctif raté ou incomplet.

Le 1er juillet Benjamin DELPY annonce qu’un serveur à jour des correctifs de sécurité de juin n’est pas vulnérable au POC PrintNighmare, en revanche il le devient dès lors qu’il est promu au rôle de contrôleur de domaine8… Ah ?!?

 

Quelques heures plus tard, après un peu de sommeil et un échange avec un autre chercheur, l’auteur du célèbre Mimikatz revient avec une nouvelle info : en supprimant le groupe « Utilisateurs authentifiés » du groupe « Accès compatible pré-Windows 2000 », le contrôleur de domaine n’est plus vulnérable9

 

Doit-on vraiment parler d’une nouvelle vulnérabilité du coup ? Certains diront que oui, que beaucoup de chercheurs ont fait des raccourcis et qu’il y a eu confusion entre deux vulnérabilités… Les faits montrent en tout cas un lien très fort entre la CVE-2021-1675 et la CVE-2021-34527, que l’on pourrait qualifier d’étape 2.

La vulnérabilité n’étant pas exploitable sur un client Windows 10 à jour des correctifs de sécurité et pour lequel la configuration par défaut n’a pas été modifiée, je partage l’étonnement de Benjamin DELPY face à l’exploitabilité de PrintNighmare sur Windows 11...10 Dallas, ton univers impitoyable…

 

Pour tenter de clarifier la situation, commençons par essayer de comprendre comment fonctionne l’exploit :

Un attaquant pourrait dans certains cas précis, sur des machines Windows, même à jour des correctifs de juin, déposer un fichier de type DLL permettant de prendre le contrôle de la machine avec des privilèges SYSTEM. Pour le spouleur d’impression, il considérerait cette action comme l’installation d’un nouveau pilote d’impression.

Essayons maintenant de définir les cas dans lesquels l’exploitation est possible :

Prérequis : Le service spouleur d’impression est activé (c’est le cas par défaut)

1. Ma machine porte le rôle de contrôleur de domaine (le spouleur d’impression devrait être désactivé car inutile, nous savons tous que cela représente un risque important vu la fragilité du protocole RPC et son implémentation sous Windows, en particulier sur un DC) + le groupe « Utilisateurs authentifiés » est membre du groupe « Accès compatible pré-Windows 2000 ». Un contrôleur de domaine à jour avec une configuration par défaut est donc vulnérable.

2. Ma machine n’est pas contrôleur de domaine (serveur ou poste client), est à jour des correctifs de sécurité de juin, mais la fonctionnalité « Point and Print » est activée + l’UAC a été désactivé + le groupe « Utilisateurs authentifiés » est membre du groupe « Accès compatible pré-Windows 2000 ». Avec une configuration par défaut, une machine à jour ne devrait pas être vulnérable.

3. Ma machine n’est pas à jour : elle est par conséquent vulnérable.

Gardons en tête : pas de spouleur d’impression = pas vulnérable.

Ces informations ont été confirmées par Microsoft4.

Un très bon résumé de la situation a été publiée par Stan Hegt11 :

 

Pour info, le POC a été intégré à Mimikatz par Benjamin DELPY. Il était déjà largement diffusé, donc rien de choquant. Par contre, l’exploitation de cette vulnérabilité dans les attaques va devenir monnaie courante !

 

Vincent LE TOUX a ajouté une nouvelle règle à titre informatif dans Ping Castle permettant de vérifier si le groupe « Utilisateurs authentifiés » est membre du groupe « Accès compatible pré-Windows 2000 »12. Le retrait du groupe pourrait avoir des effets de bords, même si cela reste une bonne pratique pour durcir son Active Directory.

 

Pour rappel, Ping Castle intègre un scanner permettant de vérifier l’état du spouleur d’impression sur l’ensemble des machines connectées à un domaine Active Directory.

 

Un script partagé par le CERT Santé, permet de désactiver en masse le spouleur d’impression (à tester au préalable)13

Il est donc fortement recommandé, si ce n’est déjà fait, de désactiver le service spouleur d’impression sur l’ensemble des machines qui n’en ont pas besoin, en commençant en priorité par les contrôleurs de domaine.

Soyons forts et #TOUSCYBERVIGILANTS

 

 

1 https://www.cert.ssi.gouv.fr/alerte/CERTFR-2021-ALE-013/

2 https://www.cert.ssi.gouv.fr/alerte/CERTFR-2021-ALE-014/

3 https://www.cyberveille-sante.gouv.fr/alertes/2634-vulnerabilite-dans-le-service-windows-print-spooler-2021-06-30

4 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527

5 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-1675

6 https://twitter.com/RedDrip7/status/1409353110187757575

7 https://twitter.com/edwardzpeng/status/1409810304091889669

8 https://twitter.com/gentilkiwi/status/1410407209989771269

9 https://twitter.com/gentilkiwi/status/1410621282446495749

10 https://twitter.com/gentilkiwi/status/1411041927915520001

11 https://twitter.com/StanHacked/status/1410929974358515719

12 https://twitter.com/mysmartlogon/status/1410654690065489922

13 https://github.com/gtworek/PSBits/blob/master/Misc/StopAndDisableDefaultSpoolers.ps1

Partager ce document sur les réseaux

?>