Hemos visto muchas herramientas .pcap que realizan la tarea de gestionar y mostrar información .pcap o live-capture de múltiples maneras, cada una con sus características que las diferencia de las demás. De esta forma hemos visto justniffer, netsniff-ng, assniffer, Argus, Vortex, Tshark, windump, tcptrace, Xplico CLI, tcpxtract, scapy, etc, etc.
En esta ocasión vamos a ver la herramienta .pcap tcpick. Tcpick realiza el seguimiento de flujos TCP, los ordena y reensambla, mostrando información de estados de conexión, información de payload o carga últil, datos de conexiones FTP, HTTP, download de archivos involucrados en una captura, etc. Se trata de una herramienta ya algo antigua (2005) pero totalmente usable.
Instalación de tcpick y uso básico.
Para instalar tcpick tan solo es encesario un simple
- sudo apt-get install tcpick
que instalará la última versión correspondiente a la 0.2.1.
El uso más basico sería le siguiente:
- tcpick -i interface red
- tcpick -r archivo.pcap
La primera diferencia respecto a otros capturadores tipo windump/tshark/tcpdump es el tipo de información que muestra:
127 SYN-SENT 192.168.1.5:59009 > 192.168.1.96:280 127 RESET 192.168.1.5:59009 > 192.168.1.96:280 128 SYN-SENT 192.168.1.5:59009 > 192.168.1.96:ospfd 128 RESET 192.168.1.5:59009 > 192.168.1.96:ospfd 129 SYN-SENT 192.168.1.5:59009 > 192.168.1.96:5510 129 RESET 192.168.1.5:59009 > 192.168.1.96:5510 130 SYN-SENT 192.168.1.5:59009 > 192.168.1.96:32783 130 RESET 192.168.1.5:59009 > 192.168.1.96:32783
vemos de forma clara la información del track o sesión, estado conexión, IP origen y destino con los puertos correspondientes.
Vamos a aplicar ahora un filtro BPF, colorear la salida (-C) y mostrar información de una sola sesión (-T1) :
tcpick -r ids_2.pcap «port 21» -C -T1
Podríamos añadir marcas de tiempo com -t o -td. También mostrar más información como puertos e IP origen y destino flags TCP, etc con -h, con lo que ya no mostraría solo la infomación desde el puntio de vista de la sesión, ahora se mostraría el «diálogo» completo de la sesión 1:
tcpick -r ids_2.pcap «port 21» -C -T1 -t -h
Tratándose de una conexión FTP es posible que contenga datos, passwords, usuario, etc. Para ello vamos a visualizar los datos contenidos en el paylodad de los paquetes.
Tenemos varias formas de hacerlo:
- -yH Para visualizar los datos en formato hexadecimal (spaced-mode).
- -yP -yR –yU Mostrará los datos de forma más «humana».
- -yx Datos en formato hexadecimal
- -yX Datos en forma hexadecimal y ASCII.
Por ejemplo:
tcpick -r ids_2.pcap «port 21» -C -T1 -yP
Recostrucción de secuencia TCP y escritura a fichero. Extracción de ficheros.
Para escribir los datos a fichero, usaremos la opción –wR de la forma:
tcpick -r ids_2.pcap «port 21» -C -T1 -wR
En este caso escribirá dis ficheros uno del lado del cliente y otro del servidor:
- tcpick_192.168.101.240_19x.xxx.xx.85_ftp.clnt.dat
- tcpick_192.168.101.240_19x.xxx.xx.85_ftp.serv.dat
Podríamos especificar para servidor y cliente de la forma -wRS y –wRC
El contenido de estos ficheros los podemos visualizar, están en modo texto, con cat por ejemplo.
Extracción de ficheros sesión ftp.
Ahora vamos a extraer el fichero o ficheros transmitidos en una sesión FTP:
tcpick -r ./pcap1/ftp_01.pcap -yP -h
vemos que tenemos unas líneas de salida:
227 Entering Passive Mode (79,xxx,xx,xx,x,91) STOR Gu..a de Administraci..n de Redes 2.0.pdf 10 SYN-SENT 192.168.1.5:5841 > 79.xxx.xx.x:15963 10 SYN-RECEIVED 192.168.1.5:5841 > 79.xxx.xx.x:15963 10 ESTABLISHED 192.168.1.5:5841 > 79.xxx.xx.x:15963 150 Connection accepted
Ahora podríamos hacer:
tcpick -r ./pcap1/ftp_01.pcap -wR «port 5841«
Obtendremos el fichero:
2287276 jun 5 17:06 tcpick_192.168.1.5_79.148.235.26_15963.serv.dat
que corresponde al .pdf que hemos extraído. si renombramos el dat a pdf podremos abrirlo sin problema.
Visualizando datos de captura.
Algunos tips para usar con tcpick:
tcpick -r ../pcap1/captura.pcap -C -yP | grep GET
tcpick -r ../pcap1/captura.pcap -C -yP -S -h
—————-
Hay mucho más. Lo iremos viendo. Hasta aquí por hoy. Hasta la próxima.
Grande alfon !! como siempre impecable 😉
Gracias bro!. Seguí tu consejo y ya estoy otra vez en el lío. El próximo artículo en DAboweb !.
Pingback: Tcpick. Capturando y visualizando impresiones en red con -wR desde fichero .pcap. | Seguridad y Redes
Muchas gracias por esta entrada. Andaba tiempo pegándome con TShark para mostrar el payload de un POST y no había manera.
Con esto, y algunas líneas de shellscripting, he conseguido mostrar lo que quería.
Un saludo
Gracias a tí Nelo y me alegro que te hay servido el artóculo.
Hola, muy interesante este articulo sobre captura de paquetes y su analisis.
Yo estoy intentando desarrollar un programita en c++ para simular paquetes y guardarlos en formato .pcap, genero el archivo pero tengo problemas en generar cada bloque de datos especificamente (header ip + header tcp + data), tiene algun ejemplo en el cual pueda basarme?…
Hola. Entiendo que lo que aporta Tcpick respecto Tshark es facilidad y comodidad, pero que con la segunda se podría obtener el mismo tipo de información (con algo de paciencia y maña) que con la primera, ¿verdad? Gracias!