Seguimos, una vez más, con la serie dedicada a visualización gráfica de tráfico de red. En esta ocasión, con una herramienta GNU/Linux con la que podremos visualizar gráficamente los nodos/hosts involucrados en una captura .pcap. Esta herramienta es Malcom, desarrollada en python (usa también scapy) y al a que accedemos (webserver) desde un simple navegador.
Además tenemos una serie de facilidades para interpretar el tráfico y visualizar las comunicaciones entre nodos que iremos viendo a continuación. Malcom está orientado sobre todo a la detección/análisis de malware. En esta primera parte veremos la interface y el uso básico.
Veremos, también como con Bro IDS/IPS también podemos detectar, en un primer pase, el incicio de Malware y analizarlo un poco más con Malcom.
Al lio…
Instalando Malcom.
La instalación de Malcom la he realizado sobre mi Ubuntu 13.10. Se trata de una instalación sencilla cuyos pasos podeis ver y seguir desde la ayuda a la instalación de la web oficial: https://github.com/tomchop/malcom
Una vez instalado desde la terminal entramos en la carpeta ./malcom hacemos lo siguiente para la ejecución más básica:
cargará el webserver y los feeds (ya veremos que son):
Malcom. Uso básico.
ya tenemos cargado el webserver. Accedemos a el desde un navegador: 0.0.0.0:8080 o desde cualquier otro host, por ejemplo 192.168.1.106:8080.
Aparecerá en el navegador la siguiente interface:
En esta primera pantalla tendríamos los datos de nuestras sesiones/capturas de tráfico guardadas en una base de datos mongoDB (base de datos NoSQL) . Si pulsamos en Sniffer:
desde ahí podremos seleccionar nuestro archivo de captura .pcap, un nombre para la sesión y aplicar un filtro BPF si queremos. Pulsamos en Create new session y:
Aquí destacamos las siguientes zonas de la interface.
- Zona central de visualización gráfica de la captura con nodos que representan ip, hostname y url. Si pulsamos en cada cada tipo de nodo, se desplegará la información correspondiente en el panel derecho (Info).
- Abajo tenemos botones para alejar o acercar nodos, marcar/desmarcar nodos, seleccionar, mover, etc.
- A la derecha, información del nodo y datos GeoIP si se dá el caso. En este caso no porque son host de unared interna.
- a la derecha, abajo, tenemos información de las sesiones activas o guardadas en la BD.
En este caso se trata de un nmap scan desde el nodo de la red (192.168.1.5) hacia otros host del mismo segmento de red.
Si pulsamos en la pestaña Flow (arriba), vermos el flujo del tráfico, si se ha ahplicado algún decode y posibilidad de visualizar o descargar el payload. (marcado en rojo abajo):
Si volvemos a la pantalla primera Dataset, vemos que los datos están guardados con sus tags correspondientes y otros datos, además de la gestión de la Base de Datos.
Podemos busccar en Search en el panel de la derecha o en la pestaña After dataset, borrar los datos, etc.
Yo voy a usar el borrado de datos y cargar otro .pcap….
Un ejemplo con Zeus GameOver.
Antes que nada analizamos con Bro IDS / IPS.
Para ver sobre instalación y uso básico / avanzado de BRO IDS/IPS: https://seguridadyredes.wordpress.com/category/bro-ids/
Ejecutamos bro con el archivo .pcap objeto de análisis:
alfon@broids:~/browork$ sudo /usr/local/bro/bin/bro -C -r ../pcap/BIN_ZeusGameover_2012-02.pcap local.bro
obtenemos de esta forma una serie de logs. A mí me intersa sobre todo el log: notice.log
alfon@broids:~/browork$ cat notice.log | /usr/local/bro/bin/bro-cut id.orig_h id.orig_p id.resp_h id.resp_p file_desc msg
Obtenemos lo siguiente (pinchar par ampliar):
Vemos que detecta el Malware.
Si arriba añadimos, además de los campos id.orig_h id.orig_p id.resp_h id.resp_p file_desc msg, el campo sub, tendríamos también la referencia del Malware… por ejemplo en este caso saldría referencias como esta: https://www.virustotal.com/en/search/?query=6027557ace4158d21b771503ed3d84f8911134a8
También prodríamos:
alfon@broids:~/browork$ cat notice.log | /usr/local/bro/bin/bro-cut | grep Malware
Como curiosidad podemos ver con bro otros archivos .exe no detectados como Malware de esta forma:
alfon@broids:~/browork$ cat files.log | /usr/local/bro/bin/bro-cut | grep exe | sort | uniq -c
Ahora analizamos con Malcom.
Abrimos un .pcap, en este caso BIN_ZeusGameover_2012-02.pcap y:
Se trata de un ejemplo de Zeus GameOver. Observad lo marcado en rojo y verde. Vemos también el host de la red involucrado en el centro. En el recuadro rojo se aprecia visualmente la comunicación del host de la red con el host externo. Vemos su IP el http.request y el dominio marcados en nodos y cada uno con su color.
Si vamos al a Loaded Feeds o alimentadores de información de Malcom, (arriba), vemos lo siguiente:
Sobran los comentarios ¿ verdad ?.
Si investigamos un poquito por internet sobre el dominio que hemos visto más arriba (ewpetro.com), aparece o aparecía en su momento como un Zeus Tracker:
Hemos visto también que en Flows podemos ver los payloads. Vamos entonces a Flows y:
========================================
Y hasta aquí por hoy y en esta primera parte, en la que he tratado de presentar la herramienta, usarla de forma básica y un pequeño ejemplo.
Hasta la próxima..
============================================
Estaba tratando de instalar Malcom pero cuando ejecuto ./malcom me tira el siguiente error «Could not load GeoIP library – No module named geoip2.database» Instale nuevamente Maxmind pero el error continua. Me podrias dar una mano? Gracias.
Muy buen post! Comparto con ustedes el link del sitio web de Alutel Mobility, una solución que permite el control de las personas y los vehículos de forma móvil focalizado en proyectos productivos, minería, petróleo gas, construcción. No se lo pierdan!
http://www.alutelmobility.com