Post145 nn

ViperMonkey: Un analizador VBA y un motor de emulación para analizar macros maliciosas


Img 2344
Misael Banales

Introducción

ViperMonkey es un proyecto Python que incluye un analizador de macro VBA, un motor de emulación VBA y un conjunto de herramientas para el análisis de macroinstrucciones maliciosas. Lo mencioné varias veces desde principios de 2015[SSTIC, MISC], pero es sólo recientemente que ha llegado al punto en el que podría utilizarse en la práctica. De hecho, emular la ejecución de macros VBA y todas las características de MS Office, objetos ActiveX y DLLs utilizados por las macros maliciosas es extremadamente complejo. ViperMonkey todavía está muy, muy lejos de implementar todas esas características, y aún no es capaz de manejar la mayoría de las macros de la vida real. Sin embargo, en algunos casos puede ser de gran ayuda desofuscar macros automáticamente para el análisis de malware.

Éste artículo muestra cómo se puede utilizar para analizar macros ofuscadas y extraer cadenas/COI ocultas.

Descarga ViperMonkey

Características

 

  1. El código fuente de VBA Macro se extrae de archivos MS Office usando olevba.

   2. El código es analizado usando una gramática VBA definida con pyparsing, inspirada en las especificaciones oficiales MS-VBAL.

   3. El analizador transforma el código VBA en un modelo de objeto estructurado (objetos Python).

   4. Un motor VBA personalizado emula la ejecución del código, simulando características de MS Office, objetos ActiveX y DLLs utilizados por la mayoría de las macros maliciosas.

   5. Se capturan y graban acciones específicas de interés como llamadas a DLL, código en ejecución, descargas o escritura de archivos.

  6. Los resultados pueden ser utilizados por los analistas de malware, para comprender mejor el comportamiento de la macro y extraer cadenas/COIs ofuscadas.

 

Veamos varios ejemplos de la vida real.

 

Ejemplos

 

DIAN_caso-5415.doc es un ejemplo de malware bastante antiguo de 2009. Su código macro VBA no es muy confuso.

Pongamos a Vmonkey en esa muestra:

 

#python vmonkey.py DIAN_caso-5415.doc.zip -z infected

 

Primero, vmonkey muestra el código fuente VBA extraído del archivo:

 

 

A continuación, vmonkey analiza el código VBA y muestra la lista de procedimientos encontrados (subs, funciones, funciones, funciones DLL):

 

 

vmonkey utiliza su motor VBA para emular la ejecución de la macro, empezando desde puntos de entrada específicos como "Auto_Open":

 

 

Una vez finalizada la ejecución, vmonkey muestra las acciones de interés que se han registrado, con sus parámetros:

 



Artículos que te pueden interesar