13 KiB
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
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!
- Adquira o merchandising oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo do telegram ou siga me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do HackTricks e HackTricks Cloud.
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] 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 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], 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] 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] 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] 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
. 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. Um atacante web pode fazer upload do arquivo .jar
usando CSRF 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 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] 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 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 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] '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 está disponível apenas para revendedores da Samsung.
Ricoh ESA
A 'Embedded Software Architecture' [ESA](https://www.ricoh.com/esa/)
[8] foi lançada pela Ricoh em 2004. O SDK/J 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] foi lançada pela Kyocera em 2008. As aplicações são baseadas em Java ou em serviços web. O SDK 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] que é baseada em serviços web foi introduzida pela Konica Minolta em 2009. O acesso ao SDK 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] foi anunciada pela Sharp em 2004. O SDK 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] 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] e [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.
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
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!
- Adquira o merchandising oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo do telegram ou siga me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do HackTricks e HackTricks Cloud.