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>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga** me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
Nos últimos anos, os fornecedores de impressoras começaram a introduzir a **possibilidade de instalar software personalizado em seus dispositivos**. O formato desses 'aplicativos para impressora' é proprietário e os SDKs não estão disponíveis para o público. A funcionalidade de escrever software personalizado que roda em impressoras foi planejada e é reservada para revendedores e contratados, não para usuários finais. Assim, uma frota de impressoras pode ser adaptada às necessidades especiais e processos de negócios de uma empresa; provedores de soluções de documentos podem integrar facilmente impressoras em seu software de gestão. Um exemplo popular é o NSi AutoStore [\[1\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-1) que pode ser instalado em muitos MFPs e automaticamente faz upload de documentos digitalizados ou copiados para locais predefinidos. Obviamente, a funcionalidade de executar código personalizado em um dispositivo de impressora é uma potencial ameaça à segurança. Além disso, a assinatura de código de pacotes de software é potencialmente mais difícil do que para [firmware](http://hacking-printers.net/wiki/index.php/Firmware_updates) já que o software não é escrito apenas pelo fabricante da impressora, mas por uma gama mais ampla de desenvolvedores que precisam estar na posse da chave secreta para assinar seu software. Portanto, é lógico incluir a chave secreta em SDKs que são protegidos por estarem disponíveis exclusivamente de plataformas de desenvolvedores. Este artigo é um esforço para reunir sistematicamente informações sobre plataformas de software específicas de fornecedores/SDKs.
# Fornecedores
A seguir, um esboço aproximado das plataformas de software fornecidas pelos principais fornecedores de impressoras para estender a funcionalidade de seus dispositivos é apresentado.
## HP \(Chai/OXP\)
A HP introduziu sua plataforma 'Chai Appliance Platform' em 1999 para executar aplicações Java em impressoras LaserJet. Enquanto um SDK estava aberto ao público inicialmente [\[2\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-2), o acesso foi posteriormente restrito aos membros da rede de desenvolvedores da HP. Servlets Chai, que vêm como arquivos `.jar` que originalmente precisavam ser certificados e assinados pela HP antes de serem aceitos por um dispositivo de impressora. [\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) descobriram uma falha no processo de implantação: instalando o EZloader um software de carregamento alternativo fornecido pela HP que já havia sido assinado eles conseguiram fazer upload e executar seus próprios pacotes Java não assinados. Pelo que parece, a assinatura de código foi completamente abandonada pela HP para versões posteriores do Chai: [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4) conseguiram escrever e executar um malware de impressora de prova de conceito que escuta na porta 9100 e faz upload de documentos recebidos para um servidor FTP antes de imprimi-los. Seu código é baseado em [\[5\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-5) que estendeu o dispositivo para suportar balanceamento de carga e incluiu os arquivos SDK necessários e bibliotecas Java proprietárias em sua demonstração. Com as bibliotecas, qualquer código Java pode ser compilado e executado em HP LaserJets mais antigos fazendo upload dos arquivos `.jar` para uma URL 'oculta': [`http://printer/hp/device/this.loader`](http://printer/hp/device/this.loader). Este ataque pode ser realizado se ainda não foi definida uma senha para o servidor web embutido. Caso contrário, a senha deve primeiro ser recuperada de `/dev/rdsk_jdi_cfg0` com PostScript \(veja [acesso ao sistema de arquivos](http://hacking-printers.net/wiki/index.php/File_system_access)\) ou contornada redefinindo o dispositivo para [padrões de fábrica](http://hacking-printers.net/wiki/index.php/Factory_defaults). Um atacante web pode fazer upload do arquivo `.jar` usando [CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery) se a vítima estiver atualmente logada no servidor web embutido da impressora. Para dispositivos mais novos, a HP usa a plataforma baseada em serviços web 'Open Extensibility Platform' \([OXP](https://developers.hp.com/oxp/)\) em vez de Chai para a qual nenhum SDK está disponível publicamente.
## Canon \(MEAP\)
A 'Multifunctional Embedded Application Platform' \([MEAP](http://www.developersupport.canon.com/faq/335#t335n18)\) é uma plataforma de software baseada em Java introduzida pela Canon em 2003 para sua série imageRunner e estendida para serviços web em 2010. Desenvolvedores terceirizados podem obter o MEAP [SDK](http://developersupport.canon.com/content/meap-sdk-0) por uma taxa de $5,000, o que certamente está fora do escopo para fins de pesquisa.
## Xerox/Dell \(EIP\)
A '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) foi anunciada em 2006 pela Xerox para vários MFPs. A arquitetura que também é suportada por alguns dispositivos Dell renomeados é baseada em tecnologia de serviços web. O [SDK](http://www.office.xerox.com/eip/enus.html) está disponível gratuitamente para desenvolvedores registrados.
## Brother \(BSI\)
A 'Brother Solutions Interface' \([BSI](https://www.brother-usa.com/lp/civ/bsi.aspx)\) é uma arquitetura web baseada em XML lançada em 2012 para scanners, copiadoras e impressoras. O acesso ao [SDK](https://www.brother-usa.com/lp/civ/home.aspx) está disponível para desenvolvedores licenciados.
## Lexmark \(eSF\)
O 'Embedded Solution Framework' \([eSF](http://www.lexmark-emea.com/usa/BSD_solution_catalouge.pdf)\) foi lançado em 2006 para MFPs da Lexmark. O SDK para desenvolver aplicações Java é reservado para 'parceiros especialmente qualificados'. De acordo com [\[7\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-7) 'essas aplicações devem ser digitalmente assinadas pela Lexmark antes de serem adotadas' usando assinaturas RSA de 2048 bits.
## Samsung \(XOA\)
A 'eXtensible Open Architecture' \([XOA](http://samsungprintingsolutions.com/2015/02/can-samsungs-extensible-open-architecture-xoa/)\) foi introduzida pela Samsung em 2008 e vem em duas versões: a máquina virtual Java XOA-E e os serviços web baseados em XOA-Web. O [SDK](http://xoapartnerportal.com/) está disponível apenas para revendedores da Samsung.
## Ricoh \(ESA\)
A 'Embedded Software Architecture' \([ESA](https://www.ricoh.com/esa/)\) [\[8\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-8) foi lançada pela Ricoh em 2004. O [SDK/J](http://www.ricoh-developer.com/content/device-sdk-type-j-sdkj-overview) baseado em Java está disponível para desenvolvedores após um registro.
## Kyocera/Utax \(HyPAS\)
A '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) foi lançada pela Kyocera em 2008. As aplicações são baseadas em Java ou em serviços web. O [SDK](https://www.kyoceradocumentsolutions.eu/index/document_solutions/HyPAS/hypas_developer_partner.html) está disponível apenas para membros do 'Programa de Parceiros de Desenvolvimento HyPAS' e as aplicações têm que ser aprovadas pela Kyocera.
## Konica Minolta \(bEST\)
A 'bizhub Extended Solution Technology' \([bEST](https://best.kmbs.us/)\) [\[10\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-10) que é baseada em serviços web foi introduzida pela Konica Minolta em 2009. O acesso ao [SDK](https://best.kmbs.us/pages/levels.php) requer 'nível de associação platinum' no programa de desenvolvedores por uma taxa de $4,000, o que está fora do escopo para pesquisadores independentes.
## Toshiba \(e-BRIDGE\)
A 'e-BRIDGE Open Platform' \([e-BRIDGE](http://www.estudio.com.sg/solutions_ebridge.aspx)\) foi lançada pela Toshiba em 2008 para personalizar seus MFPs de alta gama baseados em tecnologia de serviços web. Um SDK não está disponível para o público em geral.
## Sharp \(OSA\)
A '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) foi anunciada pela Sharp em 2004. O [SDK](http://sharp-partners.com/us/PartnerPrograms/DeveloperProgram/tabid/722/Default.aspx) usado para desenvolver serviços web é baseado em taxa e as aplicações precisam ser validadas pela Sharp antes de poderem ser instaladas em um MFP.
## Oki \(sXP\)
A '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) que é baseada em serviços web foi lançada pela Oki Data em 2013 para seus dispositivos MFP. A Oki não publica nenhuma informação sobre um programa oficial de desenvolvedores ou SDK disponível publicamente.
# Resultados
Em impressoras a laser HP mais antigas, bytecode Java arbitrário pode ser executado como demonstrado por [\[3\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-phenoelit2002embedded-3) e [\[4\]](http://hacking-printers.net/wiki/index.php/Software_packages#cite_note-mueller2016printers-4). A segurança é baseada na senha do servidor web embutido que pode ser facilmente recuperada com PostScript ou contornada restaurando os padrões de fábrica. É difícil fazer uma declaração fundamentada sobre a segurança de outras plataformas de software devido à falta de acesso ao SDK e/ou documentação técnica adequada. Uma comparação das plataformas, tecnologias aplicadas e onde conhecido procedimentos de implantação de pacotes de software é apresentada abaixo:
| Fornecedor | Plataforma | Java Embutido | Serviços Web | Implantação |
| :--- | :--- | :--- | :--- | :--- |
| HP | Chai/OXP | ✔ | ✔ | servidor web |
| Xerox/Dell | EIP | | ✔ | desconhecido |
| Canon | MEAP | ✔ | ✔ | desconhecido |
| Brother | BSI | | ✔ | desconhecido |
| Lexmark | eSF | ✔ | | desconhecido |
| Samsung | XOA | ✔ | ✔ | servidor web |
| Ricoh | ESA | ✔ | | desconhecido |
| Kyocera/Utax | HyPAS | ✔ | ✔ | drive USB |
| Konica Minolta | bEST | | ✔ | desconhecido |
| Toshiba | e-BRIDGE | | ✔ | desconhecido |
| Sharp | OSA | | ✔ | desconhecido |
| Oki | sXP | | ✔ | desconhecido |
## **Como testar esse ataque?**
Obtenha um SDK e escreva sua própria aplicação de prova de conceito ou encontre um 'aplicativo para impressora' que já faça o que você deseja \(por exemplo, fazer upload automático de documentos digitalizados para FTP\). Verifique também quais mecanismos de proteção existem para instalar software personalizado no dispositivo.
## **Quem pode realizar esse ataque?**
Dependendo de como os pacotes de software são implantados.
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga** me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>