La “última” moda (desde no hace muchos <meses>) en la distribución de «malware» viene en forma de documentos de <MS Office> con macros que llegan a tu bandeja de entrada. Si estas macros se llegan a ejecutar, intentaran descargar un ejecutable y lanzarlo para infectar el sistema. Para dificultar el trabajo de los analistas, los autores de estas macros ponen distintos obstáculos. En este <post> vamos a mostrar los sistemas de ofuscación y cifrado que han surgido en los últimos meses en este tipo de documentos. Con lo cuál – más «rápido que deprisa» – veamos como está el patio en cuanto a ofuscación de <malware> en macros de «MS Office«.
Hace años, muchos años, se puso de moda infectar ordenadores usando macros en documentos de Office. MS reaccionó y puso una serie de sistemas de seguridad que hacían saltar un pop-up que el usuario tenía que aceptar para que se ejecutase una macro, así que los malos decidieron dejar de usar macros y explotar vulnerabilidades en Excel o en Word como método de infección.
Diez años después, se está volviendo a ver muchísima actividad maliciosa que utiliza macros para descargar una muestra de malware y ejecutarla, infectando así el sistema.
Se desconoce la razón de esta vuelta a la viejas costumbres, hay varias teorías.
La primera teoría la leí hace no mucho y dice que es una forma de evitar detecciones por parte de los antivirus. Otra teoría dice que tiene que ver con los controles de seguridad que implementó MS a partir de Windows 7 (recordad, Windows XP ya no tiene soporte y no se usa en ninguna parte, guiño, guiño) . Ambas teorías son validas, pero yo añadiría otra más: es mucho más barato y simple escribir una macro que un exploit.
Para que una macro embebida en documento de MS Office infecte un equipo, esta macro necesita realizar las siguientes acciones;
Una forma de hacerlo en Visual Basic Script (vbs), el idioma que utilizan las macros de Office, es la siguiente;
Este tipo de ofuscación es muy simples de entender y de encontrar. Para hacer el trabajo de los analistas más difícil, los escritores de estas macros utilizan distintas técnicas de ofuscación. Una de las más comunes es meter código basura.
El código basura es un conjunto de líneas de código que no hace nada pero dificulta la comprensión de este por parte del analista de malware.
Veamos algunos ejemplos;
Algunos autores llenan las macros de comentarios, esto es bastante fácil de “limpiar” con una expresión regular, pero es bastante desagradable a la vista;
Estas líneas de código simplemente ocultan;
Esto nos lleva al siguiente método de ofuscación: los nombres raros.
En el trozo del código anterior, la variable ‘QEfChJYE‘ no es más que un contador, la típica “i” de for (i=0;…), pero hace más complicado de leer el código para el analista.
Es muy típico también meter código basura. El código basura es código que no hace nada (tal y como dije antes) o que simplemente está ahí pero que nunca se va a ejecutar.
Un ejemplo de código que no hace nada es el siguiente;
Todos los “GoTo” del código sobre estas líneas saltan a la siguiente línea de código, por lo tanto, lo único que están haciendo es meter ruido en el código.
La única línea que es útil en ese trozo de código es;
Veamos un ejemplo de código que no se ejecuta;
Si nos paramos a analizar todos esas sentencias ‘if‘, veremos que ninguna de ellas se va a cumplir nunca;
Un número nunca puede ser igual a ese número más uno;
4142 nunca es menor que 44;
Con este truco, además de dificultar el análisis, pueden alargar el tiempo de ejecución de la macro que puede llegar a ser útil (p.ej.: algunas sandbox hacen time out antes de que se termine la ejecución de macro).
Salu2
2 comentarios en “Malware; Ofuscación MS Office (I)”