Vimos en un anterior artículo como formatear las columnas para que nos muestre Tshark solo la información desdeada. Siempre en relación a la información estandard de columnas, tal como aparece en las preferencias de Wireshark.
Debido a consultas de algunos mis lectores relativas a como como mostrar ciertas información más personalizada, etc…. veremos en este artículo una forma avanzada de mostrar en columnas y sin recurrir a estádisticas etc, la información de cualquier campo y cualquier protocolo en la salida a consola de Tshark. Veremos tambíen alguna información interesante como puede ser tcp.stream.
Breve resúmen de formateo de columnas en Tshark
vimos, en la primera parte, que por defecto Tshark nos muestra una línea por paquete y estos, a su vez, contienen información de:
- marca de tiempo
- dirección origen
- dirección destino
- protocolo
- puerto origen
- puerto destino
- información del contenido del paquete
También vimos, que esta información puede ser personalizada mediante el comando -o column.format.
La sintáxis sería: -o column.format:”»nombrecolumna“, “%formato“”
Algunos ejemplos que vimos contenían:
-
«No.», «%m»
-
«Time», «%t»
-
«Source», «%s»
-
«Destination», «%d»
-
«Protocol», «%p»
-
«Info», «%i»
Algunos ejemplos lo podéis ver en la primera parte:
Tshark. Column Format. Formateo de columnas e información a mostrar.
El parámetro %Cus:.
Pues bien, existe un parámetro para la línea de comandos de Tshark que es «%Cus:«, que nos permite incluir información, por ejemplo, de campos de protocolo en la información mostrada en las columnas de la salida de pantalla.
Por ejemplo.
Para el protocolo IP tenemos, relativo a display filters o filtros de visualización, una serie de filtro que extraen información de los campos del datagrama IP:
- ip.flags bandera para indicadores de control. Usado en caso de fragmentación
- ip.dst dirección destino
- ip.src dirección origen
- ip.ttl tiempo de vida. Impide que un paquete esté indefinidamente viajando por la red…
Pues bien, esta información la podríamos mostrar de esta manera:
- >tshark -o column.format:»»IP_Flags», «%Cus:ip.flags», «IP_origen», «%Cus:ip.src», «IP_destino», «%Cus:ip.dst», «IP_TOS», «%Cus:ip.tos»
Siguiento esta forma, podemos crear una presonalización de columnas tal como esta, añadiendo filtros, etc con campos de un segmento TCP.
Mezclaremos la forma estandard con el parámetro %Cus:. Mostraremos información del tipo.
- tcp.stream identificación de la conexión
- tiempo
- origen
- destino
- puerto
- protocolo
- tcp.seq número de secuencia
- tcp.ack acknowledgement number o acuse de recibo
- tcp.flags flags o indicadores (SYN,FIN,ACK,RST,PSH,URG)
- tcp.len longitud del segmento TCP (está «dentro» de suma de control o Checksum)
Y añado también:
- Info. Info está por defecto en una salida normal de Tshark con datos que ya hemos comentado como tcp.flags, tcp.seq, etc. Lo añado, aunque es redundante en este caso, para que veáis la diferencia. Lo indico en la captura de pantalla. A partir del símbolo «>» es Info.
Todo esto está en la siguiente secuancia de comandos para Tshark:
- >tshark -n -l -f tcp -i 3 -o column.format:»»Connection», «%Cus:tcp.stream», «Time», «%t», «Source», «%s», «S_port», «%uS», «Destination», «%d», «D_port», «%uD», «Protocol», «%p», «tcp.seq», «%Cus:tcp.seq», «tcp.ack», «%Cus:tcp.ack», «tcp.flags», «%Cus:tcp.flags», «tcp.len», «%Cus:tcp.len», «Info», «%i»»
El valor tcp.stream.
En la anterior captura de pantalla, a la izquierda en gris, es la información de tcp.stream o identificador de la conexión.
Si en Wireshark realizáramos el típico Follow TCP Stream (seguir el TCP Stream), este se guiaría por el valor tcp.stream para identificar la conexión y mostrar el dialogo entre los hostspara la capa de aplicación.
====
Y hasta aquí por hoy. Hasta la próxima.
Pingback: Tshark. Follow TCP Stream en modo CLI mediante estadísticas tshark. | Seguridad y Redes
Pingback: Tshark. Mostrando información de capturas con Json, EK Json y JQ. Parte I. | Seguridad y Redes