2013-05-22

TSHARK: una poderosa herramienta de análisis de tráfico

Es un comando que te permite usar filtros tan avanzados como los de wireshark pero en la consola, con lo que puede ser usado en cualquier momento y maquina sin que se requiera el entorno gráfico. Esta herramienta es muy útil para administradores o en análisis de incidentes, donde el trafico de una red es la principal evidencia de investigación.

Primero como lo debes instalar, como siempre con apt es muy simple

root@localhost:~# apt-get install tshark

Una vez lo tienes instalado toca empezar a aprender a usarlo, para que veas todas las capacidades que tiene te recomiendo ver el manual del comando o ver este link http://www.wireshark.org/docs/man-pages/tshark.html, acá colocare algunos ejemplos de como usarlo que he probado y que he extraído de varios blogs y notas en Internet. Por lo que no voy a colocar una referencia única y de antemano me disculpo con quien crea que lo copie, solo estoy usando unos de los ejemplos que pude probar.



Captura Básica Guardando en Archivo

root@localhost:~# tshark -i eth0 -q -w archivo.pcap

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 y guardarlo en un archivo  para su posterior análisis, pero no veras de forma interactiva que sucede, si necesitas ir mirando que sucede, le debes retirar la opción -q


Captura Básica Durante un Tiempo Determinado

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -a duration:120

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 durante 120 segundos y guardarlo en un archivo para su posterior análisis.


Captura de Tráfico de una Dirección IP y sus Estadísticas 

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -R "ip.addr == 192.168.18.123" -z io,stat,10 

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0  generado por la dirección IP que coloques y guardarlo en un archivo para su posterior análisis, además te generara una tabla de estadísticas de la captura cada 10 segundos (en este caso), lo cual se vera en consola así


=================================
IO Statistics
Interval: 10.000 secs
Column #0:
                |   Column #0
Time                     |frames|  bytes
000.000-010.000       1        60
010.000-020.000      16      6987
020.000-030.000      13      5853
030.000-040.000       6      1533
=================================



Captura por Puerto y Protocolo de Servicio 

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -d tcp.port==2223,ssh

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 en el puerto de TCP 2223 y cuyo servicio de capa de aplicación es el SSH, además de guardarlo en un archivo para su posterior análisis. Es muy útil cuando crees que en un puerto diferente al especifico de un servicio se esta usando, ya que lo puedes confirmar por capa de aplicación.



Captura de un Puerto y Protocolo Especifico

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -f "udp port 5060"

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 cuyo protocolo de trasmisión sea UDP y el puerto que use sea el 5060, además de guardarlo en un archivo para su posterior análisis.




Captura por Protocolo de Servicio 

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -R "ftp"

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 cuyo servicio de capa de aplicación es el FTP, sin importar en que puerto este funcionando, además de guardarlo en un archivo para su posterior análisis.



Captura de una Conversación entre Dos IPs 

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -R  "ip.addr == 10.2.2.22 && ip.addr == 10.80.14.23"

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 que sea entre las dos direcciones que especificaste en el  filtro, además de guardarlo en un archivo para su posterior análisis.





Captura Generando Archivos por Tiempo 

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -b duration:15

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 y generar varios archivos, donde cada uno de estos contiene 15 segundos de tráfico capturado. Generaría algo como lo siguiente


-rw-------   1 root   root     8727 May 22 16:15 archivo_00001_20130522161519.pcap
-rw-------   1 root   root     1508 May 22 16:15 archivo_00002_20130522161534.pcap
-rw-------   1 root   root     8619 May 22 16:15 archivo_00003_20130522161549.pcap




Captura de Requerimientos GET de HTTP

root@localhost:~# tshark -i eth0 -q -w archivo.pcap -R "http.request"

Con este comando vas a poder guardar todo el trafico que pase por la tarjeta eth0 cuya protocolo de servicio es el HTTP y cuya característica de sesión es el método GET del protocolo, además guardarlo en un archivo  para su posterior análisis.




Espero que les sirva y les sea útil.