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.

2013-05-17

Pasando los Procesos a Correr por Debajo

Muchas veces necesito dejar bajando algo o corriendo una captura de tráfico, pero dejar la consola de SSH  abierta hasta que termine no es tan viable cuando el proceso puede durar más de 10 horas, pensando en esto Linux permite enviar los procesos a correr en BackGround o por debajo, lo cual es ideal para dejarlo corriendo y poder seguir usando la consola.

Esto se logra deteniendo el proceso con Ctrl+Z y ejecutando el comando bg, así de simple como se ve a continuación en la imagen


Una vez lo ejecutas puedes si quieres ver que el proceso sigue activo así



Ahora si dentro de la misma sesión el proceso no ha terminado lo puedes subir nuevamente para que lo tengan en la consola ejecutando. Este proceso también es en dos pasos, primero le das el comando jobs y este te muestra los procesos en background identificandolos con un número, entonces le das el comando fg y el numero del proceso.  Así como se ve a continuación


Espero que les sea tan útil como a mi.

2013-05-03

Log2pcap Extraer el Tráfico de un Log de Web

Tras leer una entrada de Joaquin Moreno en la pagina de Securty Art Work, la cual sigo y me parece excelente, presentaba una herramienta que me pareció excelente para las pruebas de sistemas de IDS y las detecciones en ataques a servidores Web.

Para hacer una prueba en un entorno controlado pero real use un servidor web donde tengo montado un OSSEC, la cual estaba mencionada por Joaquin, así que para hacerlo real lance desde otra IP pública un análisis con Nikto y con tcpdump capture el trafico durante el ataque para comparar, por lo que empezare mostrando los primeros paquetes capturados.


Bueno entonces lo primero es descargar el programa de log2Pcap.py, que lo encuentras aquí y lo puedes bajar por consola así

root@victima:~# wget https://forensics-log-2-pcap.googlecode.com/files/log2pcap.py

Y si tienen algún problema para ejecutarlo, deben instalar scapy, que es una librería de Python, la cual pa puedes instalar así

root@victima:~# apt-get install python-scapy

Bueno ya con todo listo solo falta probar que este script funcione. Entonces como les decía la prueba fue en un entorno totalmente controlado y aunque era con direccionamiento público todas las direcciones las administro y puedo controlar. 

Entonces lanzo el ataque con el comando así

root@atacante:~# nikto -host 190.253.75.173

Y extraje solo el fragmento de log generado durante este "ataque" para poder rescatar el tráfico con el script  y así mismo comparar con la captura realizada durante el procedimiento. Entonces una vez termine extraje solo esos registros y use el script así

root@localhost:~# ./log2pcap.py ataque_log creado.pcap apache 190.253.75.173 80

Los datos que se adicionan al comando son los siguientes

ataque_log >> Segmento del log donde estaban todos los registros generados por Apache durante el ataque

creado.pcap >> Archivo que se va  a crear tras el proceso de conversión de log a pcap.

apache >> Nombre del servidor web que genero los logs, en la ayuda del script puedes ver los servidores que son soportados, tales como IIS y nginx.

190.243.75.173 >> Dirección IP del servidor

80 >> Puerto donde esta configurado el servicio Web

Bueno tras unos pocos minutos se genera el archivo pcap que necesitamos, por lo que lo visualizo con wireshark como el inicial para ver y comparar los resultados.


Como pueden ver la recuperación es perfecta, dan los mismos paquetes que en la captura de trafico que se realizo durante el ataque.

Bueno no me queda más sino dar mi más sincera felicitación y admiración a Joaquin Moreno por el trabajo realizado en este programa y las gracias por ayudarnos a generar tráfico "falso" para el análisis y pruebas en detectores de intrusos u otras que se nos puedan ocurrir.