27 Marzo, 2017 a las 7:12

Una de las particularidades de muchos sistemas de correo es el filtrado por extensiones. Estos sistemas suelen filtrar archivos con extensiones consideradas peligrosas (exe, vbs, bat, python, etc.). de esta forma evitan que si alguien envía “troyano.exe” a un usuario este se infecte. Además de estas extensiones prohibidas estos sistemas suelen ser capaces de examinar archivos comprimidos (.zip, .rar, 7z, tgz, etc.) examinando su contenido y filtrando aquellas extensiones que hemos calificado antes como “peligrosas”.

Si no recuerdo mal, a partir de Office 2010 se implementaron las extensiones “preparadas para macros” (dock y xlsm) para diferenciar los ficheros de office libre de macros de los que no lo son, de esta forma los sistemas de filtrado por extensiones, usados por ejemplo en servidores de correo, pueden hacer su trabajo eliminando los ficheros que tienen macros. Por suerte o por desgracia, Microsoft siempre ha trabajado en la retro compatibilidad de sus aplicaciones y nos sigue permitiendo crear ficheros .doc (Word 97-2003) con macros así como ejecutarlos. Por eso, desde diazsecurity hago un llamamiento a la  importancia vital de concienciar a los usuarios de la peligrosidad de ejecutar macros que no provengan de fuentes de confianza, ya que estos suelen estar concienciados de los .exe pero no con otras extensiones igualmente peligrosas.

Aprovechando estas particularidades suelen haber campañas de malware que se distribuyen por correo de forma mas o menos continuada. Una muestra de ello y la que ha inspirado a abrir esta serie de hilos explicando su funcionamiento ha sido el falso e-mail de la renta que está llegando últimamente a los usuarios. Mediante esta serie de hilos pretendemos conocer el funcionamiento de este tipo de malware.

Como PoC para ver la sencillez y la efectividad de estos ficheros maliciosos vamos a embeber un exe como si fuese un macro de Word, para ello vamos a utilizar dos métodos, en esta primera entrada veremos como hacerlo mediante la herramienta incluída en metasploit exe2vba y en la próxima entrada veremos como generar nuestro propio macro capaz de descargar y ejecutar el payload sin necesidad de herramientas externas. Como experimento, además de la entrada escrita en el blog he creado un vídeo donde podéis ver el paso a paso.

Embeber un ejecutable utilizando exe2vba

Si usáis Kali Linux podéis encontrar esta herramienta en “/usr/share/metasploit-framework/tools/exploit”. Su uso no puede ser mas sencillo.

exe2vba fichero_entrada.exe fichero_salida.vba

Esto nos generará un fichero vba compuesto por dos partes (separadas por comentarios). Por un lado la primera, que contiene el código de la macro y por otro el payload que es un array de los bytes del .exe que hemos introducido.

Ahora, abriremos Word y nos iremos a la pestaña Desarrollador>Visual Basic y allí introduciremos el código del macro generado sin el código de payload.

Podemos aprovechar para modificar algunos parámetros como la carpeta donde se guardará el .exe o el nombre que se le dará al proceso una vez ejecutado.

Una vez hecho, guardamos y cerramos el editor de macros. Sobre el documento de Word escribiremos ahora el código del payload. Si lo deseamos podemos cambiar el texto a color blanco o poner un formulario en la parte superior, etc. Lo importante es dejar el encabezado y el array de bytes tal y como nos lo ha dado exe2vba.

Ahora guardamos nuestro fichero como Word 97-2003. Hacemos esto para poder seguir usando la extensión .doc y no tener que usar docm o docx como pasa en los formatos mas nuevos de Office.

Ya tenemos nuestro fichero preparado y en el momento un usuario lo ejecute se abrirá, oculto, el ejecutable que hemos embebido.

Si quieres saber mas te recomiendo ver la siguiente entrada en la que explicaremos como generar una macro que descargue y ejecute nuestro payload: https://www.diazsecurity.com/2017/03/embeber-ejecutab…wordexcel-2-de-2/

Acerca de Miguel Díaz

Informático, enamorado de la programación, diseño Web y el deporte.
Categorías: Pentesting, Programación, Proyectos, Seguridad. Etiquetas: , , , , , , .

4 comentarios en Embeber ejecutables en macros de Word/Excel (1 de 2)

  1.  Carlos dice:

    Quetal Miguel, segui tu post y realizaba una prueba para ver si puedo aplicarla en mi trabajo, he utilizado office 2013 y 2016, en ambos no me permite guardar el archivo como .doc (97-2003) luego de introducir el código en las macros, te ha pasado?

  2.  Dario dice:

    Miguel cómo estás? Consulta el mpreter es algo propio tuyo? Disculpa la ignorancia, desde ya gracias!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *