El grupo APT activo agrega astutos inyectores de plantillas remotas para documentos de Word y Excel; Macro única de correo masivo de Outlook
Los investigadores de ESET han descubierto varias herramientas post-compromiso previamente indocumentadas utilizadas por el grupo de amenazas Gamaredon altamente activo en varias campañas maliciosas. Una herramienta, una macro VBA dirigida a Microsoft Outlook, utiliza la cuenta de correo electrónico del objetivo para enviar correos electrónicos de spearphishing a los contactos en la libreta de direcciones de Microsoft Office de la víctima. También analizamos otras herramientas Gamaredon que tienen la capacidad de inyectar macros maliciosas y plantillas remotas en documentos existentes de Office.
Las herramientas vinculadas a Gamaredon y discutidas en este blog se detectan como variantes de MSIL / Pterodo, Win32 / Pterodo o Win64 / Pterodo por los productos de ESET.
El grupo Gamaredon ha estado activo desde al menos 2013. Ha sido responsable de varios ataques, principalmente contra instituciones ucranianas, como se evidencia en varios informes desde CERT-UA y de otros organismos oficiales ucranianos a lo largo del tiempo.
En los últimos meses, ha habido un aumento en la actividad de este grupo, con constantes oleadas de correos electrónicos maliciosos que llegan a los buzones de sus objetivos. Los archivos adjuntos a estos correos electrónicos son documentos con macros maliciosas que, cuando se ejecutan, intentan descargar una multitud de diferentes variantes de malware.
Gamaredon ha aprovechado muchos lenguajes de programación diferentes en los últimos meses, que van desde C # a VBScript, archivos por lotes y C / C ++. Las herramientas utilizadas por Gamaredon son muy simples y están diseñadas para recopilar información confidencial de sistemas comprometidos y difundirse aún más.
A diferencia de otros grupos de APT, el grupo Gamaredon parece no hacer ningún esfuerzo para tratar de mantenerse fuera del radar. A pesar de que sus herramientas tienen la capacidad de descargar y ejecutar archivos binarios arbitrarios que podrían ser mucho más sigilosos, parece que el enfoque principal de este grupo es propagarse lo más rápido y rápido posible en la red de su objetivo mientras intentan filtrar datos. ¿Podríamos estar perdiendo algo?
Antecedentes
La Figura 1 ilustra una típica cadena de compromiso en una campaña de Gamaredon.
Si bien la mayoría de las publicaciones recientes se han centrado en los correos electrónicos de spearphishing junto con los descargadores que contienen, esta publicación de blog se centra en las herramientas posteriores al compromiso implementadas en estos sistemas.
Módulo de VBA de Outlook
El grupo Gamaredon usa un paquete que incluye un proyecto personalizado de Microsoft Outlook Visual Basic para Aplicaciones (VBA). El uso de macros de Outlook para entregar malware es algo que rara vez vemos al investigar campañas maliciosas.
Este paquete de código malicioso comienza con un VBScript que primero mata el proceso de Outlook si se está ejecutando, y luego elimina la seguridad en torno a la ejecución de macros VBA en Outlook al cambiar los valores del registro. También guarda en el disco el archivo OTM malicioso (proyecto Outlook VBA) que contiene una macro, el archivo adjunto de correo electrónico malicioso y, en algunos casos, una lista de destinatarios a los que se deben enviar los correos electrónicos.
A continuación, relanza Outlook con una opción especial, / altvba
- Todos en la libreta de direcciones de la víctima
- Todos dentro de la misma organización
- Una lista predefinida de objetivos
Si bien abusar de un buzón comprometido para enviar correos electrónicos maliciosos sin el consentimiento de la víctima no es una técnica nueva, creemos que este es el primer caso documentado públicamente de un grupo de ataque que utiliza un archivo OTM y una macro de Outlook para lograrlo.
Basado en el comportamiento de "enviar a todos en la lista de contactos" de este código malicioso de VBA, creemos que este módulo podría haber llevado a algunas organizaciones a pensar que fueron atacados por Gamaredon cuando eran simplemente daños colaterales. Por ejemplo, las muestras recientes cargadas en VirusTotal provienen de regiones que tradicionalmente no son objetivo de Gamaredon, como Japón, podría explicarse por las acciones de este módulo.
Como se ve en la Figura 2, el código VBA construye el cuerpo del correo electrónico y adjunta el documento malicioso al correo electrónico. Los hemos visto a ambos .docx y .lnk archivos utilizados como archivos adjuntos. Estos son muy similares al contenido de los archivos adjuntos maliciosos utilizados en las campañas iniciales de spearphishing de Gamaredon. La Figura 3 muestra un correo electrónico generado por este componente malicioso.

Figura 3. Correo electrónico generado por el módulo Outlook VBA con un documento adjunto de Word que contiene una plantilla remota
El correo electrónico contiene texto en inglés y ruso. Sin embargo, como se ilustra en la Figura 3, hay un problema con la codificación rusa. Esto se solucionó en una versión posterior de este módulo, otro ejemplo del rápido ritmo de desarrollo del grupo Gamaredon y la aparente falta de atención a los detalles.
Módulo de inyección de macro de Office – CodeBuilder
Analizamos diferentes variantes de módulos maliciosos utilizados por el grupo Gamaredon para inyectar macros maliciosas o plantillas remotas en documentos ya presentes en el sistema comprometido. Esta es una forma muy eficiente de moverse lateralmente dentro de la red de una organización, ya que los documentos se comparten habitualmente entre colegas. Además, dado que estas macros se ejecutan al abrir los documentos, es una buena forma de persistir en un sistema, ya que es probable que algunos de estos documentos se abran varias veces y en diferentes momentos.
Estos módulos de inyección de macros también tienen la funcionalidad de alterar la configuración de seguridad de macros de Microsoft Office. Por lo tanto, los usuarios afectados no tienen idea de que están comprometiendo nuevamente sus estaciones de trabajo cada vez que abren los documentos. Hemos visto este módulo implementado en dos lenguajes diferentes: C # y VBScript.
C#
Este módulo se entregó, como muchas otras herramientas, en un archivo autoextraíble de 7z. En el interior, había un archivo RAR protegido por contraseña que contenía algunos archivos. En particular, había dos archivos de texto, uno para Word y otro para Excel, que contenían el código fuente VBA de la macro maliciosa para insertar en los documentos de destino, y el ensamblado .NET responsable de encontrar y comprometer los documentos existentes. Como se ilustra en la Figura 4, el nombre del ensamblado es CodeBuilder.
Este módulo .NET primero reduce la configuración de seguridad de macros de Office para varios tipos de documentos al modificar los siguientes valores de registro:
HKCU Software Microsoft Office
HKCU Software Microsoft Office
Se itera sobre todas las oficinas posibles
Archivo por lotes / VBScript
La versión VBScript de este módulo es similar en comportamiento al .NET. La principal diferencia es que, en lugar de insertar una macro maliciosa en documentos existentes, inserta referencias a una plantilla remota en ellos.

Figura 5. VBScript usando la propiedad Document.AttachedTemplate para inyectar una referencia a una plantilla remota en documentos existentes
Este módulo VBScript también viene empaquetado en un archivo autoextraíble, que contiene un archivo por lotes y dos archivos VBS responsables de iterar a través de documentos y agregarles las referencias de plantillas remotas.
Actualizaciones del módulo
Curiosamente, algunas de las herramientas personalizadas descritas en Palo Alto Networks " Blogpost 2017 en Gamaredon todavía se están actualizando y en uso hoy. Algunos muestran similitudes significativas, mientras que otros se reescriben en diferentes lenguajes de codificación. Las herramientas más frecuentes descargadas e instaladas en máquinas comprometidas se pueden agrupar en dos categorías diferentes: descargadores y puertas traseras.
Descargadores
Hay muchas variaciones de sus descargadores, la mayoría de ellos escritos en C # o VBScript. Esta sección cubrirá solo dos de sus variantes más originales; los otros no han evolucionado tanto y son muy simples.
Módulo compilador C #
Este ejecutable .NET, similar a muchas otras herramientas utilizadas por el grupo Gamaredon, utiliza técnicas de ofuscación como la inserción de código basura y la ofuscación de cadenas. Contiene en su cuerpo el código fuente codificado en base64 de un descargador. Decodifica ese código fuente y lo compila directamente en el sistema utilizando el incorporado Microsoft.CSharp.CSharpCodeProvider clase. Coloca el ejecutable resultante en un directorio existente y crea una tarea programada que lo iniciará cada 10 minutos. Como se puede ver en la Figura 6, el código fuente decodificado todavía tiene comentarios, lo que ilustra la aparente descuido de los operadores de Gamaredon.
Módulo de proyecto GitHub
Como se ve en la Figura 7, este ejecutable .NET usa un repositorio de GitHub para obtener y ejecutar un descargador. Este repositorio ya no existe, pero pudimos descargar una copia mientras todavía estaba disponible.
El repositorio contenía un solo archivo: readme.txt – ese era un ejecutable de descarga de .NET codificado en base64. La función del módulo del proyecto GitHub es descargar este archivo, decodificarlo y ejecutarlo.
Puertas traseras – ladrones de archivos
Si bien existen algunas variaciones en las funcionalidades, el propósito principal de estos módulos es enumerar todos los documentos en un sistema comprometido y subirlos al servidor de C&C. Estos ladrones de archivos también pueden descargar y ejecutar código arbitrario desde el servidor de C&C. Al igual que con muchas otras herramientas utilizadas por el grupo Gamaredon, vienen en cuatro lenguajes de codificación diferentes: C / C ++, C #, archivo por lotes y VBScript.
C / C ++
Esta variante es la sucesora del módulo USBStealer descrito aquí. Aunque las últimas versiones ahora son bastante diferentes, el examen de muestras de este módulo a lo largo de su desarrollo muestra claramente que se origina en el mismo código fuente.
Una muestra que ilustra bien este cambio es una DLL de 64 bits con nombre interno Harvesterx64.dll, compilado en junio de 2019. Todavía tiene la mayoría de las cadenas utilizadas en las variantes anteriores, pero también exhibe dos mejoras que todavía están en las más nuevas. Primero, ahora resuelve las API de Windows a través del hashing de nombres y segundo, usa un archivo de texto básico en lugar de una base de datos SQLite para rastrear qué archivos ya se cargaron en el servidor de C&C.
El comportamiento de este módulo es bastante sencillo: escanea el sistema en busca de nuevos documentos de Microsoft Office, tanto en unidades locales como extraíbles, y los carga en el servidor de C&C. Para saber si el documento es nuevo, el módulo mantiene, en un archivo de texto, un hash MD5 por archivo cargado en el servidor. Estos hash MD5 no se basan en el contenido del archivo, sino en una cadena compuesta por el nombre del archivo, su tamaño y su última hora de modificación. Las cadenas del módulo se almacenan en su sección .data, encriptadas con una simple clave XOR. También tiene la capacidad de descargar y ejecutar código arbitrario desde su servidor C&C.
C#
Esta es una reimplementación en C # de la versión C / C ++. La principal diferencia es que también toma capturas de pantalla de la computadora comprometida cada minuto. Como se ve en la Figura 8, la versión que analizamos tiene cinco hilos diferentes con nombres evocadores.
Archivo por lotes / VBScript
Esta versión consta de varios scripts, escritos en forma de archivo por lotes y VBScript. Sin embargo, el objetivo final es el mismo: escanear el sistema en busca de documentos confidenciales. El mecanismo principal es un archivo por lotes que busca documentos de Word (*.Doc*) en el sistema y almacena sus nombres en un archivo de texto (consulte la Figura 9).

Figura 9 Ejemplo inject.txt archivo que contiene el resultado del escaneo del archivo de documento de la puerta trasera
El paquete también contiene archivos de script cifrados llamados 1.log, 2.log, 3.log, 4.log y 5.log. Una vez descifrados, estos scripts son descargadores de VBScript ofuscados que pueden descargar y ejecutar código arbitrario.
Infraestructura de red
El grupo Gamaredon utiliza muchos dominios diferentes, tanto gratuitos como de pago, para sus servidores de C&C. Los dominios gratuitos son principalmente DDNS de No-IP: hopto.org, ddns.net, myftp.biz, mientras que los dominios pagos se registran a través del registrador REG.RU e incluyen el .divertido, .sitio, .espacio, .ru, .sitio web y .xyz TLDs.
Están cambiando constantemente los dominios utilizados por sus herramientas, pero principalmente en un pequeño número de ASN. Un análisis cuidadoso sugiere que usan dominios separados para pequeños grupos de víctimas. por favor, compruebe Cuenta GitHub de ESET para obtener una extensa lista de dominios utilizados por el grupo Gamaredon.
Calidad de ejecución
Pudimos recolectar numerosas muestras diferentes de scripts maliciosos, ejecutables y documentos utilizados por el grupo Gamaredon a lo largo de sus campañas. Notamos varios errores en estos, especialmente en los scripts. Por supuesto, es imposible saber la razón exacta detrás de estos errores o descuidos, pero el volumen de muestras que produce el grupo y su rápido desarrollo podrían explicarlo. El hecho de que quedaran comentarios en el código fuente incluido en algunos ejemplos del módulo compilador de C # o que la codificación rusa fuera incorrecta en el correo electrónico generado por el módulo VBA de Outlook muestra que no hay una revisión o prueba rigurosa antes de lanzar sus muchas herramientas y usarlas En la naturaleza.
Sin embargo, si bien estos errores pueden disminuir la efectividad general de sus herramientas, la rápida ejecución y adaptación de este grupo también tiene algunas ventajas. El volumen y la implacabilidad de los ataques pueden crear un estado de temor constante en sus objetivos. Y aunque el código es muy simple, algunas técnicas, como la ofuscación de secuencias de comandos, dificultan la automatización completa del análisis, lo que hace que el trabajo del analista sea tedioso.
Su proyecto GitHub nos permitió echar un vistazo al rápido desarrollo de sus herramientas. El código que se confirmó allí mostró claramente la evolución del descargador de C #. Las primeras versiones no mostraron signos de ofuscación; luego los desarrolladores agregaron diferentes ofuscaciones de cadenas y código basura para dificultar el análisis.
En términos de persistencia, se utilizan varias técnicas diferentes, pero las más comunes son las tareas programadas, las claves de registro de ejecución automática y el aprovechamiento de la carpeta de Inicio. Aunque estas técnicas son muy simples y se conocen desde hace mucho tiempo, la estrategia del grupo Gamaredon de tratar de instalar múltiples scripts y ejecutables en cada sistema, y actualizarlos constantemente, complica significativamente la vida del defensor.
Conclusión
A pesar de la simplicidad de la mayoría de sus herramientas, el grupo Gamaredon también es capaz de implementar algunas novedades, como su módulo Outlook VBA. Sin embargo, como está lejos de ser sigiloso, a la larga no es rival para una organización capaz. La variedad de herramientas que Gamaredon tiene a su disposición puede ser muy efectiva para tomar huellas digitales de una máquina y comprender qué datos confidenciales están disponibles, y luego difundirlos por toda la red. ¿Podría ser esta una forma de desplegar una carga útil mucho más sigilosa?
Un agradecimiento especial a ESET Senior Malware Researcher Anton Cherepanov por su ayuda en esta investigación.
Indicadores de compromiso (IoC)
SHA-1 | Nombre de detección de ESET | Comentarios |
---|---|---|
6F75F2490186225C922FE605953038BDEB537FEE | DOC / TrojanDownloader.Agent.ARJ | Módulo de VBA de Outlook |
DFC941F365E065187B5C4A4BF42E770035920856 | Win32 / Pterodo.XG.gen | Módulo de inyección macro C # Office |
9AFC9D6D72F78B2EB72C5F2B87BDC7D59C1A14ED | Win32 / Pterodo.ZM | Archivo por lotes / VBScript Office módulo de inyección de macro |
3DD83D7123AEFBE5579C9DC9CF3E68BCAFC9E65E | MSIL / Pterodo.CD | Módulo compilador C # |
941F341770B67F9E8EE811B4B8383101F35B27CD | MSIL / Pterodo.CA | Módulo de proyecto GitHub |
DC8BD2F65FD2199CE402C76A632A9743672EFE2D | Win32 / Pterodo.XC | Puerta trasera C / C ++ |
336C1244674BB378F041E9064EA127E9E077D59D | MSIL / Pterodo.DP | C # puerta trasera |
5FC1B6A55A9F5A52422872A8E34A284CDBDD0526 | Win32 / Pterodo.YE | Archivo por lotes / VBScript puerta trasera |
Técnicas MITRE ATT y CK
Táctica | CARNÉ DE IDENTIDAD | Nombre | Descripción |
---|---|---|---|
Acceso inicial | T1193 | Accesorio de pesca submarina | El grupo Gamaredon envía correos electrónicos con archivos adjuntos maliciosos a sus objetivos. |
T1199 | Relación de confianza | El malware del grupo Gamaredon abusa de las cuentas de correo electrónico de una organización comprometida para enviar correos electrónicos con archivos adjuntos maliciosos a los contactos de la víctima. | |
Ejecución | T1064 | Scripting | El grupo Gamaredon utiliza mucho los scripts, principalmente archivos Batch y VBScript. |
T1085 | Rundll32 | El malware del grupo Gamaredon utiliza rundll32 para iniciar archivos DLL maliciosos, por ejemplo, la puerta trasera C / C ++. | |
T1106 | Ejecución a través de API | El malware del grupo Gamaredon utiliza Proceso de creación para lanzar componentes adicionales, por ejemplo para ejecutar cargas útiles recibidas de sus servidores de C&C. | |
T1204 | Ejecución de usuario | El compromiso inicial del grupo Gamaredon generalmente requiere que el usuario ejecute un archivo adjunto de correo electrónico malicioso. | |
Persistencia | T1053 | Tarea programada | El malware del grupo Gamaredon registra varios de sus módulos (descargadores, puertas traseras, etc.) como tareas programadas. |
T1060 | Claves de ejecución del registro / Carpeta de inicio | El grupo Gamaredon usa las teclas Ejecutar y la carpeta Inicio para garantizar que sus módulos se ejecuten en cada reinicio. | |
T1137 | Inicio de aplicaciones de Office | El malware del grupo Gamaredon inserta macros maliciosas en los documentos existentes, proporcionando persistencia cuando se vuelven a abrir. | |
Evasión de defensa | T1027 | Archivos o información ofuscados | El grupo Gamaredon hace un uso intensivo de archivos comprimidos, algunos protegidos por contraseña, para entregar sus cargas maliciosas. Las cadenas se ofuscan o encriptan habitualmente en estos módulos maliciosos. |
T1112 | Modificar registro | El malware del grupo Gamaredon modifica varias claves de registro para desactivar los mecanismos de seguridad en Microsoft Office relacionados con las macros. | |
T1116 | Firma de código | El grupo Gamaredon utiliza binarios firmados en sus campañas maliciosas. Un ejemplo notable son las muestras wget firmadas con un certificado válido de Jernej Simončič y disponibles aquí. | |
T1140 | Desobuscar / decodificar archivos o información | El grupo Gamaredon utiliza rutinas simples de desofuscación y descifrado de cadenas en sus módulos. | |
T1221 | Inyección de plantilla | El grupo Gamaredon agrega plantillas remotas a los documentos que envía a los objetivos. | |
T1500 | Compilar después del parto | El módulo compilador C # del grupo Gamaredon contiene un descargador ofuscado que compila utilizando csc.exe y luego se ejecuta. | |
Descubrimiento | T1083 | Descubrimiento de archivos y directorios | El grupo Gamaredon utiliza sus puertas traseras para enumerar automáticamente archivos interesantes (como documentos de Office) encontrados en un sistema para su posterior filtración. |
Movimiento lateral | T1080 | Manchar contenido compartido | El malware del grupo Gamaredon inyecta macros maliciosas en todos los documentos de Word y Excel accesibles por el sistema comprometido. |
T1534 | Pesca submarina interna | El grupo Gamaredon usa su macro Outlook VBA para enviar correos electrónicos con archivos adjuntos maliciosos a otros objetivos dentro de la misma organización. | |
Colección | T1005 | Datos del sistema local | El malware del grupo Gamaredon busca activamente documentos confidenciales en el sistema local. |
T1025 | Datos de medios extraíbles | El malware del grupo Gamaredon escanea todas las unidades en busca de datos confidenciales y también busca la inserción de unidades extraíbles en un sistema. | |
T1039 | Datos de la unidad compartida de red | El malware del grupo Gamaredon escanea todas las unidades A: – Z: en busca de datos confidenciales, por lo que escaneará todos los recursos compartidos de red montados como unidades. | |
T1113 | La captura de pantalla | El grupo Gamaredon usa una puerta trasera que toma capturas de pantalla cada minuto. | |
T1119 | Colección automatizada | El grupo Gamaredon implementa scripts en sistemas comprometidos que escanean automáticamente en busca de documentos interesantes. | |
Comando y control | T1071 | Protocolo de capa de aplicación estándar | El malware del grupo Gamaredon utiliza HTTP y HTTPS para comando y control. |
Exfiltración | T1020 | Exfiltración Automatizada | El grupo Gamaredon utiliza módulos que cargan automáticamente los documentos recolectados al servidor de C&C. |