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:

Cridex 01

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:

Cridex 02

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.

Cridex 03

Descubrimos dos IPs asociadas al proceso explorer.exe. Estas IPs son 41.168.5.140 y 125.19.103.198. Analizamos ambas IPs:

Cridex 04

Cridex 05

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:

Cridex 06

Abrimos en Wireshark el PCAP generado. Desde Wireshark podemos ver los protocolos usados:

Cridex 07

Y también las IPs que han entrado en juego:

Cridex 08

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:

Cridex 09

Cridex 10

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:

Cridex 11

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:

Cridex 11_2

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:

Cridex 12

Cridex 13

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:

Cridex 14

Cridex 15

Si introducimos en VirusTotal los dos archivos señalados por file como ejecutables obtenemos la siguiente información:

Cridex 16

Cridex 17

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:

Cridex 18

Vamos a observar los handles. Primero del proceso reader_sl.exe:

Cridex 19

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:

Cridex 20

Cridex 21

Cridex 22

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:

Cridex 23

En cuanto a la persistencia señalamos como el fichero responsable el Reader_sl.exe de Adobe Reader:

Cridex 24

A continuación vamos a buscar este reader_sl a través de filescan y haremos un volcado:

Cridex 25

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:

Cridex 26

Ahora vamos a hacer un volcado de memoria con la funcionalidad memdump de Volatility de los dos procesos que hemos estado analizando:

Cridex 27

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:

Cridex 28

Cridex 29

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:

Cridex 30

Cridex 31

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:

Cridex 32

O buscar información sobre todas las IPs que hemos ido apuntando:

Cridex 33

Por otra parte, VirusTotal detecta este proceso como completamente limpio:

Cridex 34

Lo mismo ocurre con el volcado relacionado con el proceso reader_sl.exe:

Cridex 35

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.

Cridex 36

Cridex 37

También podemos comprobar que de nuevo aquí aparece la IP y ruta sospechosas:

Cridex 38

Cridex 39

Y para finalizar vamos a generar la línea temporal:

Cridex 40

Podemos hacer uso de mactime para buscar información, como por ejemplo, con mactime -b largetimeliner.txt -d -z UTC-0400 grep reader_sl:

Cridex 41

Written on February 6, 2021
Malware