PrintNightmare: le correctif incomplet de Microsoft ne corrige pas la vulnérabilité

0

Les chercheurs ont contourné le correctif d’urgence de Microsoft pour la vulnérabilité PrintNightmare afin de réaliser l’exécution de code à distance et l’élévation des privilèges locaux avec le correctif officiel installé.

Récemment, Microsoft a publié une mise à jour de sécurité hors bande KB5004945 qui était censée corriger la vulnérabilité PrintNightmare que les chercheurs ont révélée par accident le mois dernier.

Après la publication de la mise à jour, les chercheurs en sécurité Matthew Hickey, co-fondateur de Hacker House, et Will Dormann, analyste de vulnérabilité pour CERT/CC, ont déterminé que Microsoft n’avait corrigé que le composant d’exécution de code à distance de la vulnérabilité.

Cependant, les logiciels malveillants et les acteurs malveillants peuvent toujours utiliser le composant d’élévation des privilèges locaux pour obtenir des privilèges SYSTEM sur les systèmes vulnérables uniquement si la stratégie Pointer et Imprimer est activée.

Le 7 Juillet, alors que de plus en plus de chercheurs ont commencé à modifier leurs exploits et à tester le correctif, il a été déterminé que les exploits pouvaient contourner entièrement le correctif pour obtenir à la fois une élévation des privilèges locaux et une exécution de code à distance.

Selon le créateur de Mimikatz, Benjamin Delpy, le correctif pourrait être contourné pour réaliser l’exécution de code à distance lorsque la politique Pointer et Imprimer est activée.

Dormann a également confirmé ce contournement de patch sur Twitter.

Pour contourner le correctif PrintNightmare et obtenir l’exécution de code à distance et l’élévation des privilèges locaux, une stratégie Windows appelée « Restrictions de pointage et d’impression » doit être activée et le paramètre « Lors de l’installation des pilotes pour une nouvelle connexion » doit être configuré sur « Ne pas afficher d’avertissement à l’invite d’élévation ».

printnightmare microsoft
Politique de restrictions de pointage et d’impression

Cette stratégie se trouve sous Configuration ordinateur > Modèles d’administration > Imprimantes > Restrictions de pointage et d’impression.

Lorsqu’elle est activée, la valeur ‘NoWarningNoElevationOnInstall‘ sera définie sur 1 sous la clé HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint.


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint]
« NoWarningNoElevationOnInstall »=dword:00000001

Hickey a déclaré qu’il conseillait toujours aux administrateurs et aux utilisateurs de désactiver le service Print Spooler pour protéger leurs serveurs et postes de travail Windows jusqu’à ce qu’un correctif fonctionnel soit publié.

« Nous conseillons toujours à nos clients de désactiver le spouleur d’imprimante là où il n’est pas nécessaire jusqu’à ce qu’un correctif résolve ce problème de manière appropriée », a déclaré Hickey.

0patch a également publié un micropatch gratuit pour PrintNightmare qui a jusqu’à présent réussi à bloquer les tentatives d’exploitation de la vulnérabilité.

Cependant, ils mettent en garde contre l’installation du correctif du 6 juillet de Microsoft car non seulement il ne protège pas contre les vulnérabilités, mais modifie le fichier ‘localspl.dll’ afin que le correctif de 0Patch ne fonctionne plus.

« Si vous utilisez 0patch contre PrintNightmare, N’appliquez PAS la mise à jour Windows du 6 juillet ! Non seulement cela ne corrige pas le vecteur d’attaque local, mais cela ne corrige pas non plus le vecteur distant. Cependant, cela modifie localspl.dll, ce qui rend nos correctifs qui résolvent le problème inutiles », a tweeté le service 0Patch.

« Nous avons décidé de ne pas porter nos correctifs PrintNightmare vers la version localspl.dll apportée par la mise à jour hors bande de Microsoft du 6 juillet, mais nous attendrons plutôt le Patch Tuesday qui, espérons-le, corrigera la fonction IsLocalFile défectueuse, puis nous porterons nos correctifs pour bloquer les attaques locales »

Il est conseillé aux utilisateurs et administrateurs Windows d’effectuer l’une des opérations suivantes :

  • N’installez pas le correctif du 6 juillet et installez le micropatch de 0Patch à la place jusqu’à ce qu’un correctif fonctionnel de Microsoft soit publié.
  • Désactivez le spouleur d’impression.
  • Installez le correctif PrintNightmare du 6 juillet de Microsoft et activez la valeur de registre « RestrictDriverInstallationToAdministrators » pour autoriser uniquement les administrateurs à installer des pilotes sur un serveur d’impression. Vous pouvez trouver des instructions sur la façon de configurer cette valeur de Registre dans le bulletin d’assistance de Microsoft.

Microsoft a déclaré qu’ils enquêtaient sur les allégations de contournement de leur correctif.

« Nous sommes au courant des réclamations et enquêtons, mais pour le moment, nous n’avons connaissance d’aucun contournement », a déclaré Microsoft.

Ils ont également déclaré que les réclamations de contournements sont celles où un administrateur a modifié les paramètres de registre par défaut en une configuration non sécurisée et nous a renvoyés à l’avis de CVE-2021-34527.

Microsoft a déclaré qu’ils prendraient les mesures appropriées pour protéger leurs clients si les enquêtes indiquaient qu’il y avait d’autres problèmes.

Comprendre la vulnérabilité PrintNightmare

PrintNightmare est une vulnérabilité dans le spouleur d’impression Windows qui est causée par des vérifications ACL (liste de contrôle d’accès) manquantes dans les fonctions API Windows AddPrinterDriverEx(), RpcAddPrinterDriver() et RpcAsyncAddPrinterDriver() utilisées pour installer des pilotes d’imprimante locaux ou distants sur un serveur d’impression .

Chacune de ces fonctions est utilisée via différentes API Windows, répertoriées ci-dessous :

  • AddPrinterDriverEx (SDK)
  • RpcAddPrinterDriver (MS-RPRN)
  • RpcAsyncAddPrinterDriver (MS-PAR)

Avec PrintNightmare, une vérification des autorisations peut être contournée pour installer une DLL malveillante dans le dossier C:\Windows\System32\spool\drivers qui est ensuite chargé en tant que pilote d’impression par l’exploit pour réaliser l’exécution de code à distance ou l’élévation des privilèges locaux.

« L’API prend un argument fourni par l’utilisateur dans le cadre d’une vérification des autorisations lorsqu’elle teste si elle doit autoriser l’installation de fichiers dans ce dossier avec des droits SYSTEM. »

« Peu importe les ACL sur le dossier, il s’agit spécifiquement d’une vérification à l’intérieur du SDK logiciel qui peut être contournée en fournissant des arguments supplémentaires à la fonction via un appel d’API », a déclaré Hickey.

Pour exploiter la vulnérabilité, les requêtes peuvent être envoyées directement au service local via RPC ou LRPC.

Le correctif de Microsoft visait à bloquer l’exploitation à distance de la vulnérabilité et à autoriser uniquement les non-administrateurs à installer une imprimante signée. Le correctif peut également être configuré à l’aide de « RestrictDriverInstallationToAdministrators » pour permettre uniquement aux administrateurs d’installer un pilote, renforçant ainsi la sécurité.

Hickey déclare qu’ils n’ont pas résolu le problème sous-jacent d’une vérification ACL manquante, permettant ainsi la création d’exploits modifiés.

« Le récent correctif publié par Microsoft se concentre sur la résolution du vecteur d’exploit de l’exécution de commande à distance et semble traiter les preuves de concept communes, mais comme vous pouvez également y accéder via LRPC et l’API locale – en fonction de l’hôte et des circonstances, il semble que le correctif ne résolvent pas correctement le problème sous-jacent dans la vérification ACL qui permet toujours l’exploitation pour l’élévation des privilèges locaux sur un hôte entièrement corrigé », a expliqué Hickey.

Cela signifie que pour contourner les blocs d’exécution de commande à distance, les chercheurs ont dû trouver une méthode non définie par le bloc de Microsoft, comme l’utilisation par Delpy d’un chemin UNC.

Laisser un commentaire