hacktricks/network-services-pentesting/pentesting-printers/software-packages.md

14 KiB
Raw Blame History

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en Red Team AWS de HackTricks)!

Autres moyens de soutenir HackTricks :

Au cours des dernières années, les fabricants d'imprimantes ont commencé à introduire la possibilité d'installer des logiciels personnalisés sur leurs appareils. Le format de ces 'applications pour imprimantes' est propriétaire et les SDK ne sont pas disponibles pour le public. La fonctionnalité d'écrire des logiciels personnalisés qui fonctionnent sur les imprimantes était destinée et est réservée aux revendeurs et aux entrepreneurs, et non aux utilisateurs finaux. Ainsi, une flotte d'imprimantes peut être adaptée aux besoins spéciaux et aux processus commerciaux d'une entreprise ; les fournisseurs de solutions documentaires peuvent facilement intégrer les imprimantes dans leur logiciel de gestion. Un exemple populaire est NSi AutoStore [1] qui peut être installé sur de nombreux MFP et télécharge automatiquement les documents scannés ou copiés vers des emplacements prédéfinis. De toute évidence, la fonctionnalité d'exécuter du code personnalisé sur un appareil d'impression est une menace potentielle pour la sécurité. De plus, la signature de code des paquets logiciels est potentiellement plus difficile que pour les firmware car les logiciels ne sont pas seulement écrits par le fabricant de l'imprimante, mais par un éventail plus large de développeurs qui doivent posséder la clé secrète pour signer leur logiciel. Par conséquent, il est logique d'inclure la clé secrète dans les SDK qui sont protégés par leur disponibilité exclusive sur les plateformes de développeurs. Cet article est un effort pour rassembler systématiquement des informations sur les plateformes logicielles spécifiques aux fournisseurs/SDK.

Fournisseurs

Dans ce qui suit, un aperçu général des plateformes logicielles fournies par les principaux fabricants d'imprimantes pour étendre la fonctionnalité de leurs appareils est donné.

HP Chai/OXP

HP a introduit sa plateforme 'Chai Appliance Platform' en 1999 pour exécuter des applications Java sur les imprimantes LaserJet. Alors qu'un SDK avait d'abord été ouvert au public [2], l'accès a été plus tard restreint aux membres du réseau de développeurs de HP. Les servlets Chai qui viennent sous forme de fichiers .jar devaient initialement être certifiés et signés par HP avant d'être acceptés par un appareil d'impression. [3] a découvert une faille dans le processus de déploiement : en installant EZloader un logiciel de chargement alternatif fourni par HP qui avait déjà été signé ils ont pu télécharger et exécuter leurs propres paquets Java non signés. Il semble que la signature de code ait été complètement abandonnée par HP pour les versions ultérieures de Chai : [4] ont pu écrire et exécuter un malware d'imprimante de preuve de concept qui écoute sur le port 9100 et télécharge les documents entrants sur un serveur FTP avant de les imprimer. Leur code est basé sur [5] qui a étendu l'appareil pour supporter l'équilibrage de charge et a inclus les fichiers SDK requis et les bibliothèques Java propriétaires dans leur démonstration. Avec les bibliothèques, du code Java arbitraire peut être compilé et exécuté sur les anciens HP LaserJets en téléchargeant les fichiers .jar vers une URL 'cachée' : http://printer/hp/device/this.loader. Cette attaque peut être menée si aucun mot de passe n'a encore été défini pour le serveur web embarqué. Sinon, le mot de passe doit d'abord être récupéré depuis /dev/rdsk_jdi_cfg0 avec PostScript voir [accès au système de fichiers](http://hacking-printers.net/wiki/index.php/File_system_access) ou contourné en réinitialisant l'appareil aux paramètres d'usine. Un attaquant web peut télécharger le fichier .jar en utilisant CSRF si la victime est actuellement connectée au serveur web embarqué de l'imprimante. Pour les appareils plus récents, HP utilise la plateforme 'Open Extensibility Platform' basée sur les services web [OXP](https://developers.hp.com/oxp/) au lieu de Chai pour laquelle aucun SDK n'est disponible publiquement.

Canon MEAP

La 'Multifunctional Embedded Application Platform' [MEAP](http://www.developersupport.canon.com/faq/335#t335n18) est une plateforme logicielle basée sur Java introduite par Canon en 2003 pour leur série imageRunner et étendue aux services web en 2010. Les développeurs tiers peuvent obtenir le MEAP SDK moyennant des frais de 5 000 $, ce qui est certainement hors de portée pour des fins de recherche.

Xerox/Dell EIP

La 'Extensible Interface Platform' [EIP](http://www.office.xerox.com/eip/enus.html) [6] a été annoncée en 2006 par Xerox pour divers MFP. L'architecture qui est également prise en charge par quelques appareils Dell rebadgés est basée sur la technologie des services web. Le SDK est librement disponible pour les développeurs enregistrés.

Brother BSI

L' 'Brother Solutions Interface' [BSI](https://www.brother-usa.com/lp/civ/bsi.aspx) est une architecture web basée sur XML lancée en 2012 pour les scanners, copieurs et imprimantes. L'accès au SDK est disponible pour les développeurs licenciés.

Lexmark eSF

Le 'Embedded Solution Framework' [eSF](http://www.lexmark-emea.com/usa/BSD_solution_catalouge.pdf) a été lancé en 2006 pour les MFP Lexmark. Le SDK pour développer des applications Java est réservé aux 'partenaires spécialement qualifiés'. Selon [7] 'ces applications doivent être numériquement signées par Lexmark avant d'être adoptées' en utilisant des signatures RSA de 2048 bits.

Samsung XOA

L' 'eXtensible Open Architecture' [XOA](http://samsungprintingsolutions.com/2015/02/can-samsungs-extensible-open-architecture-xoa/) a été introduite par Samsung en 2008 et se décline en deux versions : la machine virtuelle Java XOA-E et les services web basés sur XOA-Web. Le SDK n'est disponible que pour les revendeurs Samsung.

Ricoh ESA

L' 'Embedded Software Architecture' [ESA](https://www.ricoh.com/esa/) [8] a été lancée par Ricoh en 2004. Le SDK/J basé sur Java est disponible pour les développeurs après inscription.

Kyocera/Utax HyPAS

La 'Hybrid Platform for Advanced Solutions' [HyPAS](http://usa.kyoceradocumentsolutions.com/americas/jsp/Kyocera/hypas_overview.jsp) [9] a été publiée par Kyocera en 2008. Les applications sont basées soit sur Java, soit sur les services web. Le SDK n'est disponible que pour les membres du 'HyPAS Development Partner Programme' et les applications doivent être approuvées par Kyocera.

Konica Minolta bEST

La 'bizhub Extended Solution Technology' [bEST](https://best.kmbs.us/) [10] basée sur les services web a été introduite par Konica Minolta en 2009. L'accès au SDK nécessite un 'niveau de membre platinum' dans le programme de développeurs moyennant des frais de 4 000 $, ce qui est hors de portée pour les chercheurs indépendants.

Toshiba e-BRIDGE

L' 'e-BRIDGE Open Platform' [e-BRIDGE](http://www.estudio.com.sg/solutions_ebridge.aspx) a été publiée par Toshiba en 2008 pour personnaliser leurs MFP haut de gamme basés sur la technologie des services web. Un SDK n'est pas disponible pour le grand public.

Sharp OSA

L' 'Open Systems Architecture' [OSA](http://siica.sharpusa.com/Document-Systems/Sharp-OSA) [11] a été annoncée par Sharp en 2004. Le SDK utilisé pour développer des services web est payant et les applications doivent être validées par Sharp avant de pouvoir être installées sur un MFP.

Oki sXP

La 'smart eXtendable Platform' [sXP](http://www.oki.com/en/press/2014/09/z14053e.html) [12] basée sur les services web a été lancée par Oki Data en 2013 pour leurs appareils MFP. Oki ne publie aucune information concernant un programme de développeur officiel ou un SDK disponible publiquement.

Résultats

Sur les anciennes imprimantes laser HP, du bytecode Java arbitraire peut être exécuté comme démontré par [3] et [4]. La sécurité est basée sur le mot de passe du serveur web embarqué qui peut être facilement récupéré avec PostScript ou contourné en rétablissant les paramètres d'usine. Il est difficile de faire une déclaration raisonnée sur la sécurité des autres plateformes logicielles en raison du manque d'accès au SDK et/ou à une documentation technique appropriée. Une comparaison des plateformes, des technologies appliquées et lorsque connues des procédures de déploiement des paquets logiciels est donnée ci-dessous :

Fournisseur Plateforme Java embarqué Services web Déploiement
HP Chai/OXP serveur web
Xerox/Dell EIP inconnu
Canon MEAP inconnu
Brother BSI inconnu
Lexmark eSF inconnu
Samsung XOA serveur web
Ricoh ESA inconnu
Kyocera/Utax HyPAS clé USB
Konica Minolta bEST inconnu
Toshiba e-BRIDGE inconnu
Sharp OSA inconnu
Oki sXP inconnu

Comment tester cette attaque ?

Obtenez un SDK et écrivez votre propre application de preuve de concept ou trouvez une 'application pour imprimante' qui fait déjà ce que vous voulez par exemple, télécharger automatiquement des documents scannés vers FTP. Vérifiez également quels mécanismes de protection existent pour installer des logiciels personnalisés sur l'appareil.

Qui peut réaliser cette attaque ?

Dépend de la manière dont les paquets logiciels sont déployés.

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en Red Team AWS de HackTricks)!

Autres moyens de soutenir HackTricks :