25 octubre 2013

Pcap Forensics I

Muchas veces, cuando toca analizar tráfico de red, uno se puede sentir profundamente abrumado por tal cantidad de trazas, esto suele verse acentuado cuando se trata de logs especialmente grandes donde intervienen múltiples IPs.

En esos casos, viene bien hacer un primer análisis de esas IPs buscando información del proveedor y su procedencia geográfica.

En el post de hoy vamos a ver una primera aproximación al análisis de este tipo de datos empleando un script en Perl para parsear un fichero en formato pcap, y obtener los siguientes datos:

  • Hostname de la IP
  • País
  • Ciudad
El script es este:



Haremos uso de la base de datos de Max Mind 'Geo Lite' que tan buen servicio nos presta siempre y que además tiene una versión gratuita plenamente funcional.

Una vez descargada la bd 'GeoLiteCity.dat', que es la que contiene más información, simplemente tenemos que ejecutar el script contra un fichero pcap (muestra descargada de un repositorio público de ficheros pcap)

$ perl geopcap.pl anon_sid_12719_2003581.pcap

210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,
210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.85.29.241,210-85-29-241.cm.dynamic.apol.com.tw,TW,Taipei
210.233.108.255,,JP,

Como podemos ver, el script devuelve la información en formato CSV, útil si se desea importar en ficheros excel para realizar un análisis más directo.

El script intenta resolver todas las IPs, averiguar su código de país y la ciudad.

4 comments :

txalin dijo...

Me cagontó, ya van dos veces que publicais un articulo con algo que yo ya tenía hecho para uso personal pensando que alguien ya lo habría hecho previamente! Si vais a publicar un script para sacar alertas de snort por email me lo decis, que ya lo tengo hecho y en produccion xD


PD: Al respecto de esto (no puedo ver el script porque pastebin esta bloqueado en nuestro proxy, no pregunteis) añadiría, si no esta ya, que el script compruebe si hay actualizaciones de la bbdd, y si es asi que la descargué, si no te puedes quedar anticuado.


Otra de las cosas que yo tenía montadas en testing era el envío de alertas al correo electrónico si:


a) Se superaban los umbrales de normalidad
b) Habia mas de X conexiones desde/hacia paises problemáticos (China, Rusia, etc...)


Saludos!

txalin dijo...

Ah, tambien calculaba umbrales de normalidad, pero eso solo da para otro artículo.

Yago Jesus dijo...

Sin duda tu aproximación está mucho mucho más elaborada. De hecho bien podrías enviar un correo a contacto y te podría dar de alta como colaborador :)

Javier Nieto dijo...

Muy bueno!!! Lo probaré!!! Con Wireshark también puedes sacar un informe para saber de que país vienen las conexiones incluso crear un mapa dinámico, por ejemplo, localizando las conexiones a una botnet... Muy útiles pare reportes!!!