Análisis de malware básico (2)

Vamos a continuar con el análisis de malware de la misma forma que se hizo en el primer artículo de esta categoría.

En esta ocasión nos centraremos en el malware empaquetado u ofuscado, y para ello haré uso de los ejecutables infectados Lab01-02.exe y Lab01-03.exe disponibles en el libro Practical Malware Analysis.

VirusTotal

Para comenzar, podemos verificar que el ejecutable es malicioso subiendo el archivo a VirusTotal o introduciendo su hash:

VirusTotal 01

Podemos observar que 54 de las 72 herramientas utilizadas por VirusTotal lo detecta como un archivo malicioso.

Malware ofuscado o empaquetado

Como se describió en el artículo anterior, el empaquetado o la ofuscación de malware se utiliza para dificultar el análisis y la detección de estos. No se puede analizar el malware de un fichero empaquetado, habría que desempaquetarlo antes de proceder a su análisis.

Así que introducimos el archivo malicioso en PEiD y obtenemos la siguiente información:

PEiD 01

Podemos observar como sí que nos indica que ha podido ser empaquetado, y concretamente a través de la herramienta UPX.

Para descomprimir el archivo hacemos uso de una herramienta muy simple, UpxUnpacker, a la que le arrastramos el archivo y nos genera el archivo descomprimido con el mismo nombre pasando el archivo anterior al formato “.bak”:

UpxUnpacker 01

El análisis del malware debemos continuarlo sobre este archivo obtenido. Además, comprobamos como en VirusTotal este nuevo archivo es detectado por más herramientas:

VirusTotal 02

Pero los métodos de desempaquetados son muy variables dependiendo del mecanismo con el que haya sido empaquetado, por ejemplo, existen herramientas que automatizan el desempaquetado como Upx Unpacker que acabamos de ver o el plugin FSG v1.33 de PEiD.

Desempaquetado manual con OllyDbg

Otro método de desempaquetado es hacerlo de forma más manual a través de herramientas como OllyDbg y módulos de esta. Vamos a desempaquetar el archivo Lab01-03.exe de esta forma. Para ello haremos uso de la ingeniería inversa sobre el malware empaquetado para buscar el OEP y, desde esa posición, volcar el proceso de depuración para generar un fichero desempaquetado.

El OEP (Original entry point) es la dirección de memoria donde se inicia realmente un programa en un malware empaquetado. Es necesario averiguar el OEP para proceder a su desempaquetado y la forma de conocer el OEP que vamos a utilizar es a través del plugin OllyDump dentro de la herramienta OllyDbg.

Comprobamos que el archivo Lab01-03.exe está empaquetado usando PEiD:

PEiD 02

Comprobamos que se ha empaquetado haciendo uso de la herramienta FSG 1.0. Vamos a proceder a descomprimirlo de forma manual haciendo uso de la herramienta OllyDbg y los módulos SFX y OllyDump.

Entramos en OllyDbg y cargamos el programa malicioso:

OllyDbg 01

Buscamos el OEP, que es la dirección de memoria donde realmente se inicia el programa, y lo hacemos con el plugin OllyDump a través de la funcionalidad “Find OEP by Section Hop (Trace over)”. Estos nos señala una posición de memoria concreta:

OllyDbg 02

La dirección es 00405000. Por último, pulsamos, dentro del plugin de nuevo, sobre Dump debugged process e indicamos un nombre con el que guardar el fichero, en nuestro caso será Lab01-03_unpack:

OllyDbg 03

Esta sería la forma más genérica y funcional de desempaquetar archivos comprimidos con FSG 1.0 haciendo uso de OllyDbg.

Análisis de importaciones

Volviendo al Lab01-02.exe vamos a analizar a través de rabin2 las funciones que importa el malware descomprimido:

Importaciones 01

Vemos que hay dos librerías llamativas en la información obtenida, y en ella nos vamos a centrar. Una es ADVAPI32.dll y otra WININET.dll. Vemos que de la librería ADVAPI32 se utiliza funciones para la creación de servicios, mientras que de la librería WININET se accede a URLs de Internet. Con estas importaciones podemos aprender la funcionalidad que pretende llevar a cabo el malware, en el siguiente punto buscaremos indicadores más concretos de sus acciones.

Indicadores o evidencias

Hacemos uso del comando “Strings” y obtenemos la siguiente información:

Evidencias 01

Con la información que hemos recopilado sobre Lab01-02.exe podemos deducir que se crea un servicio llamado “MalService” el cual realiza una conexión, posiblemente, hacia http://www.malwareanalysisbook.com.

Written on January 24, 2021
Malware