Las aventuras de los esquivos Malvari, Parte III: Intrincados guiones de VBA para la risa y el beneficio



Este artículo es parte de la serie Fileless Malware. Todas las otras partes de la serie:


En las últimas dos publicaciones ( aquí y aquí ) hablamos sobre métodos de ataque sin archivos, pero bastante inofensivos. Ahora finalmente estamos listos para enfrentarnos a un verdadero malware sin archivos. Un sitio de análisis híbrido (en adelante denominado HA) es un recurso en el que confío para encontrar estas "criaturas" maliciosas. Como regla general, la información que HA proporciona para cada muestra: llamadas del sistema, tráfico de Internet, etc. - suficiente para satisfacer las necesidades típicas de seguridad de TI. Me atrae inexorablemente sumergirme en uno de estos ejemplos de código muy confusos para ver lo que realmente está sucediendo allí.

Si desea repetir después de mí, le recomiendo que haga esto en el sandbox, por ejemplo, en Amazon Web Services. Y si verifica esto en su computadora, asegúrese de comentar las llamadas al sistema que inician PowerShell.

Dentro del código confuso de VBA


El malware que finalmente encontré en el sitio de análisis híbrido es un script VBA que se incrustó en un documento de Word. Como mencioné la última vez, necesitará OfficeMalScanner de Frank Baldwin para ver el código real.
Después de extraer el script, descargué el código en la macro biblioteca de MS Word y luego inicié su depuración paso a paso utilizando el depurador incorporado. Mi objetivo era comprender mejor lo que estaba oculto detrás de la ofuscación: jugar analíticas del IB y experimentar los éxitos y decepciones asociados con este trabajo.

Si, como yo, primero decidió hacer esto en el depurador, lo más probable es que tome más de una taza de té (o café), abriéndose paso a través de un código increíblemente complejo u observando, parpadeando, en la variable L_JEK, a la que se le asigna la línea "77767E6C797A6F6" .
Al trabajar con este script VBA confuso, me di cuenta de que solo una pequeña parte de él hace un trabajo útil. La mayor parte del código está ahí solo para desviarte.
Al final, tomé una captura de pantalla de una pequeña porción del código que hace todo el mal trabajo de iniciar una línea de comandos de PowerShell, que finalmente se ejecuta como una macro VBA.


Truco: simplemente toma el valor hexadecimal y resta 7 para ASCII real.


Es muy simple El código VBA contiene en varias variables un registro de la línea de comando final en notación hexadecimal, y luego simplemente lo convierte en una cadena de caracteres. El único "truco" aquí fue que los valores hexadecimales fueron compensados ​​por 0x07. Entonces, por ejemplo, la primera parte de la cadena hexadecimal se obtiene de L_JEK, al que se le asignó el valor "77767E6C797A6F6". Si tomas 0x77 y restas 0x07, obtienes hex 0x70. Haz lo mismo para 0x76 y obtienes hex 0x6F. Mírelos en cualquier tabla de códigos ASCII, y verá que coincide con las dos primeras letras de "powershell".

De hecho, este no es el enredo más difícil, ¡pero esto no es obligatorio! Todo lo que necesita hacer es omitir los escáneres antivirus anteriores en busca de palabras clave específicas o sus representaciones en forma de cadenas ASCII. Que esta muestra es lo suficientemente buena y lo hace. Finalmente, después de que el script recrea la línea de comando, la ejecuta a través de la función CreateProcess (ver más abajo):


Comente las llamadas al sistema o establezca un punto de interrupción frente a ellas.


Piénsalo por un segundo. Se envió un documento de Word a un empleado en un correo electrónico de phishing. Cuando se abre un documento, este script de VBA inicia automáticamente una sesión de PowerShell para comenzar la siguiente fase del ataque. Sin archivos ejecutables, y las secuencias de comandos ofuscadas evitan silenciosamente los antivirus y otros escáneres.

¡Aquí está el mal!

En aras de la curiosidad, descargué otra macro del sitio de HA (a continuación) para ver qué más sucede. Este segundo código hace aproximadamente lo mismo que el anterior.


Código secreto incrustado en VBA.


Pero entonces este código es un poco más ingenioso en la forma en que restaura la línea de comando. Hay una función de decodificación llamada "d" que filtra los caracteres de la cadena base y los compara con la segunda cadena de control. Esto ya es una idea del nivel de la escuela secundaria, y también hace un excelente trabajo: esquiva fácilmente los escáneres y engaña a los administradores que solo miran brevemente los registros en busca de acciones inusuales.

Próxima parada


En mi primera serie de publicaciones sobre ofuscación, mostré que el registro de eventos de Windows registra muchos detalles de las sesiones de PowerShell, es decir, si habilita la configuración adecuada para poder realizar un análisis en profundidad después del hecho de piratear .

Por supuesto, esto también tiene una cierta complejidad de ataques sin archivos, ya que es casi imposible determinar si el script de PowerShell está haciendo algo malo simplemente verificando los comandos allí mientras se visualizan los eventos de registro de seguridad.

¿Por qué preguntas?

Debido a que las sesiones de PowerShell comienzan todo el tiempo, y el código malicioso de una sesión de PowerShell de un solo hacker se puede iniciar al mismo tiempo que el código legítimo de un buen administrador de TI de PowerShell. Si recibe notificaciones cada vez que el script PS descarga algo de Internet, se generarán demasiados falsos positivos.

La conclusión se puede extraer de la siguiente manera: vemos la incapacidad de las herramientas tradicionales de defensa perimetral para detener tales ataques, correos electrónicos de phishing y malware FUD, y grandes perspectivas para el análisis del comportamiento .

En resumen, esta es una batalla deliberadamente perdida que intenta evitar que los hackers entren al perímetro. La mejor estrategia es identificar el acceso inusual y sospechoso a los archivos y ejecutar aplicaciones, y luego responder a ellos desactivando cuentas o tomando otra medida en respuesta a una violación.

En la siguiente parte, veremos los tipos más avanzados de ataques sin archivos.

Source: https://habr.com/ru/post/459506/


All Articles