Cridex - Análisis de malware
Se analizará un volcado de memoria infectada por el malware Cridex. Para ello se hará uso de Volatility y otras herramientas.
Cridex
Partimos de un volcado de la memoria llamado cridex.vmem. Trabajaremos sobre este archivo. Vamos a sacar información sobre el sistema que estamos analizando, para ello usaremos imageinfo:
Podemos observar a través del Suggested Profile y del Image Type que se trata de un perfil de WinXPSP3x86 y que tiene un huso horario de -0400.
Ahora vemos los procesos en ejecución en el momento del volcado de memoria:
Aquí podemos ver todos los procesos ordenados por la fecha en la que comenzó su ejecución.
Vamos a pasar a analizar el tráfico de red, para ello utilizamos las opciones connscan y connections de Volatility.
Descubrimos dos IPs asociadas al proceso explorer.exe. Estas IPs son 41.168.5.140 y 125.19.103.198. Analizamos ambas IPs:
Vemos que una de las IPs, la 125.19.103.198, sí que aparece en una lista negra, aunque solo en una. Viendo que hay contenido que puede resultar de interés vamos a hacer uso de bulk_extractor para obtener el PCAP:
Abrimos en Wireshark el PCAP generado. Desde Wireshark podemos ver los protocolos usados:
Y también las IPs que han entrado en juego:
De aquí podemos obtener algunas IPs diferentes a las anteriores, como 211.44.250.173 y 190.81.107.70. Procedemos a pasarlas al ipvoid:
Vemos que ambas IPs aparecen en listas negras, una de ellas, la primera, aparece en tres. Procedemos a buscar información en Wireshark sobre todas las IPs que tenemos hasta el momento. Lo más significativo lo descubrimos sobre la IP 41.168.5.140, de la cual podemos ver lo siguiente:
Se realizan conexiones al puerto 1038, además, también podemos observar que sobre esta dirección se realiza un POST hacia la ruta /zb/v_01_a/in/.
Sobre las conexiones de red también podemos obtener información sobre los sockets a la escucha de la siguiente forma, en la que volvemos a ver el proceso 1484 y el puerto 1038:
Pero conociendo esto sobre el análisis de red vamos a volver a Volatility y a la memoria. Para continuar, vamos a realizar un malfind:
Los procesos sobre los que malfind nos advierte son csrss.exe, winlogon.exe, explorer.exe y reader_sl.exe. El explorer.exe ya vimos que lo utilizaba una de las IPs sospechosas.
Del volcado que nos realiza malfind podemos realizarle un ‘file’ para sacar información sobre estos volcados y posteriormente sacar sus MD5:
Si introducimos en VirusTotal los dos archivos señalados por file como ejecutables obtenemos la siguiente información:
Podemos ver que ambos son reconocidos por malware por la inmensa mayoría de herramientas y que, algunas de estas, lo catalogan como ‘Cridex’. Estos dos procesos identificados como malware son el explorer.exe (pid 1484) y el reader_sl.exe (pid 1640), por lo que vamos a centrarnos en estos procesos para continuar el análisis:
Vamos a observar los handles. Primero del proceso reader_sl.exe:
De aquí podemos observar, de entrada, los ‘Event’ y ‘Mutant’ que comienzan por XM, es decir, el XM00000668 y el XMR8149A9A8.
Ahora vamos con el proceso explorer.exe hacia las secciones críticas y las zonas de exclusión mutua:
De aquí podemos destacar el Mutant _SHuassist.mtx, o, de nuevo, varios Mutant que comienzan por XM y resultan algo sospechosos. Buscando en los Eventos también encontramos eventos relacionados con los Mutant ya vistos:
En cuanto a la persistencia señalamos como el fichero responsable el Reader_sl.exe de Adobe Reader:
A continuación vamos a buscar este reader_sl a través de filescan y haremos un volcado:
Si sacamos el MD5 y lo subimos a VirusTotal comprobamos que algunas de las herramientas lo reconocen como un malware, concretamente como Artemis, el cual es un buscador falso que redirige a páginas con malware y adware:
Ahora vamos a hacer un volcado de memoria con la funcionalidad memdump de Volatility de los dos procesos que hemos estado analizando:
Vamos a comenzar a analizar el proceso explorer.exe haciendo uso de los comandos strings y more para, poco a poco, ir viendo la información que contiene:
Se observa la ruta del POST que pudimos ver anteriormente desde Wireshark y otras cosas interesantes como URLs u emails. Continuando con el strings sobre el mismo proceso también podemos encontrar dos direcciones locales que podrían contener información interesante y la IP ya anteriormente analizada y que era altamente sospechosa:
Como el resultado del strings sobre el explorer.exe es inmenso, podemos intentar afinar la búsqueda haciendo uso de grep y la información hasta el momento recogida. Por ejemplo, a partir de la carpeta sospechosa podemos sacar más información de interés como una nueva IP y un archivo cp.php:
O buscar información sobre todas las IPs que hemos ido apuntando:
Por otra parte, VirusTotal detecta este proceso como completamente limpio:
Lo mismo ocurre con el volcado relacionado con el proceso reader_sl.exe:
Pero si hacemos un strings al proceso 1640, es decir, al reader_sl, podemos ver muchísimas direcciones URLs que, a priori, parece un adware, lo cual tiene sentido con la relación que anteriormente se hizo con Artemis.
También podemos comprobar que de nuevo aquí aparece la IP y ruta sospechosas:
Y para finalizar vamos a generar la línea temporal:
Podemos hacer uso de mactime para buscar información, como por ejemplo, con mactime -b largetimeliner.txt -d -z UTC-0400 | grep reader_sl: |