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