Parseando pcaps con tshark

En una investigación en la que tenemos que tratar tráfico de red, si no contamos con algunos tricks puede ser una tarea bastante tediosa.

Una de las primeras cosas que tendremos que saber es:

¿Qué queremos obtener?

Imaginad que estamos en un equipo anti-fraude y tenemos que mandar a cerrar al ISP aquellos dominios relacionados con phishing o malware. En este caso nos dará igual las peticiones GET o POST (aunque también son útiles), lo más rápido que buscaremos son las peticiones DNS, por ejemplo. En este caso no hará falta que revisemos el pcap entero, podríamos directamente extraer las peticiones DNS, si además lo podemos scriptar mucho mejor, por si hay que mirar mucha cantidad de paquetes.

¿Que herramientas nos pueden ayudar?

Bueno, en este caso mostraré la versión GUI de la herramienta y luego la versión consola, que es de lo que trata el artículo 😉

Wireshark

Esta imagen nos debería de ser muy familiar, se trata de Wireshark, este programa nos sirve entre otras cosas para capturar el tráfico de red.

Si abrimos un pcap podemos ver gráficamente todo el flujo de datos, además podremos aplicar filtros para hacer las búsquedas que necesitemos.

filters_wireshark

Seleccionando el filtro adecuado podríamos obtener por pantalla el resultado del filtro en el pcap.

A mi me encantan las interfaces GUI, pero reconozco que es mucho más rápido y, además puedes procesar mas cantidad de información el poder usar alguna herramienta del tipo command line.

En este caso usaremos tshark, la versión de consola de Wireshark.

Se puede encontrar en los repositorios, para instalarlo solo hemos de hacer:

apt-get install tshark

Vamos a ver unos ejemplos para obtener cierta información de un pcap.

Extrayendo peticiones DNS

Para extraer peticiones DNS de un pcap tendríamos que lanzar tshark de la siguiente forma:

tshark -r PCAP -T fields -e ip.src -e dns.qry.name -R “dns.flags.response eq 0”

En este caso veríamos por pantalla:

dns_querys

Extrayendo User-agents

En una determinada investigación, puede ser útil extraer los user agents del pcap, la sentencia de tshark sería:

tshark -nn -r PCAP -T fields -e ip.src -e http.user_agent -R “http.user_agent”

Por pantalla podemos ver los resultados

user_agent_pcap

Extrayendo peticiones MYSQL

Imaginad que en una investigación una base de datos forma parte de la investigación, también podemos extraer facilmente información del pcap

La sentencia de tshark sería:

tshark -r PCAP -d tcp.port==3306,mysql -T fields -e mysql.query

Por pantalla podemos ver los resultados de nuevo:

mysql_querys_pcap

Peticiones GET:

Si queremos de manera rápida, extraer las peticiones GET, con tshark realizamos:

tshark -r PCAP -R “http.request.method==GET”

Por pantalla nos muestra:

GET_querys

Aunque hemos visto que podemos extraer información de un pcap, con tshark, podremos también capturar tráfico de red y pedir con filtros tráfico específico

Capturar peticiones HTTP:

La sentencia con tshark sería:

tshark ‘tcp port 80 and (((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0)’ -R ‘http.request.method == “GET” || http.request.method == “HEAD”‘

Y lo que veríamos en el output de tshark es:

190.302141 192.168.0.199 -> 74.125.77.104 HTTP GET / HTTP/1.1
190.331454 192.168.0.199 -> 74.125.77.104 HTTP GET /intl/en_com/images/srpr/logo1w.png HTTP/1.1

190.353211 192.168.0.199 -> 74.125.77.104 HTTP GET /images/srpr/nav_logo13.png HTTP/1.1190.400350 192.168.0.199 -> 74.125.77.100 HTTP GET /generate_204 HTTP/1.1

En este artículo hemos visto como podemos con tshark extraer información de un pcap, además de como podemos capturar tráfico aplicando un filtro específico.

No he podido encontrar un cheatsheet de tshark, ¿Te animas a compartir algún script con tshark?


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: Seifreed

Formado en un equipo de lucha contra el fraude. He trabajado implementando la protección y prevención del fraude en varios clientes dentro del sector bancario nacional e internacioal. Mi trabajo consiste en encontrar soluciones a los problemas actuales y futuros de las entidades financieras respecto al código malicioso y el fraude. Especialidades como el análisis de malware, análisis forense, ingeniería inversa o tareas de hacking ético, forman parte de mis tareas diarias. Soy ponente ien eventos nacionales (No cON Name, Owasp, Navaja Negra) e internacionales (DraonJAR CON - Colombia). Soy profesor asociado en La Salle enseñando el curso MPWAR (Master in High Performance Web Programming) y el máster de ciberseguridad de La Salle (MCS. Master in Cybersecurity) Miembro de asociaciones y grupos de research como la HoneyNet Project, Owasp, SySsec etc.. También soy el organizador de las conferencias Hack&Beers en Barcelona

Compartir este Artículo

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES