13 KiB
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
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!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al grupo de 💬 Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.
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] 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 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], 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] 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] 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] 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
. 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. Un atacante web puede subir el archivo .jar
usando CSRF 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 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] 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 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 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] '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 solo está disponible para revendedores de Samsung.
Ricoh ESA
La 'Arquitectura de Software Embebido' [ESA](https://www.ricoh.com/esa/)
[8] fue lanzada por Ricoh en 2004. El SDK/J 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] ha sido lanzada por Kyocera en 2008. Las aplicaciones se basan ya sea en Java o en servicios web. El SDK 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] que se basa en servicios web fue introducida por Konica Minolta en 2009. El acceso al SDK 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] fue anunciada por Sharp en 2004. El SDK 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] 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] y [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.
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
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!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al grupo de 💬 Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.