hacktricks/network-services-pentesting/pentesting-printers/factory-defaults.md
2023-06-03 13:10:46 +00:00

6.6 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Réinitialiser un appareil aux paramètres d'usine est une fonctionnalité critique en matière de sécurité car elle écrase les mécanismes de protection tels que les mots de passe définis par l'utilisateur. Cela peut généralement être fait en appuyant sur une combinaison de touches spéciale sur le panneau de commande de l'imprimante. Effectuer une telle réinitialisation ne prend que quelques secondes et est donc un scénario réaliste pour les attaquants locaux ou les testeurs de pénétration, qui peuvent par exemple se faufiler dans la salle de copie à l'heure du déjeuner. Cependant, l'accès physique à l'appareil n'est pas toujours une option.

SNMP

Le Printer-MIB définit l'objet prtGeneralReset (OID 1.3.6.1.2.1.43.5.1.1.3.1) qui permet à un attaquant de redémarrer l'appareil (powerCycleReset(4)), de réinitialiser les paramètres NVRAM (resetToNVRAM(5)) ou de restaurer les paramètres d'usine (resetToFactoryDefaults(6)) en utilisant SNMP. Cette fonctionnalité/attaque est prise en charge par une grande variété d'imprimantes et supprime tous les mécanismes de protection tels que les mots de passe définis par l'utilisateur pour le serveur web intégré. Bien que les mécanismes de protection puissent être contournés efficacement, un inconvénient pratique de cette approche est que toute la configuration d'adresse IP statique sera perdue. Si aucun service DHCP n'est disponible, l'attaquant ne pourra plus se reconnecter à l'appareil après l'avoir réinitialisé aux paramètres d'usine.

Réinitialiser l'appareil aux paramètres d'usine peut être accompli en utilisant la commande snmpset comme indiqué ci-dessous (vous devez connaître la chaîne de communauté, qui est par défaut dans la plupart des cas public):

snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6

PML/PJL

Dans de nombreux scénarios, un attaquant n'a pas la capacité d'effectuer des requêtes SNMP en raison de pare-feux ou de chaînes de communauté SNMP inconnues. Cependant, sur les appareils HP, SNMP peut être transformé en sa représentation PML et intégré à une tâche d'impression légitime. Cela permet à un attaquant de redémarrer et/ou de réinitialiser l'appareil aux paramètres d'usine dans des tâches d'impression ordinaires, comme indiqué ci-dessous:

@PJL DMCMD ASCIIHEX="040006020501010301040106"

N'importe qui peut reproduire cette attaque sur les imprimantes HP, redémarrer ou réinitialiser l'appareil peut facilement être reproduit en utilisant PRET:

./pret.py -q printer pjl
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> reset
printer:/> restart

PostScript

PostScript offre une fonctionnalité similaire : le paramètre système FactoryDefaults, "un indicateur qui, s'il est défini sur vrai juste avant que l'imprimante soit éteinte, provoque le retour de tous les paramètres non volatils à leurs valeurs par défaut d'usine lors de la prochaine mise sous tension". Il convient de noter que PostScript lui-même a également la capacité de redémarrer son environnement, mais cela nécessite un mot de passe valide.
Cependant, l'interpréteur PostScript peut être mis dans une boucle infinie comme discuté dans les attaques DoS de traitement de document, ce qui oblige l'utilisateur à redémarrer manuellement l'appareil et donc à réinitialiser le mot de passe PostScript.

Réinitialiser les paramètres système PostScript aux valeurs par défaut d'usine :

<< /FactoryDefaults true >> setsystemparams

Redémarrer l'interpréteur PostScript et la mémoire virtuelle :

true 0 startjob systemdict /quit get exec

N'importe qui peut redémarrer ou réinitialiser l'interpréteur PostScript d'une imprimante peut être facilement reproduit en utilisant PRET:

./pret.py -q printer ps
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> reset
printer:/> restart

PRESCRIBE

Pour les appareils Kyocera, les langages de description de page PRESCRIBE peuvent être utilisés pour réinitialiser l'appareil aux paramètres d'usine à partir de travaux d'impression ordinaires en utilisant l'une des commandes suivantes :

!R! KSUS "AUIO", "CUSTOM:Admin Password = 'admin00'";  CMMT "Drop the security level, reset password";
!R! ACNT "REST";                                       CMMT "Reset account code admin password";
!R! EGRE;                                              CMMT "Reset the engine board to factory defaults";
!R! SIOP0,"RESET:0";                                   CMMT "Reset configuration settings";

Pour reproduire cette attaque, ouvrez une connexion réseau brute sur le port 9100/tcp de l'imprimante et envoyez les commandes documentées ci-dessus.