Malcom. Ejercicio práctico de análisis de tráfico.

Malcom (Malware Communication Analyzer) es una herramienta que uso desde hace tiempo y que, a pesar de estar muy bien documentada en diferentes sitios, he creído conveniente dedicarle una entrada a raíz de sus últimas actualizaciones ya que ha ganado en estabilidad y consistencia.

Su objetivo es  principalmente analizar las conexiones en el tráfico de red de forma gráfica a la vez que cruza datos con fuentes (feeds) de malware públicas o privadas para identificar rápidamente los nodos maliciosos (por ejemplo servidores de C&C); cómo el malware intenta comunicarse con ellos para analizar posibles patrones de comportamiento, entender redes P2P u observar infraestructuras de tipo DNS Fast-Flux.

image06

Para poner un ejemplo de su funcionamiento utilizaré el pcap de este ejercicio de “Malware Traffic Analysis”, -sitio que recomiendo para los que quieran practicar con ejercicios de análisis de tráfico-.

En el pcap de nuestro ejercicio, si filtramos por http.request usando Wireshark, podemos ver una secuencia de todas las peticiones http que nuestra máquina infectada realiza y así poder identificar las sospechosas:

image04

Si contrastamos con las alertas de los IDS que se nos proporciona si subimos por ejemplo el pcap a Virustotal:

image01

Vemos que nuestra IP infectada, 192.168.122.62, hace saltar una alerta del siguiente tipo al visitar la IP 192.254.234.118:80:

“POLICY-OTHER Remote non-JavaScript file found in script tag src attribute”

(Firma de Talos (Sourcefire VRT))

El sitio en cuestión corresponde a www.floridablueline.com, este sitio está comprometido y contiene una URL maliciosa (hxxp://fernandatur.com/Scripts/hqnybx2w.php?id=960135) a la que el visitante será redirigido automáticamente y de forma transparente al usuario  (“script tag”) y cargará un Exploit Kit que, en caso de tener éxito comprometerá el sistema.

Vemos que a continuación en las alertas de los IDS, se hace referencia primero a la página en la que se carga el Exploit Kit que corresponde a la IP 46.30.45.65 y al dominio good.recycle2learn.com.:

“ET CURRENT_EVENTS RIG Landing URI Struct March 20 2015”

(Firma de Emerging Threats)

Luego observamos que nuestra víctima le envía la versión de Flash que tiene instalado en su navegador IE:

“ET POLICY Outdated Windows Flash Version IE”

(Firma de Emerging Threats)

“EXPLOIT-KIT Rig exploit kit outbound communication”

(Firma de Talos (Sourcefire VRT))

y comienza a descargarse el Exploit para Flash correspondiente y un payload:

“ET CURRENT_EVENTS RIG Payload URI Struct March 20 2015”

(Firma de Emerging Threats)

“EXPLOIT-KIT Multiple exploit kit flash file download”

(Firma de Talos (Sourcefire VRT))

El resumen es que el usuario víctima (192.168.122.62) visita un sitio Web comprometido (192.254.234.118:80/www.floridablueline.com), que redirige a una URL (http://fernandatur.com/Scripts/hqnybx2w.php?id=960135) que carga un Exploit Kit (46.30.45.65 / good.recycle2learn.com) y compromete la máquina del usuario.

Revisando las peticiones HTTP podemos por último obtener la EK Landing Page, el Exploit y el payload del que hablábamos:

image03

Es posible identificar también el tráfico post-infección de nuestra máquina comprometida filtrando en Wireshark por “!(tcp.port eq 80) and tcp.flags eq 0x0002” , tráfico que nos muestra conexiones a 43.225.38.217(443/tcp), 111.121.193.242(443/tcp) y 37.55.107.202 (6998/tcp). Filtrando también por tráfico UDP podemos encontrar tráfico NetBIOS inusual hacia una IP externa 78.129.168.237 (137/udp). De nuevo podemos ayudarnos en este caso de las firmas del IDS (ver las de Suricata/Emerging Threats de Virustotal) para contrastar la información (Ejemplo: ET SCAN NBTStat Query Response to External Destination, Possible Windows Network Enumeration (Attempted Information Leak), ET POLICY NetBIOS nbtstat Type Query Outbound (Unknown Traffic) [2013490]…etc).

Volviendo a Malcom, si cargamos el pcap de nuestro ejercicio a través de la pestaña “Network Captures”, podemos ver un modo de visualización gráfica (en la pestaña Graph), la secuencia del flujo de paquetes que tiene lugar en el pcap (en la pestaña Flows), y una última pestaña con datos de Passive DNS.

Graph: podemos ver una estructura en forma de grafo de todas las conexiones que se establecen. Con la opción Replay podemos ver incluso de forma secuencial animada todas estas conexiones tal y como vemos en el gif a continuación:

image00

Otro aspecto interesante es que podemos hacer ciertas operaciones sobre este grafo, como por ejemplo filtrar por un determinado dominio de forma que nos muestre solo las conexiones directas que le conciernen a esa determinada búsqueda. Si buscamos por el sitio comprometido “floridablueline.com” podemos ver todas las conexiones directas con el mismo:

image07

Sobre cada nodo es posible averiguar información extra (ver Node info) que nos dan las etiquetas (Tags) que tenemos cargadas en Malcom vía los feeds o bien añadidas de forma manual por nosotros. Por ejemplo si queremos etiquetar el dominio que estaba sirviendo el RIG-EK podemos hacerlo en la pestaña “Populate”:

image05

De esta forma si por ejemplo hacemos una búsqueda en Malcom por la etiqueta “RIG-EK” obtendremos junto con todos los dominios/IPs etiquetados como RIG-EK (que provienen de nuestros feeds públicos o alimentados por nosotros) también el dominio que acabamos de introducir.

Flows: en esta pestaña podemos ver el flujo de paquetes de forma secuencial que ha tenido lugar en el pcap y el contenido de los mismos.

image02

image08

Passive DNS: nos muestra la resolución DNS de las peticiones que se han llevado a cabo.

image09

Como veis Malcom puede ser una herramienta útil para visualizar dinámicamente pcaps e identificar nodos maliciosos que, con una buena base de datos de conocimiento y feeds, puede ayudarnos a agilizar nuestro tiempo de respuesta en la resolución de un incidente de seguridad además de ser una ayuda para establecer patrones de comportamiento en la comunicación del malware. Os animo a que consulteis toda la documentación disponible y probeis la herramienta.