Zeus - Análisis de malware
En este artículo se analizará a través de, principalmente, Volatility, una imagen de una memoria RAM afectada por el malware Zeus.
Zeus
El punto de partida para el análisis es que disponemos de una imagen de la memoria RAM afectada por Zeus llamada ‘zeus.vmem’ y vamos a analizarla.
Lo primero será sacar información del perfil del sistema:
Aquí podemos ver, a través de Suggested Profile y Image Type, que el sistema es un WinXPSP2x86. También anotamos el huso horario, que es -0400.
A continuación observamos los procesos activos en el momento de la captura de la memoria, pero no hay nada que resulte especialmente llamativo:
Al no tener un proceso identificado sobre el que investigar, debemos seguir haciendo un análisis más genérico sobre otras especificaciones que nos pueda dar información relevante. Así pues, pasamos al análisis de red haciendo uso de connections y connscan:
En el connscan obtenemos información interesante, que son las conexiones hacia el puerto 80 de la IP 193.104.41.75, y un Pid que debemos anotar para profundizar en su análisis.
Con respecto a la IP, podemos buscar información sobre esta en algunas blacklist online. A través de ipvoid nos indica que, a día de hoy, está limpia:
Y a través de whatismyipaddress solo una web nos la indica como una IP mala, pero el resto la da por válida:
También podemos profundizar en el análisis de red usando Wireshark. Para ello sacamos el PCAP con bulk_extractor:
Abrimos el PCAP obtenido con Wireshark y podemos conocer información sobre los protocolos que entran en juego:
Y sobre las IPs y puertos:
Además de la IP ya obtenida desde el Volatility, aquí podemos anotar algunas IPs más como 207.46.197.32 o 131.107.115.254. Aunque tras verificarlo con las blacklist de ipvoid podemos comprobar que ambas IPs están completamente limpias y pertenecen a Microsoft.
Volviendo al análisis de la memoria, a través del pslist anterior podemos ver que el proceso 856 es hijo del proceso con pid 676.Vamos a continuar profundizando en el proceso 856, para ello vamos a realizar un psscan:
Podemos observar que el proceso es un svchost.exe, lo cual no es nada sospechoso a priori, y que tiene fecha de inicio de ejecución pero no de fin, por lo que seguía en activo.
Pasamos a obtener todas las librerías relacionadas con el proceso, las cuales son muy variadas, y también vemos que tiene algunas relacionadas con sockets y conexiones de red:
Ahora vamos a comprobar las claves donde están ubicadas las secciones críticas del proceso que estamos analizando, es decir, el 856:
Y también buscamos los nombres de las zonas de exclusión mutua, de donde podemos anotar algunas cosas como RasPbFile o AVIRA:
Observamos los eventos que ha generado el proceso:
Y por último en cuanto al tratamiento de handles, vamos a quedarnos también con los ficheros relacionados con el proceso:
Ahora vamos a buscar la persistencia del malware. Para ello vamos a buscar los registros de “Microsoft\Windows NT\CurrentVersion\WinLogon”:
De aquí podemos destacar la ruta que está junto al userinit.exe, es decir, la ruta “C:\Windows\system32\sdra64.exe”. Vamos a buscar más información sobre sdra64.exe, para ello realizaremos un filescan en su búsqueda:
Realizamos un volcado del fichero del cual obtenemos un archivo .dat:
Sacamos el MD5 de este fichero para que VirusTotal lo analice:
Podemos comprobar que la mayoría de herramientas lo reconocen como un malware, concretamente 62 de 72 herramientas. Identificándolo la mayoría de ellas como Zbot trojan. En VirusTotal también podemos comprobar que el archivo fue compilado el 21 de marzo de 2018:
También podemos obtener un volcado de la memoria concretando en el proceso 856:
Podemos analizar el fichero obtenido de forma detenida y completa con strings, lo cual es un trabajo minucioso que requiere mucho tiempo. También podemos hacer uso del comando grep para filtrar y buscar información más concreta, por ejemplo, información sobre http:
Ahora sacamos el MD5 del dmp y lo introducimos en VirusTotal:
En esta ocasión son solo 3 herramientas las que detectan el malware. Concretamente AegistLab, Avast y AVG.
Para concluir vamos a trazar una línea temporal a través de la generación de los ficheros timeliner, mftparser y shellbags:
Unimos los tres ficheros:
Y ya tendríamos nuestra línea temporal de sucesos, a la que podríamos acceder con mactime y de la cual podríamos buscar información con grep para conocer su actividad siguiendo la línea temporal, por ejemplo, podemos ver la actividad del proceso 856 que hemos estado mirando: