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

112 lines
13 KiB
Markdown
Raw Normal View History

<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>