Análisis de malware

Análisis estático

febrero 9, por Ninja de seguridad

En la Parte 1, hemos visto cómo realizar un análisis de comportamiento en una muestra maliciosa. En este artículo, veremos otro espécimen y le realizaremos un análisis de comportamiento, pero en este artículo nos gustaría crear algunos IoC para el análisis de comportamiento de antemano con un análisis estático del espécimen.

El análisis estático implica analizar o recopilar información sobre una muestra sin ejecutarla. Recuerde que incluso en el análisis de comportamiento analizamos el espécimen. Comencemos el análisis estático con las herramientas que se mencionan a continuación.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Strings2 extrae tanto ASCII como UNICODE de forma predeterminada y es una mejora con respecto a las cadenas. También puede obtener cadenas sobre procesos en ejecución. A continuación se muestra un ejemplo de las cadenas 2 en acción.

Inmediatamente podemos ver cadenas importantes que hacen referencia a un archivo .tmp (puede ser un archivo temporal utilizado por malware), ejecutar configuración de registro, HTTP/1.1, InternetReadFile, suspensión, etc. InternetReadFile leerá el archivo referido por HttpOpenRequest. Podemos relacionar esto con HTTP 1.1 en las cadenas incrustadas.

Veamos los indicadores sospechosos de PEStudio. A continuación se muestra una instantánea del mismo. Muestra que el archivo no está firmado por ningún certificado y modifica el registro. Seguramente esto generará algunas dudas.

También podemos mirar las cadenas incrustadas de PEstudio. Algunas referencias interesantes aquí como CryptDecrypt, que es un indicador de que el espécimen podría manejar algunas rutinas de cifrado/descifrado.

También podemos usar PEframe para descubrir alertas IAT sospechosas que nos indican todas las DLL que está importando y las funciones que utiliza. Por ejemplo, nuevamente podemos ver que CryptDecrypt, CreateFile, CreateProcessA, etc. nos brinda mucha información sobre la naturaleza del espécimen.

Ahora, con todo ese análisis estático, podemos comenzar un análisis de comportamiento para ver cómo el espécimen utiliza estos IoC. Herramientas que vamos a utilizar:

Antes de infectar el sistema con malware, capturemos el estado usando RegShot. Realice una primera toma del sistema.

Además, lanzaremos CaptureBAT para capturar todas las transacciones realizadas desde esta muestra de malware. Esto también generará un pcap que también podremos analizar con Wireshark.

Ahora comencemos el análisis de comportamiento. Lancemos la muestra de malware y observemos el resultado del monitor de proceso. Podemos ver eso para el espécimen; Vemos que se crea un nuevo archivo .tmp con la llamada WriteFile.

¿Qué es este archivo? Echemos un vistazo a su contenido. A continuación se muestran los contenidos del archivo .tmp. Como era de esperar, está ofuscado. No te preocupes, solucionaremos esto.

Ahora, después de dejar que el malware se ejecute durante aprox. 40-45 segundos, finalicemos el proceso y observemos lo que han capturado nuestras herramientas. A continuación se muestra un archivo pcap capturado de CaptureBAT.

Podemos analizar el archivo pcap en Wireshark. Podemos ver que está intentando acceder a brb-3dtuts.by pero como lo estamos ejecutando en un entorno aislado, no puede encontrarlo, pero como aprendimos en la Parte 1, sabemos cómo solucionar este problema. Llegaremos a eso en breve.

Existe una herramienta fantástica llamada ProcDOT que nos ayuda a visualizar las acciones realizadas por el espécimen. Toma información de ProcMon y un archivo pcpa. Tenemos ambos y a continuación se muestra una instantánea de la actividad del espécimen después de alimentarlos.

Como podemos ver, crea un archivo .tmp pero también creó un archivo que hemos visto arriba. Ok, esa es otra cosa a tener en cuenta. Parece que después de crear estos archivos, el espécimen mata ese hilo, pero hay otro hilo para este proceso que está modificando el registro.

Bien, entonces demos al malware lo que necesita. Inicie fakedns para que el malware pueda conectarse a él. A continuación se muestra una captura de pantalla del mismo.

Además, podemos analizar el tráfico de Wireshark para observar lo mismo.

Sin embargo, después de conectarse, busca conectarse al puerto 80. No lo tenemos en ejecución por ahora, pero como se mencionó en la Parte 1, podemos aprovechar Netcat para comenzar a escuchar en ese puerto. A continuación se muestra una captura de pantalla de Netcat.

Podemos ver que se menciona algún archivo ads.php que el malware está intentando leer desde el servidor. Retomemos también la misma actividad de Wireshark.

Seguir el flujo TCP nos revela esto.

Quiero saber qué es esta larga cadena. Convertir esto a ASCII dará como resultado un galimatías, lo que significa que necesitaremos realizar un análisis de código en él.

Espero que ahora tengamos una idea básica de cómo realizar un análisis de comportamiento. En la siguiente parte, veremos el análisis de código de los ejemplos analizados en la Parte 1 y la Parte 2.