Existen muchas herramientas para analizar capturas de tráfico disponibles en Internet. Una de las más populares es sin lugar a dudas Wireshark, o incluso Network Miner que ya la utilizamos para resolver algunos de nuestros desafíos anteriores. Para sumar a este arsenal de herramientas que podemos llegar a utilizar para analizar el tráfico de red, hace un par de semanas fue liberado Dshell, un framework modular que nos permite obtener información valiosa a partir de las capturas de entornos de red.

Puntualmente, Dshell es una herramienta que nos permite hacer un análisis forense basado en el tráfico de una red que ha sido desarrollada por el ejército de Estados Unidos. Dentro de las características de esta herramienta está el hecho de ser programada en Python y correr en Linux, y su código lo podemos encontrar en GitHub.

Una vez que descargamos la herramienta podemos hacer uso de una serie de módulos de análisis personalizados. A continuación veremos el funcionamiento de algunos de estos módulos y el tipo de información que podríamos llegar a obtener.

Utilizando Dshell para analizar una botnet

Tal como lo hicimos para visualizar capturas de tráfico de botnets con OpenGraphiti vamos a trabajar con el set de datos descrito en el artículo An empirical comparison of botnet detection methods, específicamente aquellos generados como resultado de la ejecución de la muestra Neris.exe (MD5: bf08e6b02e00d2bc6dd493e93e69872f) detectada como Win32/AutoRun.Agent.DO.

Por ejemplo con la opción netflow se organiza la captura de red de tal forma que podemos identificar fácilmente los eventos relevantes. Por ejemplo, en la siguiente imagen, podemos ver algunas de las solicitudes GET recibidas por la máquina que es parte de la botnet. Particularmente nos llaman la atención cuatro solicitudes de descarga de archivos ejecutables, de las cuales tres fueron exitosas:

archivos descargados

Si utilizamos el módulo rip_http ­la herramienta va a reconstruir todos los archivos que hacen parte de la captura de tráfico. Como ya sabemos que particularmente se descargaron tres archivos ejecutables, podemos buscarlos para identificar de qué se tratan.

En este caso los tres archivos que identificamos anteriormente se tratan de códigos maliciosos que han sido descargados a la máquina que hace parte de la botnet, lo cual es un comportamiento típico de este tipo de infecciones:

  • ff.exe >> SHA1: d644e4a92ac44fedf9086c3fd73a7c529d5821dd  > Win32/Kryptik.RPH
  • 3425.exe >> SHA1: cc32bf22df045a6e787da42e3b011eac8f02ee85  > Win32/TrojanProxy.Wintu.B
  • client.exe >> SHA1: 29b4edb6a1ebe70a8fe876a5652ed7de067269f4 > Win32/Kryptik.RPH

Identificando información sensible

Otro módulo que nos puede arrojar información interesante es followstream. Como ya sabemos, el archivo pcap contiene los paquetes de las diferentes conexiones de red que fueron ocurriendo en un determinado sistema, pero utilizando este módulo podemos reconstruir las diferentes conexiones, en orden de ocurrencia, y de esta forma identificar lo que ocurrió en cada una de ellas.

Por ejemplo, en la siguiente imagen, podemos identificar una conexión a un servidor de correo electrónico, en la cual hubo un intento de autenticación. Dentro de la información que fue intercambiada durante esta conexión hay unas cadenas codificadas en base64 que deberían llamarnos particularmente la atención:

informacion de conexiones

La cadena VXNlcm5hbWU6 corresponde a “Username:” y si decodificamos la cadena UGFzc3dvcmQ6 nos damos cuenta de que corresponde a “Password:”; por lo tanto, si decodificáramos las cadenas intermedias podríamos obtener las credenciales de acceso utilizadas para iniciar el servicio.

Una de las ventajas de este framework es que además de poder modificar los módulos que vienen por defecto, permite agregar nuevos módulos que se acomoden a la necesidad de análisis. La flexibilidad y facilidad de uso de esta herramienta la convierten en una alternativa a las ya existentes, así que cualquier nuevo módulo que desarrollen, los invito a que lo compartan para aumentar la capacidad de análisis que podemos tener con Dshell.