Herramientas para la interpretación de capturas de red. (5/10)

Posted by Alfon on octubre 21, 2010
Seguridad Informática

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.

Tags: , , , , ,

Comments are closed.

Sentimos molestarte con lo de las Cookies, pero es por imperativo legal. Puedes ver aquí la Política de Cookies, si continúas navegando te informo que la estás aceptando ;)    Ver
Privacidad