En anteriores entregas:
Presentación | Parte 1 | Parte 2 | Parte 3 | Parte4
Estadísticas en Tshark II Parte.
Seguimos con las estádisticas.
Arbol de destinos
Sintáxis: -z dests,tree,filtro
Nos muestra información de número de paquetes, frames capturados, protocolos usados, puertos y ratios atendiendo al tráfico de destino de hosts. Podemos aplicar filtro:
>tshark -i2 -z dests,tree -q Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 314 packets captured =================================================================== IP Destinations value rate percent ------------------------------------------------------------------- IP Destinations 312 0.049781 77.238.187.39 54 0.008616 17.31% TCP 54 0.008616 100.00% 7775 3 0.000479 5.56% 7777 13 0.002074 24.07% 7782 23 0.003670 42.59% 7780 11 0.001755 20.37% 7781 4 0.000638 7.41% 192.168.1.5 114 0.018189 36.54% TCP 112 0.017870 98.25% 80 112 0.017870 100.00% UDP 2 0.000319 1.75% 53 2 0.000319 100.00% 72.51.46.230 138 0.022019 44.23% TCP 138 0.022019 100.00% 7762 25 0.003989 18.12% 7765 14 0.002234 10.14% 7766 12 0.001915 8.70% 7768 25 0.003989 18.12% 7771 18 0.002872 13.04% 7772 44 0.007020 31.88% 192.168.1.245 2 0.000319 0.64% UDP 2 0.000319 100.00% 31449 1 0.000160 50.00% 56364 1 0.000160 50.00% 74.125.43.100 4 0.000638 1.28% TCP 4 0.000638 100.00% 7784 4 0.000638 100.00% ===================================================================
Arbol de tipo de puerto
Sintáxis: -z ptype,tree
Nos muestra información de tipo de puerto TCP O UDP:
>tshark -i2 -z ptype,tree -q Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 901 packets captured =================================================================== IP Protocol Types value rate percent ------------------------------------------------------------------- IP Protocol Types 890 0.016322 TCP 815 0.014947 91.57% UDP 67 0.001229 7.53% NONE 8 0.000147 0.90% ===================================================================
Arbol de tipo IP hosts.
Sintáxis: -z ip_hosts,tree
Nos muestra información de IP de los host involucrados en la captura, ratios, porcentajes de la captura y número de frames. En este caso vamos a usar un archivo .pcap previamente capturado:
>tshark -z ip_hosts,tree -q -r SIP_CALL_RTP_G711.pcap =================================================================== IP Addresses value rate percent ------------------------------------------------------------------- IP Addresses 4105 0.117592 200.57.7.195 145 0.004154 3.53% 200.57.7.204 1861 0.053310 45.33% 200.57.7.206 18 0.000516 0.44% 200.57.7.197 603 0.017274 14.69% 200.57.7.194 916 0.026240 22.31% 200.57.7.199 1505 0.043112 36.66% 200.57.7.198 28 0.000802 0.68% 64.69.76.21 6 0.000172 0.15% 200.57.7.205 98 0.002807 2.39% 200.57.7.188 4 0.000115 0.10% 10.52.10.15 3 0.000086 0.07% 200.57.7.202 36 0.001031 0.88% 200.57.7.196 2922 0.083704 71.18% 207.46.106.103 5 0.000143 0.12% 216.155.193.154 2 0.000057 0.05% 216.136.173.10 17 0.000487 0.41% 200.73.183.213 32 0.000917 0.78% 207.46.107.165 3 0.000086 0.07% 216.155.193.131 2 0.000057 0.05% 207.46.106.82 2 0.000057 0.05% 216.155.193.159 2 0.000057 0.05% ===================================================================
Transacciones SMB.
SMB (Server Message Block), básicamente se trata de un protocolo que permitre compartir archivos, impresoras, puertos serie, etc entre hosts conectados en red. Pertenece a la capa de aplicación OSI y es un protocolo del tipo cliente-servidor. SMB se encuentra por encima de NETBIOS, que es la que se encarga de la resolución de Nombre host / IP.
CIFS (Common Internet File System) es una implementación que supone, también, una evolución de SMB para el sistema Windows en sus versiones más modernas. Al tratarse de un protocolo de alto nivel, necesita apoyarse en protocolos de transporte como NETBIOS. Al ser una evolución e implementación de SMB, es también un protocolo cliente-servidor.
Sintáxis: -z smb,rtt
Nos muestra información de transacciones SMB, paquetes SMB, etc:
>tshark -z smb,rtt -q -r captura3.pcap =================================================================== SMB RTT Statistics: Filter: Commands Calls Min RTT Max RTT Avg RTT Close 4 0.00006 0.00013 0.00009 Trans 208 0.00009 0.00268 0.00020 Read AndX 9 0.00004 0.00007 0.00005 Write AndX 270 0.00004 0.00030 0.00005 Tree Disconnect 1 0.00004 0.00004 0.00004 Negotiate Protocol 1 0.00020 0.00020 0.00020 Session Setup AndX 2 0.00022 0.00038 0.00030 Logoff AndX 1 0.00013 0.00013 0.00013 Tree Connect AndX 1 0.00008 0.00008 0.00008 NT Create AndX 2 0.00017 0.00018 0.00017 Transaction2 Commands Calls Min RTT Max RTT Avg RTT NT Transaction Commands Calls Min RTT Max RTT Avg RTT ===================================================================
Estadísticas VoIP.
Las estadísticas rtp,stream nos permite medir los valores de parámetros que intervienen en la calidad de VoIP como el jitter, retardo y pérdida de paquetes de las llamadas, errores, etc. además nos dará información sobre las IPs, Payload o carga útil de los paquetes, etc.
Para ilustrar este tipo de estadísticas vamos a usar:
- rtp,stream
- sip,stat
rpt,steeam
Las estadísticas rtp,stream nos permite medir los valores de parámetros que intervienen en la calidad de VoIP como el jitter, retardo y pérdida de paquetes de las llamadas, errores, etc. además nos dará información sobre las IPs, Payload o carga útil de los paquetes, etc:
>tshark -q -z rtp,streams -r SIP_CALL_RTP_G711.pcap ========================= RTP Streams ======================== Src IP addr Port Dest IP addr Port SSRC Payload Pkts Lost Max Delta(ms) Max Jitter(ms) Mean Jitter(ms) Problems? 200.57.7.204 8000 200.57.7.196 40376 0xD2BD4E3E ITU-T G.711 PCMA 548 0 (0.0%) 5843.74 7.41 2.60 X 200.57.7.196 40376 200.57.7.204 8000 0x58F33DEA ITU-T G.711 PCMA 891 0 (0.0%) 379.90 0.25 0.10 X 200.57.7.202 30000 200.57.7.196 40362 0x00002E3D ITU-T G.711 PCMA 6 0 (0.0%) 30.04 0.64 1.74 ==============================================================
sip,stat
Un resumen de las estádisticas SIP. Tales como número de mensajes, número de mensajes respecto al código, resumen de métodos, etc.
>tshark -q -z sip,stat -r SIP_CALL_RTP_G711.pcap =================================================================== SIP Statistics Number of SIP messages: 14 Number of resent SIP messages: 0 * SIP Status Codes in reply packets SIP 180 Ringing : 2 Packets SIP 200 OK : 4 Packets SIP 100 Trying : 2 Packets * List of SIP Request methods ACK : 1 Packets INVITE : 2 Packets REGISTER : 3 Packets * Average setup time 1972153188 ms Min 8525 ms Max 1881173093 ms ===================================================================
Avanzando en estádisticas y filtros.
Uso de operadores en las estadísticas.
Para ello disponemos de las funciones COUNT(), SUM(), MIN(), MAX() Y AVG().
- COUNT cuantas veces un determinado valor de campo aparece en los paquetes capturados filtrados
- SUM número de ocurrencias de un valor de campo en un determinado período de tiempo.
- MIN, MAX, AVG se aplica a periodos relativos de tiempo para el cálculo de minimos, máximos y medias de ocurrencias de valores de campos.
Un ejemplo de uso podría ser el análisis de los problemas que podemos encontrar en una red. Es decir, mostrar cálculos y estádisticas para:
- pérdidas de paquetes
- ACKs duplicados
- segmentos TCP fuera de orden
- TCP previous segment lost
- etc,
Todos estos conceptos los vimos aquí: http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red
Traducido al lenguaje de los filtros pcap, sería contar, mostrar medias, y otros cálculos para:
- tcp.windows_size tamaño de la ventana TCP
- tcp.analysis.lost_segment Perdida de paquetes o segmentos
- tcp.analysis.retransmission Mecanismo de rentransmision
- tcp.analysis.fast.retransmission Mecanismo de rentransmision rápida
- tcp.analysis.duplicate_ack Análisis de ACKs duplicados
Estos filtros y su aplicación en gráficas lo vimos aquí: http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones
Pues bien todos estos análisis y cálculos lo podemos realizar y extraer estádisticas. Lo vamos viendo con ejemplos.
Para obtener estádisticas de tiempos de respuesta SMB:
>tshark -i2 -nqzio,stat,1,smb.time,MAX(smb.time)smb.time,MIN(smb.time)smb.time,AVG(smb.time)smb.time Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 10411 packets captured =================================================================== IO Statistics Interval: 1.000 secs Column #0: smb.time Column #1: MAX(smb.time)smb.time Column #2: MIN(smb.time)smb.time Column #3: AVG(smb.time)smb.time | Column #0 | Column #1 | Column #2 | Column #3 Time |frames| bytes | MAX | MIN | AVG 006.000-007.000 50 9396 0.000 0.000 0.000 007.000-008.000 5 938 0.000 0.000 0.000 008.000-009.000 2 190 0.000 0.000 0.000 049.000-050.000 0 0 0.000 0.000 0.000 050.000-051.000 60 11002 0.000 0.000 0.000 051.000-052.000 0 0 0.000 0.000 0.000 052.000-053.000 0 0 0.000 0.000 0.000 053.000-054.000 2 672 0.000 0.000 0.000 054.000-055.000 1340 140813 0.006 0.000 0.000 055.000-056.000 601 96782 0.015 0.000 0.000 056.000-057.000 1029 294763 0.005 0.000 0.000 057.000-058.000 225 55743 3.282 0.000 0.014 058.000-059.000 125 13592 0.001 0.000 0.000 059.000-060.000 48 8931 1.824 0.000 0.038 060.000-061.000 117 11731 1.439 0.000 0.012 061.000-062.000 10 2190 0.001 0.000 0.000 062.000-063.000 2 186 1.770 0.000 0.885 ..... 076.000-077.000 0 0 0.000 0.000 0.000 077.000-078.000 0 0 0.000 0.000 0.000 078.000-079.000 0 0 0.000 0.000 0.000 079.000-080.000 0 0 0.000 0.000 0.000 080.000-081.000 129 13677 0.017 0.000 0.000 081.000-082.000 0 0 0.000 0.000 0.000 082.000-083.000 7 1271 20.983 0.000 2.997 083.000-084.000 2 186 0.000 0.000 0.000 084.000-085.000 52 8149 0.000 0.000 0.000 085.000-086.000 52 21273 0.160 0.000 0.004 086.000-087.000 46 35575 0.149 0.000 0.007 087.000-088.000 4 1844 0.216 0.002 0.056 088.000-089.000 0 0 0.000 0.000 0.000 089.000-090.000 2 186 0.000 0.000 0.000 090.000-091.000 0 0 0.000 0.000 0.000 .... 134.000-135.000 1 107 0.000 0.000 0.000 135.000-136.000 0 0 0.000 0.000 0.000 ... 167.000-168.000 0 0 0.000 0.000 0.000 168.000-169.000 1 107 0.000 0.000 0.000 ... 189.000-190.000 0 0 0.000 0.000 0.000 190.000-191.000 2 186 0.000 0.000 0.000 191.000-192.000 2 186 109.212 0.000 54.606 ===================================================================
Para obtener estádisticas de retransmisiones, tamaño de ventana, etc:
>tshark -r gateway01.pcap -nqzio,stat,20,"COUNT(tcp.analysis.retransmission)tcp.analysis.retransmission","MIN(tcp.win dow_size)tcp.window_size","MAX(tcp.window_size)tcp.window_size","AVG(tcp.window_size)tcp.window_size" =================================================================== IO Statistics Interval: 20.000 secs Column #0: COUNT(tcp.analysis.retransmission)tcp.analysis.retransmission Column #1: MIN(tcp.window_size)tcp.window_size Column #2: MAX(tcp.window_size)tcp.window_size Column #3: AVG(tcp.window_size)tcp.window_size | Column #0 | Column #1 | Column #2 | Column #3 Time | COUNT | MIN | MAX | AVG 000.000-020.000 0 0 65535 63003 020.000-040.000 0 63700 65535 64257 040.000-060.000 2 0 65535 58729 060.000-080.000 1 5720 65535 48622 080.000-100.000 0 22880 65535 61530 100.000-120.000 0 25740 65535 63070 120.000-140.000 0 8526 65535 61130 140.000-160.000 0 25740 65535 64214 160.000-180.000 3 0 65535 64892 180.000-200.000 0 0 65535 63983 ===================================================================
Añadiendo información de protocolos a los paquetes capturados.
Podemos incluir información a los frames de paquetes capturados de la forma:
-z proto,colinfo,filtro,campo
Que podenos añadir. Ya estudiamos en su momentos los campos de un datagrama IP y vimos algunos campos como versión, TTL, Tipo de servicio, banderas o flags, etc. En una captura tshark normal no veriamos estos campos. Con proto,colinfo podemos ver mucho de ellos.
Algunos ejemplos con:
- -z proto,colinfo,ip.ttl,ip.ttl
- -z proto,colinfo,ip.proto,ip.proto
- -z proto,colinfo,ip.proto,ip.proto -z proto,colinfo,ip.ttl,ip.ttl
- -z proto,colinfo,ip.proto,ip.proto -z proto,colinfo,tcp.len,tcp.len
>tshark -i2 -z proto,colinfo,ip.ttl,ip.ttl Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 0.000000 192.168.1.5 -> xxx.xxx.xxx.37 TCP 3466 > 80 [SYN] Seq=0 Win=64512 Len=0 MSS=1460 SACK_PERM=1 ip.ttl == 128 0.261308 xxx.xxx.xxx.37 -> 192.168.1.5 TCP 80 > 3466 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 SACK_PERM=1 ip.ttl == 128 0.261348 192.168.1.5 -> xxx.xxx.xxx.37 TCP 3466 > 80 [ACK] Seq=1 Ack=1 Win=64512 Len=0 ip.ttl == 128
Observad, arriba, como termina cada traza dando información sobre ttl. (ip.ttl ==)
Abajo vemos como nos devuelve información en cada traza de lo indicado en línea de comandos:
>tshark -i2 -z proto,colinfo,ip.proto,ip.proto -z proto,colinfo,tcp.len,tcp.len Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 9.417877 192.168.1.5 -> xx.xx.xxx.xxx TCP 2937 > 60559 [PSH, ACK] Seq=1 Ack=1 Win=64431 Len=2 tcp.len == 2 ip.proto == 6 9.621027 xx.xx.xxx.xxx -> 192.168.1.5 TCP 60559 > 2937 [ACK] Seq=1 Ack=3 Win=64503 Len=0 tcp.len == 0 ip.proto == 6 10.149190 xx.xx.xxx.xxx -> 192.168.1.5 TCP 60559 > 2937 [PSH, ACK] Seq=1 Ack=3 Win=64503 Len=2 tcp.len == 2 ip.proto == 6 10.460815 192.168.1.5 -> xx.xx.xxx.xxx TCP 2937 > 60559 [ACK] Seq=3 Ack=3 Win=64429 Len=0 tcp.len == 0 ip.proto == 6
Uso simultáneo de estadísticas.
Para una misma captura podemos realizar diferentes tipos de estádísticas de forma simultánea. Tan solo tendremos que incluir tantas -z, para invocar estádisticas, como necesitemos:
>tshark -i2 -nqzio,stat,1,smb.time,MAX(smb.time)smb.time,MIN(smb.time)smb.time,AVG(smb.time)smb.time -z ip_hosts,tree Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 1179 packets captured =================================================================== IP Addresses value rate percent ------------------------------------------------------------------- IP Addresses 1131 0.040072 192.168.1.94 1 0.000035 0.09% 192.168.1.5 1111 0.039363 98.23% 192.168.1.25 45 0.001594 3.98% 192.168.1.19 4 0.000142 0.35% 192.168.1.6 13 0.000461 1.15% xxx.xxx.xx.xxx 518 0.018353 45.80% xxx.xxx.xx.xxx 19 0.000673 1.68% xxx.x.xx.xxx 19 0.000673 1.68% 192.168.1.11 20 0.000709 1.77% xxx.xxx.xx.xx 2 0.000071 0.18% xxx.xxx.xx.xx 153 0.005421 13.53% 192.168.1.36 14 0.000496 1.24% 192.168.1.28 18 0.000638 1.59% 192.168.1.56 13 0.000461 1.15% 192.168.1.70 14 0.000496 1.24% 192.168.1.24 13 0.000461 1.15% 192.168.1.61 15 0.000531 1.33% 192.168.1.30 25 0.000886 2.21% 192.168.1.10 13 0.000461 1.15% 192.168.1.89 13 0.000461 1.15% 192.168.1.29 4 0.000142 0.35% =================================================================== =================================================================== IO Statistics Interval: 1.000 secs Column #0: smb.time Column #1: MAX(smb.time)smb.time Column #2: MIN(smb.time)smb.time Column #3: AVG(smb.time)smb.time | Column #0 | Column #1 | Column #2 | Column #3 Time |frames| bytes | MAX | MIN | AVG 000.000-001.000 0 0 0.000 0.000 0.000 004.000-005.000 0 0 0.000 0.000 0.000 005.000-006.000 43 9279 0.001 0.000 0.000 006.000-007.000 0 0 0.000 0.000 0.000 011.000-012.000 0 0 0.000 0.000 0.000 012.000-013.000 106 19592 0.072 0.000 0.001 013.000-014.000 9 2667 0.000 0.000 0.000 014.000-015.000 0 0 0.000 0.000 0.000 015.000-016.000 18 2690 0.000 0.000 0.000 016.000-017.000 0 0 0.000 0.000 0.000 017.000-018.000 2 190 0.000 0.000 0.000 026.000-027.000 0 0 0.000 0.000 0.000 027.000-028.000 163 20562 0.003 0.000 0.000 ===================================================================
Y hasta aquí por hoy. En el proximo capítulo hablaremos ya de otras aplicaciones y un caso práctico para Tshark.