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

111 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al grupo de** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
En los últimos años, los fabricantes de impresoras han comenzado a introducir la **posibilidad de instalar software personalizado en sus dispositivos**. El formato de tales 'aplicaciones de impresora' es propietario y los SDK no están disponibles para el público. La característica de escribir software personalizado que se ejecuta en impresoras fue pensada y está reservada para revendedores y contratistas, no para usuarios finales. De esta manera, una flota de impresoras puede adaptarse a las necesidades especiales y procesos de negocio de una empresa; los proveedores de soluciones de documentos pueden integrar fácilmente impresoras en su software de gestión. Un ejemplo popular es NSi AutoStore [\[1\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-1) que se puede instalar en muchos MFPs y sube automáticamente documentos escaneados o copiados a ubicaciones predefinidas. Obviamente, la característica de ejecutar código personalizado en un dispositivo de impresora es una amenaza potencial de seguridad. Además, la firma de código de paquetes de software es potencialmente más difícil que para [firmware](http://hacking-printers.net/wiki/index.php/Firmware_updates) ya que el software no solo es escrito por el fabricante de la impresora sino por un rango más amplio de desarrolladores que necesitan poseer la clave secreta para firmar su software. Por lo tanto, es lógico incluir la clave secreta en los SDK que están protegidos por estar exclusivamente disponibles desde plataformas de desarrolladores. Este artículo es un esfuerzo para recopilar sistemáticamente información sobre plataformas de software específicas de los proveedores/SDKs.
# Proveedores
A continuación se ofrece un esbozo general sobre las plataformas de software proporcionadas por los principales fabricantes de impresoras para extender la funcionalidad de sus dispositivos.
## HP \(Chai/OXP\)
HP introdujo su plataforma 'Chai Appliance Platform' en 1999 para ejecutar aplicaciones Java en impresoras LaserJet. Mientras que un SDK había estado abierto al público al principio [\[2\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-2), el acceso fue más tarde restringido a miembros de la red de desarrolladores de HP. Los servlets de Chai, que vienen como archivos `.jar` que originalmente necesitaban ser certificados y firmados por HP antes de que fueran aceptados por un dispositivo de impresora. [\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) descubrió una falla en el proceso de despliegue: al instalar EZloader un software de carga alternativo proporcionado por HP que ya había sido firmado pudieron subir y ejecutar sus propios paquetes Java no firmados. Al parecer, HP abandonó completamente la firma de código para versiones posteriores de Chai: [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4) pudieron escribir y ejecutar un malware de impresora de prueba de concepto que escucha en el puerto 9100 y sube documentos entrantes a un servidor FTP antes de imprimirlos. Su código se basa en [\[5\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-5) quien extendió el dispositivo para soportar balanceo de carga e incluyó los archivos SDK y bibliotecas Java propietarias requeridas en su demostración. Con las bibliotecas, se puede compilar y ejecutar código Java arbitrario en HP LaserJets antiguas subiendo los archivos `.jar` a una URL 'oculta': [`http://printer/hp/device/this.loader`](http://printer/hp/device/this.loader). Este ataque se puede llevar a cabo si aún no se ha establecido una contraseña para el servidor web embebido. De lo contrario, la contraseña debe ser recuperada primero de `/dev/rdsk_jdi_cfg0` con PostScript \(ver [acceso al sistema de archivos](http://hacking-printers.net/wiki/index.php/File_system_access)\) o evitada restableciendo el dispositivo a [valores de fábrica](http://hacking-printers.net/wiki/index.php/Factory_defaults). Un atacante web puede subir el archivo `.jar` usando [CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery) si la víctima está actualmente registrada en el servidor web embebido de la impresora. Para dispositivos más nuevos, HP utiliza la plataforma basada en servicios web 'Open Extensibility Platform' \([OXP](https://developers.hp.com/oxp/)\) en lugar de Chai para la cual no hay SDK disponible públicamente.
## Canon \(MEAP\)
La 'Plataforma de Aplicaciones Embebidas Multifuncionales' \([MEAP](http://www.developersupport.canon.com/faq/335#t335n18)\) es una plataforma de software basada en Java introducida por Canon en 2003 para su serie imageRunner y extendida a servicios web en 2010. Los desarrolladores de terceros pueden obtener el MEAP [SDK](http://developersupport.canon.com/content/meap-sdk-0) por una tarifa de $5,000 que ciertamente está fuera del alcance para fines de investigación.
## Xerox/Dell \(EIP\)
La 'Plataforma de Interfaz Extensible' \([EIP](http://www.office.xerox.com/eip/enus.html)\) [\[6\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-6) fue anunciada en 2006 por Xerox para varios MFPs. La arquitectura que también es soportada por algunos dispositivos de Dell con marca compartida se basa en tecnología de servicios web. El [SDK](http://www.office.xerox.com/eip/enus.html) está libremente disponible para desarrolladores registrados.
## Brother \(BSI\)
La 'Interfaz de Soluciones Brother' \([BSI](https://www.brother-usa.com/lp/civ/bsi.aspx)\) es una arquitectura web basada en XML lanzada en 2012 para escáneres, copiadoras e impresoras. El acceso al [SDK](https://www.brother-usa.com/lp/civ/home.aspx) está disponible para desarrolladores con licencia.
## Lexmark \(eSF\)
El 'Marco de Solución Embebida' \([eSF](http://www.lexmark-emea.com/usa/BSD_solution_catalouge.pdf)\) fue lanzado en 2006 para MFPs de Lexmark. El SDK para desarrollar aplicaciones Java está reservado para 'socios especialmente calificados'. Según [\[7\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-7) 'estas aplicaciones deben ser firmadas digitalmente por Lexmark antes de ser adoptadas' usando firmas RSA de 2048 bits.
## Samsung \(XOA\)
La 'Arquitectura Abierta Extensible' \([XOA](http://samsungprintingsolutions.com/2015/02/can-samsungs-extensible-open-architecture-xoa/)\) fue introducida por Samsung en 2008 y viene en dos sabores: la máquina virtual Java XOA-E y los servicios web basados en XOA-Web. El [SDK](http://xoapartnerportal.com/) solo está disponible para revendedores de Samsung.
## Ricoh \(ESA\)
La 'Arquitectura de Software Embebido' \([ESA](https://www.ricoh.com/esa/)\) [\[8\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-8) fue lanzada por Ricoh en 2004. El [SDK/J](http://www.ricoh-developer.com/content/device-sdk-type-j-sdkj-overview) basado en Java está disponible para desarrolladores después de un registro.
## Kyocera/Utax \(HyPAS\)
La 'Plataforma Híbrida para Soluciones Avanzadas' \([HyPAS](http://usa.kyoceradocumentsolutions.com/americas/jsp/Kyocera/hypas_overview.jsp)\) [\[9\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-9) ha sido lanzada por Kyocera en 2008. Las aplicaciones se basan ya sea en Java o en servicios web. El [SDK](https://www.kyoceradocumentsolutions.eu/index/document_solutions/HyPAS/hypas_developer_partner.html) solo está disponible para miembros del 'Programa de Socios de Desarrollo HyPAS' y las aplicaciones tienen que ser aprobadas por Kyocera.
## Konica Minolta \(bEST\)
La 'Tecnología de Solución Extendida bizhub' \([bEST](https://best.kmbs.us/)\) [\[10\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-10) que se basa en servicios web fue introducida por Konica Minolta en 2009. El acceso al [SDK](https://best.kmbs.us/pages/levels.php) requiere 'nivel de membresía platino' en el programa de desarrolladores por una tarifa de $4,000 que está fuera del alcance para investigadores independientes.
## Toshiba \(e-BRIDGE\)
La 'Plataforma Abierta e-BRIDGE' \([e-BRIDGE](http://www.estudio.com.sg/solutions_ebridge.aspx)\) fue lanzada por Toshiba en 2008 para personalizar sus MFPs de alta gama basados en tecnología de servicios web. Un SDK no está disponible para el público en general.
## Sharp \(OSA\)
La 'Arquitectura de Sistemas Abiertos' \([OSA](http://siica.sharpusa.com/Document-Systems/Sharp-OSA)\) [\[11\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-11) fue anunciada por Sharp en 2004. El [SDK](http://sharp-partners.com/us/PartnerPrograms/DeveloperProgram/tabid/722/Default.aspx) utilizado para desarrollar servicios web es de pago y las aplicaciones necesitan ser validadas por Sharp antes de que puedan ser instaladas en un MFP.
## Oki \(sXP\)
La 'Plataforma Extensible Inteligente' \([sXP](http://www.oki.com/en/press/2014/09/z14053e.html)\) [\[12\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-12) que se basa en servicios web fue lanzada por Oki Data en 2013 para sus dispositivos MFP. Oki no publica ninguna información respecto a un programa oficial de desarrolladores o SDK disponible públicamente.
# Resultados
En impresoras láser HP antiguas, se puede ejecutar bytecode Java arbitrario como demostraron [\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) y [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4). La seguridad se basa en la contraseña del servidor web embebido que se puede recuperar fácilmente con PostScript o evitada restaurando los valores de fábrica. Es difícil hacer una declaración razonada sobre la seguridad de otras plataformas de software debido a la falta de acceso al SDK y/o documentación técnica adecuada. A continuación se presenta una comparación de plataformas, tecnologías aplicadas y donde se conoce procedimientos de despliegue de paquetes de software:
| Proveedor | Plataforma | Java Embebido | Servicios Web | Despliegue |
| :--- | :--- | :--- | :--- | :--- |
| HP | Chai/OXP | ✔ | ✔ | servidor web |
| Xerox/Dell | EIP | | ✔ | desconocido |
| Canon | MEAP | ✔ | ✔ | desconocido |
| Brother | BSI | | ✔ | desconocido |
| Lexmark | eSF | ✔ | | desconocido |
| Samsung | XOA | ✔ | ✔ | servidor web |
| Ricoh | ESA | ✔ | | desconocido |
| Kyocera/Utax | HyPAS | ✔ | ✔ | unidad USB |
| Konica Minolta | bEST | | ✔ | desconocido |
| Toshiba | e-Bridge | | ✔ | desconocido |
| Sharp | OSA | | ✔ | desconocido |
| Oki | sXP | | ✔ | desconocido |
## **¿Cómo probar este ataque?**
Obtén un SDK y escribe tu propia aplicación de prueba de concepto o encuentra una 'aplicación de impresora' que ya haga lo que quieres \(por ejemplo, subir automáticamente documentos escaneados a FTP\). También verifica qué mecanismos de protección existen para instalar software personalizado en el dispositivo.
## **¿Quién puede realizar este ataque?**
Dependiendo de cómo se desplieguen los paquetes de software.
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al grupo de** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>