Auditando impresoras HP Laserject

Hace un mes estuve auditando un sistema de impresión HP y quisiera escribir un poco sobre los fallos más comunes de estas instalaciones. Las impresoras HP están muy extendidas y son comunes en grandes corporaciones, tal como era el caso. Por otro lado las instalaciones suelen estar pensadas para que haya cuentas de usuario centralizadas a través de las cuales se imprime. Esto quiere decir que nadie debería poder imprimir sin utilizar su cuenta. Como veremos a continuación las instalaciones por defecto permiten saltarse esta restricción.
Otro de los puntos críticos a la hora de auditar un servicio de impresión es comprobar si es posible ver los trabajos que imprimen otros usuarios, lo que podría permitir una fuga de información en algunos casos crítica. Como veremos también es posible en algunas circustancias.

Antes que nada debemos saber que una impresora en red es un dispositivo más, con sus puertos y sus servicios a la escucha. El puerto habitual para el LDP (protocolo de impresion) es el 515 tcp. Las impresoras HP utilizan el protocolo JetDirect, localizado en el puerto 9100. Adicionalmente suelen tener un servidor web a través del cual se pueden consultar logs, administrar la impresora, etc.

Lo primero que comprobaremos es si es posible imprimir anónimamente. La forma más facil de realizar esto es a través del propio servidor web de la impresora. Habitualmente tienen un panel de control a través del cual se configura la misma, se imprimen ficheros enviados, etc. Dicho panel suele y debe estar protegido mediante contraseña (queda fuera del objeto del post crackear la misma). Sin embargo algunos modelos de HP como la Laserject 5550 tienen la opción de imprimir fuera del panel de control, por lo que podemos imprimir ficheros sin utilizar cuentas de usuario, tal como podemos apreciar en la siguiente imagen:


Free Image Hosting at www.ImageShack.us

En el caso de que la impresión via web no esté permitida tenemos otro punto de acceso, se trata del puerto 9100. Si el acceso a dicho puerto no se encuentra restringido es posible hacer telnet a dicho puerto, y lo que escribamos por consola saldrá impreso en el dispositivo:

Cthulhu:~# telnet ip_impresora 9100
Trying 192.168.1.2…
Connected to 192.168.1.2.
Escape character is ‘^]’.
este texto saldrá impreso :)
^]
telnet> quit
Connection closed.
Cthulhu:~#

Esto que en principio parece una chorrada pero como veremos a continuación es una via de ataques más serios. A través del puerto 9100 se puede administrar la impresora, modificar parametros, etc. Todo esto mediante un lenguaje propietario de HP denominado PJL (Printer Job Lenguaje). El tema es lanzar comandos a la impresora y en función del tipo de acceso de que dispongamos podremos modificar más o menos parametros. Lo habitual es la chorradita de cambiar el display de la impresora, mediante la modificación del parametro @PJL RDYMSG DISPLAY, tal como vemos a continuación:

Cthulhu:~#$ telnet ip_impresora 9100
@PJL RDYMSG DISPLAY=”owned by m313″
^]quit
Cthulhu:#$

Tan común es la chorradita dle display que encontramos hasta programas que lo hacen por nosotros como hpnt:

Binario Windows
Fuente Linux

Lo realmente interesante es intentar aprovechar la modificación de parametros, para ello lo ideal es bajarse la guia oficial de PJL de HP y echarle un vistazo a la multitud de comandos disponibles. Especialmente recomiendo la lectura de los apartados PJL File Sistem Commands y Job Management.

Como vemos es un tema en apariencia sencillo pero que tiene un alto grado de profundización, recomendable tener cuidado con la introducción de comandos, ya que no todos los modelos de impresoras admiten todos los comandos (ver guia HP sobre comandos en función de modelos) y yo he comprobado personalmente que algunas impresoras se quedan fritas cuando se les intenta modificar los comandos mediante estos métodos.

Mención aparte merece el otro punto de ataque a estos dispositivos, el protocolo SNMP a través del cual se puede obtener mucha información sobre la configuración de la impresora. Me gusta especialmente la herramienta snmpwalk para este fin.

Y cómo no siempre podemos tirar de vulnerabilidades conocidas, una de las más conocidas es la siguiente:
http://www.securityfocus.com/bid/7001/exploit.

Referencias:

Hacking Network Printers
Pwn a Printer! – Notacon 2006

Tags: ,

Leave a Reply