Définition

PrintNightmare est une attaque exploitant une vulnérabilité dans le spooler d’impression Windows qui permet à un simple utilisateur d’éxécuter des commandes à distance avec des privilèges administrateurs. En réalité, le terme PrintNightmare fait référence à deux vulnérabilité exploitant le spooler d’impression. L’une permet une escalade de privilège et l’autre permet d’éxécuter du code à distance. Dans cette article, on parlera uniquement dans cette derniere.

Le 7 juin 2021, Microsoft a publié son dernier correctif de sécurité concernant cette vulnérabilité qui n’autorise que les administrateurs de la machine à modifier les driver des imprimantes.

Fonctionnement

Lorsque l’on met un jour un driver d’imprimante via RPC, on appelle deux fonction RPCAddPrinterDriverEx et RPCAsyncAddPrinterDriver exploitées par la CVE-2021-1675 et 34527 respectivement.

  • pDriverPath : Le chemin du nouveau driver de l’imprimante
  • pConfigFile : Le chemin vers le module des procédures du pilote de l’imprimante
  • pDataFile : Le chemin vers les données du pilote de l’imprimante

Cette vulnérabilité, vient du fait que Windows ne vérifie pas que tous les chemins spécifiés par l’utilisateur sont des chemins locaux avant de sauvegarder les fichiers dans le dossier des pilotes de l’imprimantes.

Cela permet donc à un attaquant de fournir un fichier DLL malveillant via pDataFile. Ainsi, lorsqu’un autre appel à RPCAddPrintDriver est fait,l’attaquant peut pointer pConfigFile vers le chemin ou le fichier malveillant à été sauvegardé ce qui permet d’executer du code.

Exploitation

https://github.com/cube0x0/CVE-2021-1675

https://github.com/ly4k/PrintNightmare