Golismear la impresora de red

Publicado por Pedro C. el 15-10-2012

Los que somos Manchegos, sabemos que la palabra “Golismero” se atribuye al que hace el acto de "golismear" o mejor dicho, como recoge en su definición El Bienhablao, "meter el morro pa’ ver lo que está sucediendo".

Hoy, vamos a ver cómo golismear lo que se imprime en la nueva, flamante e impresionante multifunción en red que han traido a la empresa con cuatropecientas bandejas, alimentadores automáticos, superclasificadores, grapadoras, buzones, ftp, vamos, que "tiene de tó".

Vamos a aprovechar varias herramientas "viejunas" para hacerlo pero no menos importantes. Nos basaremos en ettercap y tcpick que podeis encontrar en http://tcpick.sourceforge.net

Vamos a instalarlas lo primero para poder trabajar con ellas. Pondremos:

apt-get install ettercap tcpick
					

Como lo vamos a hacer con un MitM (Man in the Middle) entre nuestro equipo y la impresora, necesitaremos activar el forwarding para que al menos, el que mande algo a imprimir, por lo menos le salga.

echo 1 > /proc/sys/net/ipv4/ip_forward
					

Ahora, vamos a hacer el MitM entre la impresora y el resto de equipos suponiendo que tiene la dirección IP 192.168.1.200

ettercap –i eth0 –T –q –M arp:remote /192.168.1.200/ //
					

El comando poco tiene de comentario, -i especifica la interface y las dos últimas barras // significan "todas las IP’s restantes". Recordar para más detalle "man before google".

Ahora simplemente, vamos a usar tcpick que nos permite escuchar, realizar el seguimiento y reensamblado de flujos tcp y mostrar los datos de los payloads. La impresora, normalmente la tendremos funcionando en el puerto TCP/9100 por lo que lo vamos a especificar como filtro para no crear un fichero demasiado extenso. El comando, con el modificador -wR nos permite guardarlo en un fichero pcap y en concreto, nos guardará la comunicación del cliente->servidor y servidor->cliente en dos ficheros. Para aquellos que miren el man, verán -wRS para el server y también -wRC para el cliente. En nuestro caso particular, sólo nos servirá la parte del servidor aunque no filtraremos por si alquien quiere analizar luego la parte cliente->servidor en wireshark, tshark o similares. El –C es para verlo en color.

Pondremos el comando a la escucha:

tcpick –i eth0 –C –wR “port 9100”
					

También, si ya disponemos de un fichero de captura, podremos leerlo y filtrarlo con tcpick –r fichero.pcap

Cuando nos hayamos aburrido ;-D o bien veamos un "CLOSED" al puerto 9100 significará que alguien ha impreso algo y podremos verlo.

Lo más "bonito" de tcpick es que nos da por defecto la información de la sesión, el estado de la conexión, IP’s y puertos aunque si miramos el man, veremos que podemos especificar muchas más cosas.

Starting tcpick 0.2.1-6 at 2012-10-15 07:15 CEST
Timeout for connections is 600
Tcpick: listening on eth0
Setting filter: “port 9100”
07:16:42.672171  1      SYN-SENT       	192.168.1.3:1510 > 192.168.1.200:9100
07:16:42.822239  1      SYN-RECEIVED    192.168.1.3:1510 > 192.168.1.200:9100
07:16:42.826634  1      ESTABLISHED     192.168.1.3:1510 > 192.168.1.200:9100
07:16:42.854681  1      FIN-WAIT-1      192.168.1.3:1510 > 192.168.1.200:9100
07:16:43.084242  1      FIN-WAIT-2   	192.168.1.3:1510 > 192.168.1.200:9100
07:16:43.087045  1      TIME-WAIT    	192.168.1.3:1510 > 192.168.1.200:9100
07:16:44.061311  1      CLOSED       	192.168.1.3:1510 > 192.168.1.200:9100

810 packets captured
1 tcp sessions detected
					

Pulsaremos entonces CTRL+C para finalizar la captura y ver lo que han enviado. ¿Cómo sabemos que se ha enviado? Es una de las mejores cosas que implementa su modo de visualización, ya que nos permite seguir el establecimiento y cierre completo de la conexión de una forma muy resumida y detallada.

Veremos que ha creado dos ficheros tipo:

tcpick_IP-SRC_IP-DST_PORT.clnt.dat

tcpick_IP-SRC_IP-DST_PORT.serv.dat

En nuestro caso, vamos a editar el segundo (la parte relativa al server).

Ahora, lo abriremos con un simple editor de texto, buscaremos la cadena %!PS-Adobe-3.0 y borraremos *todo* lo que hay antes. Buscaremos entonces %%EOF y borraremos *todo* lo que hay después.

Guardaremos el fichero con la extensión .ps (p.e. secretaria.ps) y lo abriremos con un visor de PostScript.

Otros tipos de ficheros como XPS, podeis leer perfectamente el XML e interpretar dicho fichero al eliminar las entradas anteriores y posteriores con su visor correspondiente.

Tiene una opción --pipe [client | server] bastante interesante que nos permite reencadenarlo a otros programas como netcat, etc... para poder interactuar en tiempo real con los paquetes recibidos o enviados... El resto es cosa vuestra.

Recuerda que en Academia MADESYP nos encontramos impartiendo Cursos especializados en Seguridad Informática donde realizamos y establecemos las contramedidas para las pruebas de concepto con todo ésto y mucho más...

Ser buenos y no hagais maldades!!!