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

112 lines
14 KiB
Markdown
Raw Normal View History

<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
Autres moyens de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel de PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de piratage en soumettant des PRs aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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](http://hacking-printers.net/wiki/index.php/Firmware_updates) 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.
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
# Fournisseurs
2022-04-28 16:01:33 +00:00
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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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`](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](http://hacking-printers.net/wiki/index.php/Factory_defaults). Un attaquant web peut télécharger le fichier `.jar` en utilisant [CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery) 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](http://developersupport.canon.com/content/meap-sdk-0) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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](http://www.office.xerox.com/eip/enus.html) 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](https://www.brother-usa.com/lp/civ/home.aspx) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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](http://xoapartnerportal.com/) n'est disponible que pour les revendeurs Samsung.
## Ricoh \(ESA\)
L' 'Embedded Software Architecture' \([ESA](https://www.ricoh.com/esa/)\) [\[8\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-8) a été lancée par Ricoh en 2004. Le [SDK/J](http://www.ricoh-developer.com/content/device-sdk-type-j-sdkj-overview) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-9) a été publiée par Kyocera en 2008. Les applications sont basées soit sur Java, soit sur les services web. Le [SDK](https://www.kyoceradocumentsolutions.eu/index/document_solutions/HyPAS/hypas_developer_partner.html) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-10) basée sur les services web a été introduite par Konica Minolta en 2009. L'accès au [SDK](https://best.kmbs.us/pages/levels.php) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-11) a été annoncée par Sharp en 2004. Le [SDK](http://sharp-partners.com/us/PartnerPrograms/DeveloperProgram/tabid/722/Default.aspx) 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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-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\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) et [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-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.
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
Autres moyens de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel de PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de piratage en soumettant des PRs aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>